}
throw new DatabaseException("No type for " + variable.getURI(graph));
} else {
- Resource possibleType = graph.getPossibleType(represents, Layer0.getInstance(graph).Entity);
- if (graph.syncRequest(new IsInstanceOf(possibleType, StructuralResource2.getInstance(graph).ReplaceableDefinedComponentType), TransientCacheListener.instance()) ) {
+ StructuralResource2 STR = StructuralResource2.getInstance(graph);
+ Resource possibleType = graph.getPossibleType(represents, STR.Component);
+ if (possibleType == null) {
+ possibleType = graph.getPossibleType(represents, Layer0.getInstance(graph).Entity);
+ if (possibleType == null)
+ return null;
+ }
+ if (graph.syncRequest(new IsInstanceOf(possibleType, STR.ReplaceableDefinedComponentType), TransientCacheListener.instance()) ) {
return graph.syncRequest(new StructuralOverrideDataWalkRequest(variable, represents, possibleType), TransientCacheListener.instance());
} else {
return null;
@Override
public Variable getVariable(ReadGraph graph, Variable context, String name) throws DatabaseException {
-
- Resource type = context.getPossibleType(graph);
+ StructuralResource2 STR = StructuralResource2.getInstance(graph);
+ Resource type = context.getPossibleType(graph, STR.Component);
if(type == null) return null;
Tuple2 result = graph.syncRequest(new StructureTypeAndChildMapRequest(type), TransientCacheListener.instance());