import java.util.Arrays;
import java.util.Collection;
import java.util.Enumeration;
-import java.util.Map;
import java.util.Map.Entry;
import java.util.Objects;
import java.util.concurrent.atomic.AtomicReference;
import org.osgi.framework.Bundle;
import org.simantics.databoard.Bindings;
import org.simantics.databoard.adapter.AdaptException;
-import org.simantics.databoard.binding.Binding;
import org.simantics.databoard.binding.mutable.Variant;
import org.simantics.databoard.container.DataContainer;
import org.simantics.databoard.container.DataContainers;
-import org.simantics.databoard.container.FormatHandler;
import org.simantics.graph.compiler.CompilationResult;
import org.simantics.graph.compiler.GraphCompiler;
import org.simantics.graph.compiler.GraphCompilerPreferences;
import org.simantics.graph.compiler.ValidationMode;
import org.simantics.graph.representation.Extensions;
import org.simantics.graph.representation.TransferableGraph1;
+import org.simantics.graph.representation.TransferableGraphFileReader;
import org.simantics.ltk.FileSource;
import org.simantics.ltk.ISource;
import org.simantics.ltk.Problem;
import org.simantics.scl.reflection.OntologyVersions;
-import org.simantics.utils.datastructures.ArrayMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
throw new IOException("Problem loading graph.tg from bundle " + bundle.getSymbolicName(), e);
}
}
-
- private static FormatHandler<TransferableGraph1> FORMAT_HANDLER = new FormatHandler<TransferableGraph1>() {
- @Override
- public Binding getBinding() {
- return TransferableGraph1.BINDING;
- }
- @Override
- public TransferableGraph1 process(DataContainer container) throws Exception {
- return (TransferableGraph1) container.content.getValue(TransferableGraph1.BINDING);
- }
- };
-
- @SuppressWarnings("unchecked")
- private static Map<String, FormatHandler<TransferableGraph1>> handlers = ArrayMap.make(
- new String[] {
- "graph:1",
- "sharedLibrary:1"
- },
- FORMAT_HANDLER,
- FORMAT_HANDLER);
-
- private static TransferableGraph1 readTG(InputStream is) throws Exception {
- // For an unknown reason this is totally broken when running the TestSCLOsgi
- // in the SDK Tycho build. It returns incomplete results because the
- // ReadableByteChannel used by ByteFileReader starts returning 0 unexpectedly.
-// try (TransferableGraphFileReader reader = new TransferableGraphFileReader(is)) {
-// return reader.readTG();
-// }
- return DataContainers.readFile(new DataInputStream(is), handlers);
- }
private static TransferableGraph1 readTG(URL url) throws Exception {
try (InputStream is = url.openStream()) {
- return readTG(is);
+ return TransferableGraphFileReader.read(is);
}
}