Objects objs=odb.getObjects(Entity.class) =>
ObjectReader.getObejcts(){
A=CollectionQueryResultAction
} =>
ObjectReader.getObejctInfos() =>
GenericQueryExecutor.executeFullScan()
【
A.Start():result=new SimpleList
matchObjectWithOid [ can get nnoi ] =>
AttributeValuesMap map=ObjectReader.readObjectInfoFromOID ->readNativeObjectInfo->
readAtomicNativeObjectInfoAsObject->FileSystemInfterface.readString
map:
【
A Map where keys are attributes names and values are the values of there attributes
map.setObjectInfoHeader(objectInfoHeader);
ClassAttributeInfo cai = classInfo.getAttributeInfoFromId(attributeId);
AbstractObjectInfo aoi = readNativeObjectInfo(cai.getAttributeType().getId(), attributePosition,
useCache, true, true);
object = aoi.getObject();
map.put(relationNameToSearch, object);
】
boolean=LikeCriterion.match(map)
<if boolean>
A.objectMatch(oid,nnoi){
B=A.getCurrentInstance =>
NonNativeObjectInfo B=InstanceBuilder.buildOneInstance(nnoi) {
1.Cache.getObjectWithOid
2.ClassInstrospector.newInstanceOf(clazz)
3. < for nnoi.getClassInfo() > 字段赋值过程
AtomicNativeObjectInfo C=nnoi.getAttributeValueFromId(id) 字段属性
value=C.getObject() =>
field.set(B,value);
</for>
</if boolean>
}
result.add(B)
A.end()
】
getObject()=>
return result
本文详细介绍了在特定框架下如何通过多个步骤读取并构建复杂对象的过程,涉及使用OID查询对象信息、执行全表扫描、匹配对象及构建实例等核心操作。
141

被折叠的 条评论
为什么被折叠?



