]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.databoard/src/org/simantics/databoard/Databoard.java
Initial support for concurrency in databoard, bindings and serializers
[simantics/platform.git] / bundles / org.simantics.databoard / src / org / simantics / databoard / Databoard.java
index da488e0a81b087f423b0bfe0171102f305bf625f..195e87a1706e328e9f18aee185d9aefb2950f01d 100644 (file)
@@ -51,11 +51,11 @@ import org.simantics.databoard.binding.reflection.BindingProvider;
 import org.simantics.databoard.binding.reflection.BindingRequest;
 import org.simantics.databoard.binding.reflection.ClassBindingFactory;
 import org.simantics.databoard.binding.reflection.VoidBinding;
-import org.simantics.databoard.serialization.DefaultSerializerFactory;
+import org.simantics.databoard.serialization.DefaultConcurrentSerializerFactory;
 import org.simantics.databoard.serialization.RuntimeSerializerConstructionException;
 import org.simantics.databoard.serialization.Serializer;
 import org.simantics.databoard.serialization.SerializerConstructionException;
-import org.simantics.databoard.serialization.SerializerFactory;
+import org.simantics.databoard.serialization.SerializerScheme;
 import org.simantics.databoard.type.Datatype;
 import org.simantics.databoard.util.Bean;
 import org.simantics.databoard.util.DataValueUtil;
@@ -89,7 +89,8 @@ public class Databoard {
     public final ClassBindingFactory            classBindingFactory = new ClassBindingFactory( bindingRepository, defaultBindingFactory );
 
     /** Serializer Factory */
-    public final SerializerFactory              serializationFactory = new DefaultSerializerFactory( serializerRepository );
+    //public final SerializerFactory            serializationFactory = new DefaultSerializerFactory( serializerRepository );
+    public final SerializerScheme           serializationFactory = new DefaultConcurrentSerializerFactory();
 
     /** Adapter Factory */
        public final AdapterFactory              adapterFactory = new AdapterFactory();
@@ -483,7 +484,7 @@ public class Databoard {
         * @throws SerializerConstructionException
         */
        public Serializer getSerializer(Binding binding) throws SerializerConstructionException {
-               return serializationFactory.construct(binding);
+               return serializationFactory.getSerializer(binding);
        }
 
        /**
@@ -494,11 +495,7 @@ public class Databoard {
         * @throws RuntimeSerializerConstructionException
         */
        public Serializer getSerializerUnchecked(Binding binding) throws RuntimeSerializerConstructionException {
-               try {
-                       return serializationFactory.construct(binding);
-               } catch (SerializerConstructionException e) {
-                       throw new RuntimeSerializerConstructionException(e);
-               }
+               return serializationFactory.getSerializerUnchecked(binding);
        }
 
        /**
@@ -511,7 +508,7 @@ public class Databoard {
        public Serializer getSerializer(Class<?> clazz) throws SerializerConstructionException {
                try {
                        Binding binding = getBinding(clazz);
-                       return serializationFactory.construct(binding);
+                       return serializationFactory.getSerializer(binding);
                } catch (BindingConstructionException e) {
                        throw new SerializerConstructionException( e );
                }
@@ -527,9 +524,7 @@ public class Databoard {
        public Serializer getSerializerUnchecked(Class<?> clazz) throws RuntimeSerializerConstructionException {
                try {
                        Binding binding = getBinding(clazz);
-                       return serializationFactory.construct(binding);
-               } catch (SerializerConstructionException e) {
-                       throw new RuntimeSerializerConstructionException(e);
+                       return serializationFactory.getSerializerUnchecked(binding);
                } catch (BindingConstructionException e) {
                        throw new RuntimeSerializerConstructionException( new SerializerConstructionException(e) );
                }