X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.graph.db%2Fsrc%2Forg%2Fsimantics%2Fgraph%2Fdb%2FStreamingTransferableGraphFileReader.java;h=68a94e304581f71d55d1c57d9e3220a5da6bac3c;hp=86c3d2fcbb18c51bae4e8bfefbdcd7928de57611;hb=refs%2Fchanges%2F93%2F1593%2F4;hpb=9ea5cf59a4d87c3db3a486e86d7b54efffd5516d diff --git a/bundles/org.simantics.graph.db/src/org/simantics/graph/db/StreamingTransferableGraphFileReader.java b/bundles/org.simantics.graph.db/src/org/simantics/graph/db/StreamingTransferableGraphFileReader.java index 86c3d2fcb..68a94e304 100644 --- a/bundles/org.simantics.graph.db/src/org/simantics/graph/db/StreamingTransferableGraphFileReader.java +++ b/bundles/org.simantics.graph.db/src/org/simantics/graph/db/StreamingTransferableGraphFileReader.java @@ -135,9 +135,9 @@ final public class StreamingTransferableGraphFileReader extends ByteFileReader { Extensions extensions; int resourceCount; - private int identities; - private int stmLength; - private int valueLength; + private int identities = -1; + private int stmLength = -1; + private int valueLength = -1; public FileTransferableGraphSource() throws Exception { init(); @@ -176,33 +176,41 @@ final public class StreamingTransferableGraphFileReader extends ByteFileReader { @Override public int getIdentityCount() throws Exception { - identities = safeInt(); + if(identities == -1) { + identities = safeInt(); + } return identities; } @Override public int getStatementCount() throws Exception { - stmLength = safeInt(); + if(stmLength == -1) { + stmLength = safeInt(); + } return stmLength; } @Override public int getValueCount() throws Exception { - valueLength = safeInt(); + if(valueLength == -1) { + valueLength = safeInt(); + } return valueLength; } @Override public void forStatements(ReadGraph graph, TransferableGraphSourceProcedure procedure) throws Exception { - + int[] value = new int[4]; + int stmLength = getStatementCount(); + for(int stmIndex=0;stmIndex> 2; int allowed = Math.min(stmLength-stmIndex, avail); @@ -213,94 +221,100 @@ final public class StreamingTransferableGraphFileReader extends ByteFileReader { // statements[stmIndex++] = ((bytes[index++]&0xff)<<24) | ((bytes[index++]&0xff)<<16) | ((bytes[index++]&0xff)<<8) | ((bytes[index++]&0xff)); } byteIndex += allowed<<2; - + } - + } @Override public void forIdentities(ReadGraph graph, TransferableGraphSourceProcedure procedure) throws Exception { - + + int identities = getIdentityCount(); + for(int i=0;i procedure) throws Exception { - + + int valueLength = getValueCount(); + Serializer variantSerializer = Bindings.getSerializerUnchecked(Bindings.VARIANT); - + List idcontext = new ArrayList<>(); - + for(int i=0;i idContext = new ArrayList<>(); - + for(int i=0;i