import org.simantics.db.Resource;
import org.simantics.db.exception.DatabaseException;
import org.simantics.db.request.Read;
+import org.simantics.g3d.scenegraph.base.INode;
import org.simantics.objmap.graph.IMapping;
import org.simantics.objmap.graph.Mappings;
import org.simantics.objmap.graph.schema.IMappingSchema;
public class SCLUtil {
public static interface SchemaProvider {
- IMappingSchema<Resource,Object> get(ReadGraph graph) throws DatabaseException;
+ IMappingSchema<Resource,INode> get(ReadGraph graph) throws DatabaseException;
}
public static interface NodeMapProvider {
- P3DScriptNodeMap get(IMapping<Resource, Object> mapping, P3DRootNode rootNode);
+ P3DScriptNodeMap get(IMapping<Resource, INode> mapping, P3DRootNode rootNode);
}
public static P3DScriptNodeMap load(final Resource root) throws DatabaseException {
@Override
public NodeMap perform(ReadGraph graph) throws DatabaseException {
PipingRules.setEnabled(false);
- IMappingSchema<Resource, Object> schema = schemaProvider.get(graph);
- IMapping<Resource, Object> mapping = Mappings.createWithListening(schema);
+ IMappingSchema<Resource, INode> schema = schemaProvider.get(graph);
+ IMapping<Resource, INode> mapping = Mappings.createWithListening(schema);
P3DRootNode rootNode = (P3DRootNode) mapping.map(graph, root);
- rootNode.setMapping((IMapping)mapping);
+ rootNode.setMapping(mapping);
try {
P3DUtil.finalizeDBLoad(rootNode);
// FIXME: Something needs to be done here...
@Override
public Root perform(ReadGraph graph) throws DatabaseException {
PipingRules.setEnabled(false);
- IMappingSchema<Resource, Object> schema = schemaProvider.get(graph);
- IMapping<Resource, Object> mapping = Mappings.createWithoutListening(schema);
+ IMappingSchema<Resource, INode> schema = schemaProvider.get(graph);
+ IMapping<Resource, INode> mapping = Mappings.createWithoutListening(schema);
@SuppressWarnings("unchecked")
Root rootNode = (Root) mapping.map(graph, root);
- rootNode.setMapping((IMapping)mapping);
+ rootNode.setMapping(mapping);
try {
P3DUtil.finalizeDBLoad(rootNode);
P3DUtil.finalizeDBLoad2(rootNode);