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;
}
}
}