-package fi.vtt.simantics.procore.internal;\r
-\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.db.impl.ClusterI;\r
-import org.simantics.db.impl.ClusterTraitsBase;\r
-import org.simantics.db.impl.ResourceImpl;\r
-import org.simantics.db.procore.cluster.ClusterImpl;\r
-import org.simantics.db.service.ClusterBuilder;\r
-import org.simantics.db.service.ClusterUID;\r
-\r
-import fi.vtt.simantics.procore.internal.SessionImplSocket.WriteOnlySupport;\r
-\r
-public class ClusterBuilderImpl implements ClusterBuilder {\r
- \r
- final private ClusterTable clusterTable;\r
- final private ClusterStream stream;\r
- final private WriteOnlySupport support;\r
- \r
- ClusterBuilderImpl(SessionImplSocket session, WriteOnlySupport support) {\r
- this.support = support;\r
- this.stream = support.stream;\r
- this.clusterTable = session.clusterTable;\r
- }\r
-\r
- @Override\r
- public void newCluster() throws DatabaseException {\r
- support.flushCluster();\r
- }\r
- \r
- @Override\r
- public ResourceHandle newResource() throws DatabaseException {\r
- return new ResourceHandleImpl(support);\r
- }\r
- \r
- @Override\r
- public ResourceHandle resource(Resource res) throws DatabaseException {\r
- ResourceImpl r = (ResourceImpl)res;\r
- int clusterKey = ClusterTraitsBase.getClusterKeyFromResourceKey(r.id);\r
- ClusterI cluster = clusterTable.getClusterByClusterKey(clusterKey);\r
- return new ResourceHandleImpl(stream, (ClusterImpl)cluster, r.id);\r
- }\r
-\r
- @Override\r
- public StatementHandle newStatement(ResourceHandle predicate, ResourceHandle object) throws DatabaseException {\r
- ResourceHandleImpl p = (ResourceHandleImpl)predicate;\r
- ResourceHandleImpl o = (ResourceHandleImpl)object;\r
- int pResourceIndex = ClusterTraitsBase.getResourceIndexFromResourceKey(p.resourceKey);\r
- ClusterI pCluster = clusterTable.getClusterByClusterKey(pResourceIndex);\r
- ClusterUID pClusterUID = pCluster.getClusterUID();\r
- int oResourceIndex = ClusterTraitsBase.getResourceIndexFromResourceKey(p.resourceKey);\r
- ClusterI oCluster = clusterTable.getClusterByClusterKey(oResourceIndex);\r
- ClusterUID oClusterUID = oCluster.getClusterUID();\r
- return new StatementHandleImpl(p.resourceKey, (byte)0, o.resourceKey, (byte)0, pClusterUID, oClusterUID);\r
- }\r
-\r
-}\r
+package fi.vtt.simantics.procore.internal;
+
+import org.simantics.db.Resource;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.db.impl.ClusterI;
+import org.simantics.db.impl.ClusterTraitsBase;
+import org.simantics.db.impl.ResourceImpl;
+import org.simantics.db.procore.cluster.ClusterImpl;
+import org.simantics.db.service.ClusterBuilder;
+import org.simantics.db.service.ClusterUID;
+
+import fi.vtt.simantics.procore.internal.SessionImplSocket.WriteOnlySupport;
+
+public class ClusterBuilderImpl implements ClusterBuilder {
+
+ final private ClusterTable clusterTable;
+ final private ClusterStream stream;
+ final private WriteOnlySupport support;
+
+ ClusterBuilderImpl(SessionImplSocket session, WriteOnlySupport support) {
+ this.support = support;
+ this.stream = support.stream;
+ this.clusterTable = session.clusterTable;
+ }
+
+ @Override
+ public void newCluster() throws DatabaseException {
+ support.flushCluster();
+ }
+
+ @Override
+ public ResourceHandle newResource() throws DatabaseException {
+ return new ResourceHandleImpl(support);
+ }
+
+ @Override
+ public ResourceHandle resource(Resource res) throws DatabaseException {
+ ResourceImpl r = (ResourceImpl)res;
+ int clusterKey = ClusterTraitsBase.getClusterKeyFromResourceKey(r.id);
+ ClusterI cluster = clusterTable.getClusterByClusterKey(clusterKey);
+ return new ResourceHandleImpl(stream, (ClusterImpl)cluster, r.id);
+ }
+
+ @Override
+ public StatementHandle newStatement(ResourceHandle predicate, ResourceHandle object) throws DatabaseException {
+ ResourceHandleImpl p = (ResourceHandleImpl)predicate;
+ ResourceHandleImpl o = (ResourceHandleImpl)object;
+ int pResourceIndex = ClusterTraitsBase.getResourceIndexFromResourceKey(p.resourceKey);
+ ClusterI pCluster = clusterTable.getClusterByClusterKey(pResourceIndex);
+ ClusterUID pClusterUID = pCluster.getClusterUID();
+ int oResourceIndex = ClusterTraitsBase.getResourceIndexFromResourceKey(p.resourceKey);
+ ClusterI oCluster = clusterTable.getClusterByClusterKey(oResourceIndex);
+ ClusterUID oClusterUID = oCluster.getClusterUID();
+ return new StatementHandleImpl(p.resourceKey, (byte)0, o.resourceKey, (byte)0, pClusterUID, oClusterUID);
+ }
+
+}