/**
 * This is a generated class and is not intended for modfication.  
 */
package valueObjects
{
import com.adobe.fiber.core.model_internal;
import com.adobe.fiber.styles.IStyle;
import com.adobe.fiber.styles.Style;
import com.adobe.fiber.styles.LocalizeableMessage;
import com.adobe.fiber.valueobjects.IModelType;
import com.adobe.fiber.valueobjects.IPropertyIterator;
import com.adobe.fiber.valueobjects.AvailablePropertyIterator;
import com.adobe.fiber.valueobjects.AbstractEntityMetadata;
import mx.events.PropertyChangeEvent;

use namespace model_internal;

[ExcludeClass]internal class _PnlEntityMetadata extends AbstractEntityMetadata
{
    private static var emptyArray:Array = new Array();

    model_internal static var allProperties:Array = new Array("pl_name", "clmA", "clmB", "clmC", "cmlD", "clmE", "clmF", "clmG", "clmH", "clmI", "clmJ", "clmK", "clmL", "clmM", "clmN", "clmO", "clmP", "clmQ", "clmR", "clmS", "clmT", "clmU", "clmV", "clmW", "clmX", "clmY", "clmZ", "clmAA", "clmAB", "clmAC", "amount", "id", "status", "genleg", "doc", "account", "qty", "type", "deptment", "dayy");
    model_internal static var allAssociationProperties:Array = new Array();
    model_internal static var allRequiredProperties:Array = new Array("pl_name", "clmA", "clmB", "clmC", "cmlD", "clmE", "clmF", "clmG", "clmH", "clmI", "clmJ", "clmK", "clmL", "clmM", "clmN", "clmO", "clmP", "clmQ", "clmR", "clmS", "clmT", "clmU", "clmV", "clmW", "clmX", "clmY", "clmZ", "clmAA", "clmAB", "clmAC", "amount", "id", "status", "genleg", "doc", "account", "qty", "type", "deptment", "dayy");
    model_internal static var allAlwaysAvailableProperties:Array = new Array("pl_name", "clmA", "clmB", "clmC", "cmlD", "clmE", "clmF", "clmG", "clmH", "clmI", "clmJ", "clmK", "clmL", "clmM", "clmN", "clmO", "clmP", "clmQ", "clmR", "clmS", "clmT", "clmU", "clmV", "clmW", "clmX", "clmY", "clmZ", "clmAA", "clmAB", "clmAC", "amount", "id", "status", "genleg", "doc", "account", "qty", "type", "deptment", "dayy");
    model_internal static var guardedProperties:Array = new Array();
    model_internal static var dataProperties:Array = new Array("pl_name", "clmA", "clmB", "clmC", "cmlD", "clmE", "clmF", "clmG", "clmH", "clmI", "clmJ", "clmK", "clmL", "clmM", "clmN", "clmO", "clmP", "clmQ", "clmR", "clmS", "clmT", "clmU", "clmV", "clmW", "clmX", "clmY", "clmZ", "clmAA", "clmAB", "clmAC", "amount", "id", "status", "genleg", "doc", "account", "qty", "type", "deptment", "dayy");
    model_internal static var derivedProperties:Array = new Array();
    model_internal static var collectionProperties:Array = new Array();
    model_internal static var collectionBaseMap:Object;    
    model_internal static var entityName:String = "Pnl";
    model_internal static var dependentsOnMap:Object;    
    model_internal static var dependedOnServices:Array =  new Array();
    
    
    model_internal var _instance:_Super_Pnl;
    model_internal static var _nullStyle:Style = new Style();
    
    public function _PnlEntityMetadata(pnl : _Super_Pnl)
    {
        // initialize property maps
        if (model_internal::dependentsOnMap == null)
        {
            // depenents map
            model_internal::dependentsOnMap = new Object();
            model_internal::dependentsOnMap["pl_name"] = new Array();
            model_internal::dependentsOnMap["clmA"] = new Array();
            model_internal::dependentsOnMap["clmB"] = new Array();
            model_internal::dependentsOnMap["clmC"] = new Array();
            model_internal::dependentsOnMap["cmlD"] = new Array();
            model_internal::dependentsOnMap["clmE"] = new Array();
            model_internal::dependentsOnMap["clmF"] = new Array();
            model_internal::dependentsOnMap["clmG"] = new Array();
            model_internal::dependentsOnMap["clmH"] = new Array();
            model_internal::dependentsOnMap["clmI"] = new Array();
            model_internal::dependentsOnMap["clmJ"] = new Array();
            model_internal::dependentsOnMap["clmK"] = new Array();
            model_internal::dependentsOnMap["clmL"] = new Array();
            model_internal::dependentsOnMap["clmM"] = new Array();
            model_internal::dependentsOnMap["clmN"] = new Array();
            model_internal::dependentsOnMap["clmO"] = new Array();
            model_internal::dependentsOnMap["clmP"] = new Array();
            model_internal::dependentsOnMap["clmQ"] = new Array();
            model_internal::dependentsOnMap["clmR"] = new Array();
            model_internal::dependentsOnMap["clmS"] = new Array();
            model_internal::dependentsOnMap["clmT"] = new Array();
            model_internal::dependentsOnMap["clmU"] = new Array();
            model_internal::dependentsOnMap["clmV"] = new Array();
            model_internal::dependentsOnMap["clmW"] = new Array();
            model_internal::dependentsOnMap["clmX"] = new Array();
            model_internal::dependentsOnMap["clmY"] = new Array();
            model_internal::dependentsOnMap["clmZ"] = new Array();
            model_internal::dependentsOnMap["clmAA"] = new Array();
            model_internal::dependentsOnMap["clmAB"] = new Array();
            model_internal::dependentsOnMap["clmAC"] = new Array();
            model_internal::dependentsOnMap["amount"] = new Array();
            model_internal::dependentsOnMap["id"] = new Array();
            model_internal::dependentsOnMap["status"] = new Array();
            model_internal::dependentsOnMap["genleg"] = new Array();
            model_internal::dependentsOnMap["doc"] = new Array();
            model_internal::dependentsOnMap["account"] = new Array();
            model_internal::dependentsOnMap["qty"] = new Array();
            model_internal::dependentsOnMap["type"] = new Array();
            model_internal::dependentsOnMap["deptment"] = new Array();
            model_internal::dependentsOnMap["dayy"] = new Array();
                        
            // collection base map
            model_internal::collectionBaseMap = new Object()
        }                        
        
        model_internal::_instance = pnl;     
    }
    
    override public function getEntityName():String
    {
        return model_internal::entityName;
    }    
    
    override public function getProperties():Array
    {
        return model_internal::allProperties;
    }
    
    override public function getAssociationProperties():Array
    {
        return model_internal::allAssociationProperties;
    }    
    
    override public function getRequiredProperties():Array
    {
         return model_internal::allRequiredProperties;   
    }
    
    override public function getDataProperties():Array
    {
        return model_internal::dataProperties;
    }    
    
    override public function getGuardedProperties():Array
    {
        return model_internal::guardedProperties;
    }     
    
    override public function getUnguardedProperties():Array
    {
        return model_internal::allAlwaysAvailableProperties;
    }        
    
    override public function getDependants(propertyName:String):Array
    {
       if (model_internal::dataProperties.indexOf(propertyName) == -1)
            throw new Error(propertyName + " is not a data property of entity Pnl");  
            
       return model_internal::dependentsOnMap[propertyName] as Array;  
    }
    
    override public function getDependedOnServices():Array
    {
        return model_internal::dependedOnServices;
    }
    
    override public function getCollectionProperties():Array
    {
        return model_internal::collectionProperties;
    }
    
    override public function getCollectionBase(propertyName:String):String
    {
       if (model_internal::collectionProperties.indexOf(propertyName) == -1)
            throw new Error(propertyName + " is not a collection property of entity Pnl");  
            
       return model_internal::collectionBaseMap[propertyName];
    }                
    
     override public function getAvailableProperties():IPropertyIterator
     {
         return new AvailablePropertyIterator(this); 
     }  
     
     override public function getValue(propertyName:String):*    
     {
         if (model_internal::allProperties.indexOf(propertyName) == -1)
         {
             throw new Error(propertyName + " does not exist for entity Pnl");
         }     
           
         return model_internal::_instance[propertyName];
     }       
     
     override public function setValue(propertyName:String, value:*):void   
     {
         if (model_internal::dataProperties.indexOf(propertyName) == -1)
         {
              throw new Error(propertyName + " is not a data property of entity Pnl");
         }  
                                                     
         model_internal::_instance[propertyName] = value;
     }     
     
     override public function getMappedByProperty(associationProperty:String):String
     {
        switch(associationProperty)
        {
            default:
            {
                return null;
            }
        }   
     }
     
     override public function getPropertyLength(propertyName:String):int
     {
        switch(propertyName)
        {
            default:
            {
                return 0;
            }
        }  
     }
     
     override public function isAvailable(propertyName:String):Boolean
     {         
         if (model_internal::allProperties.indexOf(propertyName) == -1)
         {
             throw new Error(propertyName + " does not exist for entity Pnl");
         }   
                
         if (model_internal::allAlwaysAvailableProperties.indexOf(propertyName) != -1)
         {
             return true;
         }
         
         switch(propertyName)
         {
            default:
            {
                return true;
            }
         }                                  
     }  
     
     override public function getIdentityMap():Object
     {
         var returnMap:Object = new Object();
         returnMap["id"] = model_internal::_instance.id;
       
         return returnMap;
     }       
     
     [Bindable(event="propertyChange")]
     override public function get invalidConstraints():Array
     {
        if (model_internal::_instance.model_internal::_cacheInitialized_isValid)
        {
            return model_internal::_instance.model_internal::_invalidConstraints;
        }
        else
        {
            // recalculate isValid
            model_internal::_instance.model_internal::_isValid = model_internal::_instance.model_internal::calculateIsValid();
            model_internal::_instance.model_internal::_cacheInitialized_isValid = true;
            return model_internal::_instance.model_internal::_invalidConstraints;        
        }        
     }       
     
     [Bindable(event="propertyChange")]
     override public function get validationFailureMessages():Array
     {
        if (model_internal::_instance.model_internal::_cacheInitialized_isValid)
        {
            return model_internal::_instance.model_internal::_validationFailureMessages;
        }
        else
        {
            // recalculate isValid
            model_internal::_instance.model_internal::_isValid = model_internal::_instance.model_internal::calculateIsValid();
            model_internal::_instance.model_internal::_cacheInitialized_isValid = true;
            return model_internal::_instance.model_internal::_validationFailureMessages;        
        }        
     }       
     
     override public function getDependantInvalidConstraints(propertyName:String):Array
     {
        var dependants:Array = getDependants(propertyName);
        if (dependants.length == 0)
        {
            return emptyArray;
        }
        
        var currentlyInvalid:Array = invalidConstraints;
        if (currentlyInvalid.length == 0)
        {
            return emptyArray;
        }
            
        var filterFunc:Function = function(element:*, index:int, arr:Array):Boolean
        {
            return dependants.indexOf(element) > -1;     
        }                              
        
        return currentlyInvalid.filter(filterFunc);
     }      
     
    /**
     * isValid
     */
    [Bindable("propertyChange")] 
    public function get isValid() : Boolean
    {
        if (model_internal::_instance.model_internal::_cacheInitialized_isValid)
        {
            return model_internal::_instance.model_internal::_isValid;
        }
        else
        {
            // recalculate isValid
            model_internal::_instance.model_internal::_isValid = model_internal::_instance.model_internal::calculateIsValid();
            return model_internal::_instance.model_internal::_isValid;        
        }
    }       
     
     [Bindable(event="propertyChange")] 
     public function get isPl_nameAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmAAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmBAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmCAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isCmlDAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmEAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmFAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmGAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmHAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmIAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmJAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmKAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmLAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmMAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmNAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmOAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmPAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmQAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmRAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmSAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmTAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmUAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmVAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmWAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmXAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmYAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmZAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmAAAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmABAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isClmACAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isAmountAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isIdAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isStatusAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isGenlegAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isDocAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isAccountAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isQtyAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isTypeAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isDeptmentAvailable():Boolean
     {
        return true;
     }                       
                  
     [Bindable("propertyChange")] 
     public function get isDayyAvailable():Boolean
     {
        return true;
     }                       
                  

    /**
     * derived property recalculation
     */

     model_internal function fireChangeEvent(propertyName:String, oldValue:Object, newValue:Object):void
     {
         this.dispatchEvent(mx.events.PropertyChangeEvent.createUpdateEvent(this, propertyName, oldValue, newValue));
     }

    [Bindable("propertyChange")]   
    public function get pl_nameStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmAStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmBStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmCStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get cmlDStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmEStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmFStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmGStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmHStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmIStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmJStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmKStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmLStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmMStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmNStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmOStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmPStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmQStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmRStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmSStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmTStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmUStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmVStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmWStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmXStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmYStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmZStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmAAStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmABStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get clmACStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get amountStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get idStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get statusStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get genlegStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get docStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get accountStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get qtyStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get typeStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get deptmentStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    
    [Bindable("propertyChange")]   
    public function get dayyStyle():Style
    {
        return model_internal::_nullStyle;        
    }      
    

     /**
     * 
     * @inheritDoc 
     */ 
     override public function getStyle(propertyName:String):IStyle
     {
         switch(propertyName)
         {
            default:
            {
                return null;
            }
         }
     }
     
     /**
     * 
     * @inheritDoc 
     *  
     */  
     override public function getPropertyValidationFailureMessages(propertyName:String):Array
     {
         switch(propertyName)
         {
            default:
            {
                return emptyArray;
            }
         }
     }
    
}

}