package Pixco.Framework.Navigation.Data.Codegen { import weborb.data.*; import Pixco.Framework.Navigation.Data.*; import mx.collections.ArrayCollection; import flash.utils.ByteArray; [Bindable] public dynamic class _NavigationItem extends ActiveRecord { private var _uri:String = null; protected var _iD: int; protected var _code: String; protected var _captionResourceCode: String; protected var _navigationType: int; protected var _createBy: int; protected var _createDate: Date; protected var _modifyBy: int; protected var _modifyDate: Date; // parent tables internal var _relatedNavigationItem: NavigationItem; public function get ID(): int { return _iD; } public function set ID(value:int):void { _isPrimaryKeyAffected = true; _uri = null; if(IsLoaded || IsLoading) { trace("Critical error: attempt to modify primary key in initialized object " + getURI()); return; } _iD = value; } public function get Code(): String { return _code; } public function set Code(value:String):void { _code = value; } public function get CaptionResourceCode(): String { return _captionResourceCode; } public function set CaptionResourceCode(value:String):void { _captionResourceCode = value; } public function get NavigationType(): int { return _navigationType; } public function set NavigationType(value:int):void { _navigationType = value; } public function get ParentNavigationItemID(): int { if(_relatedNavigationItem != null) return _relatedNavigationItem.ID; return undefined; } protected function set ParentNavigationItemID(value:int):void { if(_relatedNavigationItem == null) _relatedNavigationItem = new NavigationItem(); _relatedNavigationItem.ID = value; } public function get CreateBy(): int { return _createBy; } public function set CreateBy(value:int):void { _createBy = value; } public function get CreateDate(): Date { return _createDate; } public function set CreateDate(value:Date):void { _createDate = value; } public function get ModifyBy(): int { return _modifyBy; } public function set ModifyBy(value:int):void { _modifyBy = value; } public function get ModifyDate(): Date { return _modifyDate; } public function set ModifyDate(value:Date):void { _modifyDate = value; } public function get RelatedNavigationItem():NavigationItem { if(IsLoaded && _relatedNavigationItem && !(_relatedNavigationItem.IsLoaded || _relatedNavigationItem.IsLoading)) { _relatedNavigationItem = DataMapperRegistry.Instance.NavigationItem.load(_relatedNavigationItem); onParentChanged(_relatedNavigationItem); } return _relatedNavigationItem; } public function set RelatedNavigationItem(value:NavigationItem):void { _relatedNavigationItem = NavigationItem(IdentityMap.register( value )); onParentChanged(_relatedNavigationItem); } // one to many relation protected var _relatedNavigationGrouping:ActiveCollection; public function get RelatedNavigationGrouping():ActiveCollection { _relatedNavigationGrouping = onChildRelationRequest("relatedNavigationGrouping",_relatedNavigationGrouping); return _relatedNavigationGrouping; } // one to many relation protected var _relatedNavigationItemChild:ActiveCollection; public function get RelatedNavigationItemChild():ActiveCollection { _relatedNavigationItemChild = onChildRelationRequest("relatedNavigationItemChild",_relatedNavigationItemChild); return _relatedNavigationItemChild; } // one to many relation protected var _relatedNavigationQueryExpression:ActiveCollection; public function get RelatedNavigationQueryExpression():ActiveCollection { _relatedNavigationQueryExpression = onChildRelationRequest("relatedNavigationQueryExpression",_relatedNavigationQueryExpression); return _relatedNavigationQueryExpression; } protected override function onDirtyChanged():void { if(RelatedNavigationItem != null) RelatedNavigationItem.onChildChanged(this); } public override function extractRelevant(cascade:Boolean = false):Object { var object:NavigationItem = new NavigationItem(); object.ID = this.ID; object.Code = this.Code; object.CaptionResourceCode = this.CaptionResourceCode; object.NavigationType = this.NavigationType; object.ParentNavigationItemID = this.ParentNavigationItemID; object.CreateBy = this.CreateBy; object.CreateDate = this.CreateDate; object.ModifyBy = this.ModifyBy; object.ModifyDate = this.ModifyDate; if(cascade) { for each(var navigationGrouping :NavigationGrouping in _relatedNavigationGrouping) { if(navigationGrouping.IsDirty) { var navigationGroupingExtract:Object = navigationGrouping.extractRelevant(true); navigationGroupingExtract.RelatedNavigationItem = object; object.RelatedNavigationGrouping.addItem(navigationGroupingExtract); } } for each(var navigationItem :NavigationItem in _relatedNavigationItemChild) { if(navigationItem.IsDirty) { var navigationItemExtract:Object = navigationItem.extractRelevant(true); navigationItemExtract.RelatedNavigationItem = object; object.RelatedNavigationItemChild.addItem(navigationItemExtract); } } for each(var navigationQueryExpression :NavigationQueryExpression in _relatedNavigationQueryExpression) { if(navigationQueryExpression.IsDirty) { var navigationQueryExpressionExtract:Object = navigationQueryExpression.extractRelevant(true); navigationQueryExpressionExtract.RelatedNavigationItem = object; object.RelatedNavigationQueryExpression.addItem(navigationQueryExpressionExtract); } } } object.ActiveRecordId = this.ActiveRecordId; return object; } public override function extractChilds():Array { var childs:Array = new Array(); if(this["relatedNavigationGrouping"]) { for each(var navigationGrouping :ActiveRecord in this["relatedNavigationGrouping"] as Array) childs.push(navigationGrouping); } if(this["relatedNavigationItemChild"]) { for each(var navigationItem :ActiveRecord in this["relatedNavigationItemChild"] as Array) childs.push(navigationItem); } if(this["relatedNavigationQueryExpression"]) { for each(var navigationQueryExpression :ActiveRecord in this["relatedNavigationQueryExpression"] as Array) childs.push(navigationQueryExpression); } return childs; } public override function applyFields(object:Object):void { if(!IsPrimaryKeyInitialized) ID = object["ID"]; Code = object["Code"]; CaptionResourceCode = object["CaptionResourceCode"]; NavigationType = object["NavigationType"]; CreateBy = object["CreateBy"]; CreateDate = object["CreateDate"]; ModifyBy = object["ModifyBy"]; ModifyDate = object["ModifyDate"]; RelatedNavigationItem = object.RelatedNavigationItem; _uri = null; IsDirty = false; } protected override function get dataMapper():DataMapper { return DataMapperRegistry.Instance.NavigationItem; } public override function getURI():String { if(_uri == null) { _uri = "AMF_dev.NavigationItem." + ID.toString() ; } return _uri; } } }