handles[identity.resource] = builder.handle(graph.syncRequest(new UnescapedChildMapOfResource(parent)).get(def.name));
}
}
-
- //if(!missingExternals.isEmpty()) throw new MissingDependencyException(this);
-
+
+ if (!missingExternals.isEmpty() && failOnMissingEntities())
+ throw new MissingDependencyException(this);
+ }
+
+ private boolean failOnMissingEntities() {
+ return "true".equalsIgnoreCase(
+ System.getProperty(
+ "org.simantics.tg.import.failOnMissingEntities",
+ "false") );
}
@Override
public Resource createChild(WriteOnlyGraph graph, Resource parent, Resource child, String name) throws DatabaseException {
+ //System.err.println("child " + parent + " - " + child + " = " + name);
if(child == null) child = graph.newResource();
Resource nameResource = graph.newResource();
graph.claim(nameResource, InstanceOf, null, String);
graph.claimValue(nameResource, name, WriteBindings.STRING);
graph.claim(child, HasName, NameOf, nameResource);
+ graph.claim(parent, ConsistsOf, PartOf, child);
return child;
}
Resource parent = resolvedParents.get(parts[0]);
// TODO: proper exception message
if(parent == null) {
- throw new IllegalStateException("!!");
+ throw new IllegalStateException("Missing URI: " + uri);
}
Resource childResource = graph.newResource();
}
else if(definition instanceof Internal) {
Internal def = (Internal)definition;
-
Resource external = existingInternalMap.get(identity.resource);
if(external != null) {
handles[identity.resource] = builder.handle(external);