一、ECO的类
ExpressionHandle
//撰写OCL动态操作语句,使用参数。
Variablehandle
//设置参数的变量类型和所属ECO空间类型
oclvariabales
//定义参数到语句之间的影射关系。在OCL语言编辑器自然含有variable变量名
{代码例子:使以上的动态绑定生效
var
ehTopics:ExpressionHandle;
var
fm : Forum;
begin
fm := rhRoot.Element.AsObject as Forum;
Self.vhForumID.Element.AsObject := System.Object(fm.ForumID);
Self.TopicList.DataSource := Self.ehTopics;
}
OclPSHandle:
{代码例子:
var
anElement : IElement;
begin
Self.OclPSHandle1.Expression := tbOclPSHandle.Text;//直接设置OCL语句如‘Forum.allInstances->collect(F| F).Name’
Self.OclPSHandle1.Execute;//执行该语句
anElement := Self.OclPSHandle1.Element;//得到该语句执行的数据集
}
ReferenceHandle
:
rhroot即是该类,代表的ECO空间的业务逻辑模型源,他决定采用哪个模型作为变成依据。有点类似数据的datasource.
PersistemceMapperMutiDb
SyncHander:
PersistenceMapperClient:
PersistenceMapperSharer:
FileMappingProvider
DbMappingProvider:
PersistenceMapperBdp:
PersistenceMapperSqlServer:
PersistenceMapperXml:
二、ECO的接口
OCLResult : IElement;
//Eco空间的超级接口 ,类似一个数据集
oclService : IOclService; //
Eco的表达示接口,可以获得一个数据集接口 IElement
{代码例子
1、
oclService:=EcoSpace.OclService;
OCLResult := oclService.Evaluate(userOCL);//userOCL为OCL查询语句
Result := nil;
if (OCLResult.GetAsCollection.Count <> 0) then//如果得到数据集
Result := OCLResult.GetAsCollection.Item[0].AsObject as
ForumMember;//将该数据作为ForumMemberECO对象
HttpContext.Current.Session['ForumMember'] := Result;
2、var
objTopic : Topic;//是ECO空间的对象
begin
objTopic :=
ehTopics.Element.GetAsCollection.Item[Convert.ToInt32(iId)].AsObject as Topic;//ehTopics.Element=OCLResult
Result:= System.&Object(objTopic.UserName);
end;
}
IdService: IExternalIdService;
//ECO扩展服务,可以用他取得ECO—ID或ECO对象
{代码例子
var result:IObjectInstance;
IdService := EcoSpace.GetEcoService(typeof(IExternalIdService)) as IExternalIdService;
Result := IdService.ObjectForId(Id);//OR::::IdService.IdForObject(obj);
}
IModelElement:
是ECO所有接口的祖先。可以得到ECO业务逻辑模型中所有的类信息以及每个类属性的包
IClassifier、IEcoClassifier:可以找出ECO业务模型使用的DONET类类型和数据类型。
IClass、IEcoClass: