You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by al...@apache.org on 2018/05/04 06:48:18 UTC

[royale-asjs] branch feature/MXRoyale updated: Validator.as Added

This is an automated email from the ASF dual-hosted git repository.

alinakazi pushed a commit to branch feature/MXRoyale
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/feature/MXRoyale by this push:
     new 5a6d976  Validator.as Added
5a6d976 is described below

commit 5a6d976c8008e62dc050e488011778eaa6abdce2
Author: alinakazi <AL...@GMAIL.COM>
AuthorDate: Fri May 4 11:48:16 2018 +0500

    Validator.as Added
---
 .../src/main/royale/mx/validators/Validator.as     | 1151 ++++++++++++++++++++
 1 file changed, 1151 insertions(+)

diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/validators/Validator.as b/frameworks/projects/MXRoyale/src/main/royale/mx/validators/Validator.as
new file mode 100644
index 0000000..2bb073a
--- /dev/null
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/validators/Validator.as
@@ -0,0 +1,1151 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.validators
+{
+
+    /* import flash.events.Event;
+    import flash.events.EventDispatcher;
+    import flash.events.IEventDispatcher; */
+	import org.apache.royale.events.Event;
+    import org.apache.royale.events.EventDispatcher;
+    import org.apache.royale.events.IEventDispatcher;
+	
+   /*  import mx.core.IMXMLObject;
+    import mx.events.FlexEvent;
+    import mx.events.ValidationResultEvent;
+    import mx.resources.IResourceManager;
+    import mx.resources.ResourceManager;
+    import mx.utils.ObjectUtil; */
+
+//--------------------------------------
+//  Events
+//--------------------------------------
+
+/**
+ *  Dispatched when validation succeeds.
+ *
+ *  @eventType mx.events.ValidationResultEvent.VALID 
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ */
+//[Event(name="valid", type="mx.events.ValidationResultEvent")]
+
+/** 
+ *  Dispatched when validation fails.
+ *
+ *  @eventType mx.events.ValidationResultEvent.INVALID 
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ */
+//[Event(name="invalid", type="mx.events.ValidationResultEvent")]
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+/* [ResourceBundle("core")]
+[ResourceBundle("validators")] */
+
+/**
+ *  The Validator class is the base class for all Flex validators. 
+ *  This class implements the ability for a validator to make a field
+ *  required, which means that the user must enter a value in the field
+ *  or the validation fails.
+ * 
+ *  @mxml
+ *
+ *  <p>The Validator class defines the following tag attributes, 
+ *  which all of its subclasses inherit:</p>
+ *
+ *  <pre>
+ *  &lt;mx:Validator 
+ *    enabled="true|false" 
+ *    listener="<i>Value of the source property</i>" 
+ *    property="<i>No default</i>" 
+ *    required="true|false" 
+ *    requiredFieldError="This field is required." 
+ *    source="<i>No default</i>" 
+ *    trigger="<i>Value of the source property</i>" 
+ *    triggerEvent="valueCommit" 
+ *  /&gt;
+ *  </pre>
+ *
+ *  @see mx.events.ValidationResultEvent
+ *  @see mx.validators.ValidationResult
+ *  @see mx.validators.RegExpValidationResult
+ *
+ *  @includeExample examples/SimpleValidatorExample.mxml
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Royale 0.9.3
+ */
+public class Validator extends EventDispatcher 
+{ //implements IMXMLObject,IValidator
+    //include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  A string containing the upper- and lower-case letters
+     *  of the Roman alphabet  ("A" through "Z" and "a" through "z").
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+   // protected static const ROMAN_LETTERS:String =
+        "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
+
+    /**
+     *  A String containing the decimal digits 0 through 9.    
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */ 
+   // protected static const DECIMAL_DIGITS:String = "0123456789";
+    
+    //--------------------------------------------------------------------------
+    //
+    //  Class methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Invokes all the validators in the <code>validators</code> Array.
+     *  Returns an Array containing one ValidationResultEvent object 
+     *  for each validator that failed.
+     *  Returns an empty Array if all validators succeed. 
+     *
+     *  @param validators An Array containing the Validator objects to execute. 
+     *
+     *  @return Array of ValidationResultEvent objects, where the Array
+     *  contains one ValidationResultEvent object for each validator
+     *  that failed. 
+     *  The Array is empty if all validators succeed.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    /* public static function validateAll(validators:Array):Array
+    {   
+        var result:Array = [];
+
+        var n:int = validators.length;
+        for (var i:int = 0; i < n; i++)
+        {
+            var v:IValidator = validators[i] as IValidator;
+            if (v && v.enabled)
+            {
+	            var resultEvent:ValidationResultEvent = v.validate();
+	            
+	            if (resultEvent.type != ValidationResultEvent.VALID)
+	                result.push(resultEvent);
+	        }
+        }   
+        
+        return result;
+    } */
+    
+
+    /**
+     *  @private
+     */
+    /* private static function trimString(str:String):String
+    {
+        var startIndex:int = 0;
+        while (str.indexOf(' ', startIndex) == startIndex)
+        {
+            ++startIndex;
+        }
+
+        var endIndex:int = str.length - 1;
+        while (str.lastIndexOf(' ', endIndex) == endIndex)
+        {
+            --endIndex;
+        }
+
+        return endIndex >= startIndex ?
+               str.slice(startIndex, endIndex + 1) :
+               "";
+    } */
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    public function Validator()
+    {
+        super();
+
+        // Register as a weak listener for "change" events from ResourceManager.
+        // If Validators registered as a strong listener,
+        // they wouldn't get garbage collected.
+       /*  resourceManager.addEventListener(
+            Event.CHANGE, resourceManager_changeHandler, false, 0, true);
+
+        resourcesChanged(); */
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+   // private var document:Object;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  actualTrigger
+    //----------------------------------
+
+    /**
+     *  Contains the trigger object, if any,
+     *  or the source object. Used to determine the listener object
+     *  for the <code>triggerEvent</code>. 
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+   /*  protected function get actualTrigger():IEventDispatcher
+    {
+        if (_trigger)
+            return _trigger;
+        
+        else if (_source)
+            return _source as IEventDispatcher;
+            
+        return null;            
+    } */
+    
+    //----------------------------------
+    //  actualListeners
+    //----------------------------------
+
+    /**
+     *  Contains an Array of listener objects, if any,  
+     *  or the source object. Used to determine which object
+     *  to notify about the validation result.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    /* protected function get actualListeners():Array
+    {
+        var result:Array = [];
+    
+        if (_listener)
+            result.push(_listener);
+        
+        else if (_source)
+            result.push(_source);
+            
+        return result;
+    } */
+    
+    //----------------------------------
+    //  enabled
+    //----------------------------------
+    
+    /**
+     *  @private
+     *  Storage for the enabled property.
+     */
+    /* private var _enabled:Boolean = true;
+    
+    [Inspectable(category="General", defaultValue="true")]
+ */
+    /** 
+     *  Setting this value to <code>false</code> will stop the validator
+     *  from performing validation. 
+     *  When a validator is disabled, it dispatch no events, 
+     *  and the <code>validate()</code> method returns null.
+     *
+     *  @default true
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    /* public function get enabled():Boolean
+    {
+        return _enabled;
+    } */
+
+    /**
+     *  @private
+     */
+    /* public function set enabled(value:Boolean):void
+    {
+        _enabled = value;
+    } */
+    
+    //----------------------------------
+    //  listener
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the listener property.
+     */
+    private var _listener:Object;
+    
+    [Inspectable(category="General")]
+
+    /**
+     *  Specifies the validation listener.
+     *
+     *  <p>If you do not specify a listener,
+     *  Flex uses the value of the <code>source</code> property. 
+     *  After Flex determines the source component,
+     *  it changes the border color of the component,
+     *  displays an error message for a failure,
+     *  or hides any existing error message for a successful validation.</p>
+     *
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+     
+    /* This behavior has been removed.
+     *  <p>If Flex does not find an appropriate listener, 
+     *  validation errors propagate to the Application object, causing Flex 
+     *  to display an Alert box containing the validation error message.</p>
+     *
+     *  <p>Specifying <code>this</code> causes the validation error
+     *  to propagate to the Application object, 
+     *  and displays an Alert box containing the validation error message.</p>
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    public function get listener():Object
+    {
+        return _listener;
+    }
+
+    /**
+     *  @private
+     */
+    public function set listener(value:Object):void
+    {
+        //removeListenerHandler();    
+        _listener = value;
+        //addListenerHandler();   
+    }
+    
+    //----------------------------------
+    //  property
+    //----------------------------------    
+    
+    /**
+     *  @private
+     *  Storage for the property property.
+     */
+    /* private var _property:String;
+    
+    [Inspectable(category="General")]
+ */
+    /**
+     *  A String specifying the name of the property
+     *  of the <code>source</code> object that contains 
+     *  the value to validate.
+     *  The property is optional, but if you specify <code>source</code>,
+     *  you should set a value for this property as well.
+     *  
+     *  @default null
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    /* public function get property():String
+    {
+        return _property;
+    } */
+
+    /**
+     *  @private
+     */
+    /* public function set property(value:String):void
+    {
+        _property = value;
+    } */
+    
+    //----------------------------------
+    //  required
+    //----------------------------------
+
+    private var _required:Boolean = true;
+
+    [Inspectable(category="General", defaultValue="true")]
+
+    /**
+     *  If <code>true</code>, specifies that a missing or empty
+     *  value causes a validation error.
+     *
+     *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    public function get required():Boolean
+    {
+        return _required;
+    }
+
+    public function set required(value:Boolean):void
+    {
+        _required = value;
+    }
+    
+    //----------------------------------
+    //  resourceManager
+    //----------------------------------
+    
+    /**
+     *  @private
+     *  Storage for the resourceManager property.
+     */
+    /* private var _resourceManager:IResourceManager = ResourceManager.getInstance();
+     */
+	/**
+	 *  @private
+	 *  This metadata suppresses a trace() in PropertyWatcher:
+	 *  "warning: unable to bind to property 'resourceManager' ..."
+	 */
+	//[Bindable("unused")]
+	
+    /**
+     *  @copy mx.core.UIComponent#resourceManager
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    /* protected function get resourceManager():IResourceManager
+    {
+        return _resourceManager;
+    } */
+
+    //----------------------------------
+    //  source
+    //----------------------------------
+    
+    /**
+     *  @private
+     *  Storage for the source property.
+     */
+    /* private var _source:Object;
+    
+    [Inspectable(category="General")]
+	[Bindable("sourceChanged")] */
+    /**
+     *  Specifies the object containing the property to validate. 
+     *  Set this to an instance of a component or a data model. 
+     *  You use data binding syntax in MXML to specify the value.
+     *  This property supports dot-delimited Strings
+     *  for specifying nested properties. 
+     *
+     *  If you specify a value to the <code>source</code> property,
+     *  then you should specify a value to the <code>property</code>
+     *  property as well. 
+     *  The <code>source</code> property is optional.
+     *  
+     *  @default null
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    /* public function get source():Object
+    {
+        return _source;
+    } */
+    
+    /**
+     *  @private
+     */
+    /* public function set source(value:Object):void
+    {
+        if (_source == value)
+            return;
+        
+        if (value is String)
+        {
+            var message:String = resourceManager.getString(
+                "validators", "SAttribute", [ value ]);
+            throw new Error(message);
+        }
+        
+        // Remove the listener from the old source.
+        removeTriggerHandler();
+        removeListenerHandler();
+        
+        _source = value;
+                
+        // Listen for the trigger event on the new source.
+        addTriggerHandler();    
+        addListenerHandler();
+		dispatchEvent(new Event("sourceChanged"));
+    } */
+
+    //----------------------------------
+    //  subFields
+    //----------------------------------
+
+    /**
+     *  An Array of Strings containing the names for the properties contained 
+     *  in the <code>value</code> Object passed to the <code>validate()</code> method. 
+     *  For example, CreditCardValidator sets this property to 
+     *  <code>[ "cardNumber", "cardType" ]</code>. 
+     *  This value means that the <code>value</code> Object 
+     *  passed to the <code>validate()</code> method 
+     *  should contain a <code>cardNumber</code> and a <code>cardType</code> property. 
+     *
+     *  <p>Subclasses of the Validator class that 
+     *  validate multiple data fields (like CreditCardValidator and DateValidator)
+     *  should assign this property in their constructor. </p>
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    //protected var subFields:Array = [];
+
+    //----------------------------------
+    //  trigger
+    //----------------------------------
+    
+    /**
+     *  @private
+     *  Storage for the trigger property.
+     */
+    /* private var _trigger:IEventDispatcher;
+    
+    [Inspectable(category="General")]
+ */
+    /**
+     *  Specifies the component generating the event that triggers the validator. 
+     *  If omitted, by default Flex uses the value of the <code>source</code> property.
+     *  When the <code>trigger</code> dispatches a <code>triggerEvent</code>,
+     *  validation executes. 
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+   /*  public function get trigger():IEventDispatcher
+    {
+        return _trigger;
+    }
+     */
+    /**
+     *  @private
+     */
+    /* public function set trigger(value:IEventDispatcher):void
+    {
+        removeTriggerHandler();
+        _trigger = value;
+        addTriggerHandler();    
+    } */
+    
+    //----------------------------------
+    //  triggerEvent
+    //----------------------------------
+    
+    /**
+     *  @private
+     *  Storage for the triggerEvent property.
+     */
+    /* private var _triggerEvent:String = FlexEvent.VALUE_COMMIT;
+    
+    [Inspectable(category="General")]
+ */
+    /**
+     *  Specifies the event that triggers the validation. 
+     *  If omitted, Flex uses the <code>valueCommit</code> event. 
+     *  Flex dispatches the <code>valueCommit</code> event
+     *  when a user completes data entry into a control.
+     *  Usually this is when the user removes focus from the component, 
+     *  or when a property value is changed programmatically.
+     *  If you want a validator to ignore all events,
+     *  set <code>triggerEvent</code> to the empty string ("").
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    /* public function get triggerEvent():String
+    {
+        return _triggerEvent;
+    } */
+    
+    /**
+     *  @private
+     */
+    /* public function set triggerEvent(value:String):void
+    {
+        if (_triggerEvent == value)
+            return;
+            
+        removeTriggerHandler();
+        _triggerEvent = value;
+        addTriggerHandler();
+    } */
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties: Errors
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  requiredFieldError
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the requiredFieldError property.
+     */
+   /*  private var _requiredFieldError:String;
+     */
+    /**
+     *  @private
+     */
+    /* private var requiredFieldErrorOverride:String;
+
+    [Inspectable(category="Errors", defaultValue="null")]
+     */
+    /**
+     *  Error message when a value is missing and the 
+     *  <code>required</code> property is <code>true</code>. 
+     *  
+     *  @default "This field is required."
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    /* public function get requiredFieldError():String
+    {
+        return _requiredFieldError;
+    } */
+
+    /**
+     *  @private
+     */
+   /*  public function set requiredFieldError(value:String):void
+    {
+        requiredFieldErrorOverride = value;
+
+        _requiredFieldError = value != null ?
+                              value :
+                              resourceManager.getString(
+                                  "validators", "requiredFieldError");
+    } */
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods: IMXMLObject
+    //
+    //--------------------------------------------------------------------------
+
+     /**
+      *  Called automatically by the MXML compiler when the Validator
+      *  is created using an MXML tag.  
+      *
+      *  @param document The MXML document containing this Validator.
+      *
+      *  @param id Ignored.
+      *  
+      *  @langversion 3.0
+      *  @playerversion Flash 9
+      *  @playerversion AIR 1.1
+      *  @productversion Royale 0.9.3
+      */
+     /* public function initialized(document:Object, id:String):void
+     {
+        this.document = document;
+     } */
+     
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  This method is called when a Validator is constructed,
+     *  and again whenever the ResourceManager dispatches
+     *  a <code>"change"</code> Event to indicate
+     *  that the localized resources have changed in some way.
+     * 
+     *  <p>This event will be dispatched when you set the ResourceManager's
+     *  <code>localeChain</code> property, when a resource module
+     *  has finished loading, and when you call the ResourceManager's
+     *  <code>update()</code> method.</p>
+     *
+     *  <p>Subclasses should override this method and, after calling
+     *  <code>super.resourcesChanged()</code>, do whatever is appropriate
+     *  in response to having new resource values.</p>
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    /* protected function resourcesChanged():void
+    {
+        requiredFieldError = requiredFieldErrorOverride;
+    } */
+
+    /**
+     *  @private
+     */
+    /* private function addTriggerHandler():void
+    {
+        if (actualTrigger)
+            actualTrigger.addEventListener(_triggerEvent, triggerHandler);
+    } */
+    
+    /**
+     *  @private
+     */
+    /* private function removeTriggerHandler():void
+    {
+        if (actualTrigger)  
+            actualTrigger.removeEventListener(_triggerEvent, triggerHandler);
+    } */
+    
+    /**
+     *  Sets up all of the listeners for the 
+     *  <code>valid</code> and <code>invalid</code>
+     *  events dispatched from the validator. Subclasses of the Validator class 
+     *  should first call the <code>removeListenerHandler()</code> method, 
+     *  and then the <code>addListenerHandler()</code> method if 
+     *  the value of one of their listeners or sources changes. 
+     *  The CreditCardValidator and DateValidator classes use this function internally. 
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    /* protected function addListenerHandler():void
+    {
+        var actualListener:Object;
+        var listeners:Array = actualListeners;
+    
+        var n:int = listeners.length;
+        for (var i:int = 0; i < n; i++)
+        {
+            actualListener = listeners[i];
+            if (actualListener is IValidatorListener)
+            {
+                addEventListener(ValidationResultEvent.VALID,
+                                 IValidatorListener(actualListener).validationResultHandler); 
+
+                addEventListener(ValidationResultEvent.INVALID,
+                                 IValidatorListener(actualListener).validationResultHandler); 
+            }
+        }
+    } */
+    
+    /**
+     *  Disconnects all of the listeners for the 
+     *  <code>valid</code> and <code>invalid</code>
+     *  events dispatched from the validator. Subclasses should first call the
+     *  <code>removeListenerHandler()</code> method and then the 
+     *  <code>addListenerHandler</code> method if 
+     *  the value of one of their listeners or sources changes. 
+     *  The CreditCardValidator and DateValidator classes use this function internally. 
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    /* protected function removeListenerHandler():void
+    {
+        var actualListener:Object;
+        var listeners:Array = actualListeners;
+    
+        var n:int = listeners.length;
+        for (var i:int = 0; i < n; i++)
+        {
+            actualListener = listeners[i];
+            if (actualListener is IValidatorListener)
+            {
+                removeEventListener(ValidationResultEvent.VALID,
+                                    IValidatorListener(actualListener).validationResultHandler); 
+                                    
+                removeEventListener(ValidationResultEvent.INVALID,
+                                    IValidatorListener(actualListener).validationResultHandler); 
+            }
+        }
+    } */
+
+    /**
+     *  Returns <code>true</code> if <code>value</code> is not null. 
+     * 
+     *  @param value The value to test.
+     *
+     *  @return <code>true</code> if <code>value</code> is not null.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    /* protected function isRealValue(value:Object):Boolean
+    {
+        return (value != null); 
+    }
+	*/
+    /**
+     *  Performs validation and optionally notifies
+     *  the listeners of the result. 
+     *
+     *  @param value Optional value to validate.
+     *  If null, then the validator uses the <code>source</code> and
+     *  <code>property</code> properties to determine the value.
+     *  If you specify this argument, you should also set the
+     *  <code>listener</code> property to specify the target component
+     *  for any validation error messages.
+     *
+     *  @param suppressEvents If <code>false</code>, then after validation,
+     *  the validator will notify the listener of the result.
+     *
+     *  @return A ValidationResultEvent object
+     *  containing the results of the validation. 
+     *  For a successful validation, the
+     *  <code>ValidationResultEvent.results</code> Array property is empty. 
+     *  For a validation failure, the
+     *  <code>ValidationResultEvent.results</code> Array property contains
+     *  one ValidationResult object for each field checked by the validator, 
+     *  both for fields that failed the validation and for fields that passed. 
+     *  Examine the <code>ValidationResult.isError</code>
+     *  property to determine if the field passed or failed the validation. 
+     *
+     *  @see mx.events.ValidationResultEvent
+     *  @see mx.validators.ValidationResult
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    /* public function validate(
+                        value:Object = null,
+                        suppressEvents:Boolean = false):ValidationResultEvent
+    {   
+        if (value == null)
+            value = getValueFromSource();   
+        
+        if (isRealValue(value) || required)
+        {
+            // Validate if the target is required or our value is non-null.
+            return processValidation(value, suppressEvents);
+        }
+        else
+        {
+            // We assume if value is null and required is false that
+            // validation was successful.
+            var resultEvent:ValidationResultEvent = handleResults(null);
+            if (!suppressEvents && _enabled)
+            {
+                dispatchEvent(resultEvent);
+            }
+            return resultEvent; 
+        } 
+    } */
+    
+    /**
+     *  Returns the Object to validate. Subclasses, such as the 
+     *  CreditCardValidator and DateValidator classes, 
+     *  override this method because they need
+     *  to access the values from multiple subfields. 
+     *
+     *  @return The Object to validate.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    /* protected function getValueFromSource():Object
+    {
+        var message:String;
+
+        if (_source && _property)
+        {
+            return _property.indexOf(".") == -1 ? _source[_property] : ObjectUtil.getValue(_source, _property.split("."));
+        }
+
+        else if (!_source && _property)
+        {
+            message = resourceManager.getString(
+                "validators", "SAttributeMissing");
+            throw new Error(message);
+        }
+
+        else if (_source && !_property)
+        {
+            message = resourceManager.getString(
+                "validators", "PAttributeMissing");
+            throw new Error(message);
+        }
+        
+        return null;
+    } */
+
+    /** 
+     *  @private 
+     *  Main internally used function to handle validation process.
+     */ 
+    /* private function processValidation(
+                        value:Object,
+                        suppressEvents:Boolean):ValidationResultEvent
+    {   
+        var resultEvent:ValidationResultEvent;
+        
+        if (_enabled)
+        {
+            var errorResults:Array = doValidation(value);
+
+            resultEvent = handleResults(errorResults);
+        }           
+        else
+        {
+            suppressEvents = true; // Don't send any events
+        }
+        
+        if (!suppressEvents)
+        {
+            dispatchEvent(resultEvent);
+        }
+
+        return resultEvent;
+    } */
+
+    /**
+     *  Executes the validation logic of this validator, 
+     *  including validating that a missing or empty value
+     *  causes a validation error as defined by
+     *  the value of the <code>required</code> property.
+     *
+     *  <p>If you create a subclass of a validator class,
+     *  you must override this method. </p>
+     *
+     *  @param value Value to validate.
+     *
+     *  @return For an invalid result, an Array of ValidationResult objects,
+     *  with one ValidationResult object for each field examined
+     *  by the validator that failed validation.
+     *
+     *  @see mx.validators.ValidationResult
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    /* protected function doValidation(value:Object):Array
+    {
+        var results:Array = [];
+        
+        var result:ValidationResult = validateRequired(value);
+        if (result)
+            results.push(result);
+            
+        return results;
+    } */
+            
+    /**
+     *  @private 
+     *  Determines if an object is valid based on its
+     *  <code>required</code> property.
+     *  This is a convenience method for calling a validator from within a 
+     *  custom validation function. 
+     */
+    /* private function validateRequired(value:Object):ValidationResult
+    {
+        if (required)
+        {
+            var val:String = (value != null) ? String(value) : "";
+
+            val = trimString(val);
+
+            // If the string is empty and required is set to true
+            // then throw a requiredFieldError.
+            if (val.length == 0)
+            {
+                return new ValidationResult(true, "", "requiredField",
+                                            requiredFieldError);                 
+            }
+        }
+        
+        return null;
+    } */
+
+    /**
+     *  Returns a ValidationResultEvent from the Array of error results. 
+     *  Internally, this function takes the results from the 
+     *  <code>doValidation()</code> method and puts it into a ValidationResultEvent object. 
+     *  Subclasses, such as the RegExpValidator class, 
+     *  should override this function if they output a subclass
+     *  of ValidationResultEvent objects, such as the RegExpValidationResult objects, and 
+     *  needs to populate the object with additional information. You never
+     *  call this function directly, and you should rarely override it. 
+     *
+     *  @param errorResults Array of ValidationResult objects.
+     * 
+     *  @return The ValidationResultEvent returned by the <code>validate()</code> method. 
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Royale 0.9.3
+     */
+    /* protected function handleResults(errorResults:Array):ValidationResultEvent
+    {
+        var resultEvent:ValidationResultEvent;
+        
+        if (errorResults != null && errorResults.length > 0)
+        {
+            resultEvent =
+                new ValidationResultEvent(ValidationResultEvent.INVALID);
+            resultEvent.results = errorResults;
+            
+            if (subFields.length > 0)
+            {
+                var errorFields:Object = {};
+                var subField:String;
+                
+                // Now we need to send valid results
+                // for every subfield that didn't fail.
+                var n:int;
+                var i:int;
+                
+                n = errorResults.length;
+                for (i = 0; i < n; i++)
+                {
+                    subField = errorResults[i].subField;
+                    if (subField)
+                    {
+                        errorFields[subField] = true;
+                    }
+                }
+                
+                n = subFields.length;
+                for (i = 0; i < n; i++)
+                {
+                    if (!errorFields[subFields[i]])
+                    {
+                        errorResults.push(new ValidationResult(false,subFields[i]));
+                    }
+                }
+            }
+        }
+        else
+        {
+            resultEvent = new ValidationResultEvent(ValidationResultEvent.VALID);
+        }
+        
+        return resultEvent;
+    } */
+    
+    //--------------------------------------------------------------------------
+    //
+    //  Event handlers
+    //
+    //--------------------------------------------------------------------------
+    
+    /**
+     *  @private
+     */
+    /* protected function triggerHandler(event:Event):void
+    {
+        validate();
+    } */
+
+    /**
+     *  @private
+     */
+    /* private function resourceManager_changeHandler(event:Event):void
+    {
+        resourcesChanged();
+    } */
+}
+}

-- 
To stop receiving notification emails like this one, please contact
alinakazi@apache.org.