]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.databoard/src/org/simantics/databoard/accessor/java/JavaObject.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.databoard / src / org / simantics / databoard / accessor / java / JavaObject.java
index f5a0d334a3afd597deb9a3eafb16ae4a22f2f088..38b5001e2a24dc2eb6b3d42b757985f17f456582 100644 (file)
@@ -1,54 +1,54 @@
-/*******************************************************************************\r
- *  Copyright (c) 2010 Association for Decentralized Information Management in\r
- *  Industry THTH ry.\r
- *  All rights reserved. This program and the accompanying materials\r
- *  are made available under the terms of the Eclipse Public License v1.0\r
- *  which accompanies this distribution, and is available at\r
- *  http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- *  Contributors:\r
- *      VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
+/*******************************************************************************
+ *  Copyright (c) 2010 Association for Decentralized Information Management in
+ *  Industry THTH ry.
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *
+ *  Contributors:
+ *      VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
 package org.simantics.databoard.accessor.java;
 
-import java.io.IOException;\r
-import java.util.Collection;\r
-import java.util.LinkedList;\r
-import java.util.List;\r
-import java.util.concurrent.Executor;\r
-import java.util.concurrent.locks.Lock;\r
-\r
-import org.simantics.databoard.accessor.Accessor;\r
-import org.simantics.databoard.accessor.ParametrisedAccessor;\r
-import org.simantics.databoard.accessor.error.AccessorConstructionException;\r
-import org.simantics.databoard.accessor.error.AccessorException;\r
-import org.simantics.databoard.accessor.error.ReferenceException;\r
-import org.simantics.databoard.accessor.event.Event;\r
-import org.simantics.databoard.accessor.event.InvalidatedEvent;\r
-import org.simantics.databoard.accessor.event.ValueAssigned;\r
-import org.simantics.databoard.accessor.impl.AccessorParams;\r
-import org.simantics.databoard.accessor.impl.ListenerEntry;\r
-import org.simantics.databoard.accessor.interestset.ByteInterestSet;\r
-import org.simantics.databoard.accessor.interestset.InterestSet;\r
-import org.simantics.databoard.accessor.reference.ChildReference;\r
-import org.simantics.databoard.adapter.AdaptException;\r
-import org.simantics.databoard.adapter.AdapterConstructionException;\r
-import org.simantics.databoard.binding.ArrayBinding;\r
-import org.simantics.databoard.binding.Binding;\r
-import org.simantics.databoard.binding.BooleanBinding;\r
-import org.simantics.databoard.binding.ByteBinding;\r
-import org.simantics.databoard.binding.DoubleBinding;\r
-import org.simantics.databoard.binding.FloatBinding;\r
-import org.simantics.databoard.binding.IntegerBinding;\r
-import org.simantics.databoard.binding.LongBinding;\r
-import org.simantics.databoard.binding.MapBinding;\r
-import org.simantics.databoard.binding.OptionalBinding;\r
-import org.simantics.databoard.binding.RecordBinding;\r
-import org.simantics.databoard.binding.StringBinding;\r
-import org.simantics.databoard.binding.UnionBinding;\r
-import org.simantics.databoard.binding.VariantBinding;\r
-import org.simantics.databoard.binding.error.BindingException;\r
-import org.simantics.databoard.type.Datatype;\r
+import java.io.IOException;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.concurrent.Executor;
+import java.util.concurrent.locks.Lock;
+
+import org.simantics.databoard.accessor.Accessor;
+import org.simantics.databoard.accessor.ParametrisedAccessor;
+import org.simantics.databoard.accessor.error.AccessorConstructionException;
+import org.simantics.databoard.accessor.error.AccessorException;
+import org.simantics.databoard.accessor.error.ReferenceException;
+import org.simantics.databoard.accessor.event.Event;
+import org.simantics.databoard.accessor.event.InvalidatedEvent;
+import org.simantics.databoard.accessor.event.ValueAssigned;
+import org.simantics.databoard.accessor.impl.AccessorParams;
+import org.simantics.databoard.accessor.impl.ListenerEntry;
+import org.simantics.databoard.accessor.interestset.ByteInterestSet;
+import org.simantics.databoard.accessor.interestset.InterestSet;
+import org.simantics.databoard.accessor.reference.ChildReference;
+import org.simantics.databoard.adapter.AdaptException;
+import org.simantics.databoard.adapter.AdapterConstructionException;
+import org.simantics.databoard.binding.ArrayBinding;
+import org.simantics.databoard.binding.Binding;
+import org.simantics.databoard.binding.BooleanBinding;
+import org.simantics.databoard.binding.ByteBinding;
+import org.simantics.databoard.binding.DoubleBinding;
+import org.simantics.databoard.binding.FloatBinding;
+import org.simantics.databoard.binding.IntegerBinding;
+import org.simantics.databoard.binding.LongBinding;
+import org.simantics.databoard.binding.MapBinding;
+import org.simantics.databoard.binding.OptionalBinding;
+import org.simantics.databoard.binding.RecordBinding;
+import org.simantics.databoard.binding.StringBinding;
+import org.simantics.databoard.binding.UnionBinding;
+import org.simantics.databoard.binding.VariantBinding;
+import org.simantics.databoard.binding.error.BindingException;
+import org.simantics.databoard.type.Datatype;
 
 /**
  * Accessor to a Java Object.
@@ -56,8 +56,8 @@ import org.simantics.databoard.type.Datatype;
  * The monitoring contract forbids modifications to the object outside this 
  * accessor object. If you do modifications to the value using other mechanisms,
  * you must notify the listeners of the accessor with {@link #notifyValueChanged()}.
- * <p>\r
- * If a lock is not provided, operations cannot be performed simulataneously \r
+ * <p>
+ * If a lock is not provided, operations cannot be performed simulataneously 
  * in multiple-threads. 
  *
  * @author Toni Kalajainen <toni.kalajainen@vtt.fi>
@@ -75,29 +75,29 @@ public abstract class JavaObject implements Accessor, ParametrisedAccessor {
        /** Binding */
        Binding binding;
        /** Listeners */
-       ListenerEntry listeners = null;\r
-       /** Key in parent, index for fields/arrays, key for maps, */\r
-       Object keyInParent = null;\r
-       /** Accessor params, propagated to children */\r
+       ListenerEntry listeners = null;
+       /** Key in parent, index for fields/arrays, key for maps, */
+       Object keyInParent = null;
+       /** Accessor params, propagated to children */
        AccessorParams params;
-\r
-       /**\r
-        * Create a new accessor to a Java Object.<p>\r
-        * \r
-        * Read and write locks may optionally be provided for locking mechanisms.\r
-        * ReadWriteLock can be provied or a signle MutualExclusion lock. \r
-        * \r
-        * @param parent parent, or <tt>null</tt>\r
-        * @param binding\r
-        * @param initialValue the java object\r
-        * @param params accessor params \r
+
+       /**
+        * Create a new accessor to a Java Object.<p>
+        * 
+        * Read and write locks may optionally be provided for locking mechanisms.
+        * ReadWriteLock can be provied or a signle MutualExclusion lock. 
+        * 
+        * @param parent parent, or <tt>null</tt>
+        * @param binding
+        * @param initialValue the java object
+        * @param params accessor params 
         */
        public JavaObject(Accessor parent, Binding binding, Object initialValue, AccessorParams params) {
                if (binding==null) throw new IllegalArgumentException("null arg");
                this.parent = parent;
                this.binding = binding;
-               this.object = initialValue;\r
-               this.params = params;\r
+               this.object = initialValue;
+               this.params = params;
        }
        
        /**
@@ -112,132 +112,132 @@ public abstract class JavaObject implements Accessor, ParametrisedAccessor {
        public Binding getBinding() {
                return binding;
        }       
-       \r
-       @Override\r
-       public AccessorParams getParams() {\r
-               return params;\r
-       }\r
+       
+       @Override
+       public AccessorParams getParams() {
+               return params;
+       }
        
        public Datatype type() {
                return binding.type();
-       }\r
-       \r
-       /**\r
-        * Get lock if available. \r
-        * \r
-        * @return lock or <tt>null</tt>\r
-        */\r
-       public Lock getReadLock() {\r
-               return params.readLock;\r
-       }\r
-       \r
-       /**\r
-        * Get lock if available. \r
-        * \r
-        * @return lock or <tt>null</tt>\r
-        */\r
-       public Lock getWriteLock() {\r
-               return params.writeLock;\r
-       }\r
+       }
+       
+       /**
+        * Get lock if available. 
+        * 
+        * @return lock or <tt>null</tt>
+        */
+       public Lock getReadLock() {
+               return params.readLock;
+       }
+       
+       /**
+        * Get lock if available. 
+        * 
+        * @return lock or <tt>null</tt>
+        */
+       public Lock getWriteLock() {
+               return params.writeLock;
+       }
        
-\r
-       /**\r
-        * Lock the lock if there is a lock.\r
-        */\r
-       protected void readLock() {\r
-               if (params.readLock!=null) params.readLock.lock();\r
-       }\r
-       \r
-       /**\r
-        * Unlock the lock if one exists\r
-        */\r
-       protected void readUnlock() {\r
-               if (params.readLock!=null) params.readLock.unlock();\r
-       }\r
-\r
-       /**\r
-        * Lock the lock if there is a lock.\r
-        */\r
-       protected void writeLock() {\r
-               if (params.writeLock!=null) params.writeLock.lock();\r
-       }\r
-       \r
-       /**\r
-        * Unlock the lock if one exists\r
-        */\r
-       protected void writeUnlock() {\r
-               if (params.writeLock!=null) params.writeLock.unlock();\r
-       }\r
+
+       /**
+        * Lock the lock if there is a lock.
+        */
+       protected void readLock() {
+               if (params.readLock!=null) params.readLock.lock();
+       }
+       
+       /**
+        * Unlock the lock if one exists
+        */
+       protected void readUnlock() {
+               if (params.readLock!=null) params.readLock.unlock();
+       }
+
+       /**
+        * Lock the lock if there is a lock.
+        */
+       protected void writeLock() {
+               if (params.writeLock!=null) params.writeLock.lock();
+       }
+       
+       /**
+        * Unlock the lock if one exists
+        */
+       protected void writeUnlock() {
+               if (params.writeLock!=null) params.writeLock.unlock();
+       }
        
        @Override
-       public Object getValue(Binding binding) throws AccessorException {\r
+       public Object getValue(Binding binding) throws AccessorException {
                readLock();
-               try {\r
-//                     return params.adapterScheme.getAdapter(this.binding, binding, true, true).adapt(object);\r
-                       if (binding == this.binding) {\r
-                               return binding.isImmutable() ? object : binding.clone(object);\r
-                       }\r
+               try {
+//                     return params.adapterScheme.getAdapter(this.binding, binding, true, true).adapt(object);
+                       if (binding == this.binding) {
+                               return binding.isImmutable() ? object : binding.clone(object);
+                       }
                        return adapt(object, this.binding, binding);    
                } catch (AdaptException e) {
                        throw new AccessorException(e);
-               } catch (AdapterConstructionException e) {\r
-                       throw new AccessorException(e);\r
-               } finally {\r
-                       readUnlock();\r
+               } catch (AdapterConstructionException e) {
+                       throw new AccessorException(e);
+               } finally {
+                       readUnlock();
+               }
+       }
+       
+       
+       @Override
+       public void getValue(Binding binding, Object obj) throws AccessorException {
+               readLock();
+               try {
+                       this.binding.readFrom(this.binding, object, obj);
+               } catch (BindingException e) {
+                       throw new AccessorException(e);
+               } finally {
+                       readLock();
+               }
+       }
+       
+       @Override
+       public boolean getValue(ChildReference path, Binding binding, Object obj) throws AccessorException {
+               try {
+                       Accessor a = getComponent(path);
+                       a.getValue(binding, obj);
+                       return true;
+               } catch (ReferenceException re) {
+                       return false;
+               } catch (AccessorConstructionException e) {
+                       throw new AccessorException(e);
+               }
+       }       
+       
+       public Object getValue(ChildReference path, Binding binding) throws AccessorException {
+               try {
+                       Accessor a = getComponent(path);
+                       return a.getValue(binding);
+               } catch (ReferenceException re) {
+                       return null;
+               } catch (AccessorConstructionException e) {
+                       throw new AccessorException(e);
+               }
+       }
+       
+       public boolean setValue(ChildReference path, Binding binding, Object obj) throws AccessorException {
+               try {
+                       Accessor a = getComponent(path);
+                       a.setValue(binding, obj);
+                       return true;
+               } catch (ReferenceException re) {
+                       return false;
+               } catch (AccessorConstructionException e) {
+                       throw new AccessorException(e);
                }
-       }\r
-       \r
-       \r
-       @Override\r
-       public void getValue(Binding binding, Object obj) throws AccessorException {\r
-               readLock();\r
-               try {\r
-                       this.binding.readFrom(this.binding, object, obj);\r
-               } catch (BindingException e) {\r
-                       throw new AccessorException(e);\r
-               } finally {\r
-                       readLock();\r
-               }\r
-       }\r
-       \r
-       @Override\r
-       public boolean getValue(ChildReference path, Binding binding, Object obj) throws AccessorException {\r
-               try {\r
-                       Accessor a = getComponent(path);\r
-                       a.getValue(binding, obj);\r
-                       return true;\r
-               } catch (ReferenceException re) {\r
-                       return false;\r
-               } catch (AccessorConstructionException e) {\r
-                       throw new AccessorException(e);\r
-               }\r
-       }       \r
-       \r
-       public Object getValue(ChildReference path, Binding binding) throws AccessorException {\r
-               try {\r
-                       Accessor a = getComponent(path);\r
-                       return a.getValue(binding);\r
-               } catch (ReferenceException re) {\r
-                       return null;\r
-               } catch (AccessorConstructionException e) {\r
-                       throw new AccessorException(e);\r
-               }\r
-       }\r
-       \r
-       public boolean setValue(ChildReference path, Binding binding, Object obj) throws AccessorException {\r
-               try {\r
-                       Accessor a = getComponent(path);\r
-                       a.setValue(binding, obj);\r
-                       return true;\r
-               } catch (ReferenceException re) {\r
-                       return false;\r
-               } catch (AccessorConstructionException e) {\r
-                       throw new AccessorException(e);\r
-               }\r
-       }\r
-       \r
-       Object adapt(Object value, Binding domain, Binding range) throws AdaptException, AdapterConstructionException {\r
-               return params.adapterScheme.getAdapter(domain, range, true, false).adapt(value);\r
+       }
+       
+       Object adapt(Object value, Binding domain, Binding range) throws AdaptException, AdapterConstructionException {
+               return params.adapterScheme.getAdapter(domain, range, true, false).adapt(value);
        }       
        
        @Override
@@ -270,11 +270,11 @@ public abstract class JavaObject implements Accessor, ParametrisedAccessor {
        public void removeListener(Listener listener) throws AccessorException {
                detachListener(listener);
        }
-               \r
-       public static JavaObject createAccessor(Accessor parent, Binding b, Object v, AccessorParams params) throws AccessorConstructionException {\r
-               return createSubAccessor(parent, b, v, params);\r
-       }\r
-       \r
+               
+       public static JavaObject createAccessor(Accessor parent, Binding b, Object v, AccessorParams params) throws AccessorConstructionException {
+               return createSubAccessor(parent, b, v, params);
+       }
+       
        public static JavaObject createSubAccessor(Accessor parent, Binding b, Object v, AccessorParams params) 
        throws AccessorConstructionException {
                if (b instanceof BooleanBinding) {
@@ -292,8 +292,8 @@ public abstract class JavaObject implements Accessor, ParametrisedAccessor {
                if (b instanceof FloatBinding) {
                        return new JavaFloat(parent, (FloatBinding)b, v, params);
                }
-               if (b instanceof DoubleBinding) {\r
-                       return new JavaDouble(parent, (DoubleBinding)b, v, params);\r
+               if (b instanceof DoubleBinding) {
+                       return new JavaDouble(parent, (DoubleBinding)b, v, params);
                }
                if (b instanceof StringBinding) {
                        return new JavaString(parent, (StringBinding)b, v, params);
@@ -336,7 +336,7 @@ public abstract class JavaObject implements Accessor, ParametrisedAccessor {
 
        /**
         * Apply a change set that has events for the particular accessor. 
-        * There are no sub-accessor in the path of the event.\r
+        * There are no sub-accessor in the path of the event.
         * This is called within lock.
         * 
         * @param cs
@@ -347,7 +347,7 @@ public abstract class JavaObject implements Accessor, ParametrisedAccessor {
        abstract Event applyLocal(Event e, boolean makeRollback) throws AccessorException;
        
        @Override
-       public void apply(List<Event> cs, LinkedList<Event> rollback) throws AccessorException {\r
+       public void apply(List<Event> cs, LinkedList<Event> rollback) throws AccessorException {
                writeLock();
                try {
                        boolean makeRollback = rollback != null;
@@ -363,8 +363,8 @@ public abstract class JavaObject implements Accessor, ParametrisedAccessor {
                        }
                } catch (AccessorConstructionException ae) {
                        throw new AccessorException(ae);
-               } finally {\r
-                       writeUnlock();\r
+               } finally {
+                       writeUnlock();
                }               
        }
        
@@ -377,35 +377,35 @@ public abstract class JavaObject implements Accessor, ParametrisedAccessor {
                } catch (BindingException e) {
                        return "Java(error="+e.getMessage()+")";
                }
-       }\r
-       \r
-       /**\r
-        * The Java Object was changed by means other than Accessor.\r
-        * ValueAssigned event is emited to listeners.   \r
-        */\r
-       public void notifyValueChanged() {\r
-               // Notify\r
-               ListenerEntry le = listeners;\r
-               while (le!=null) {\r
-                       ByteInterestSet is = le.getInterestSet();\r
-                       if (is.inNotifications()) {\r
-                               Event e = new ValueAssigned( binding, object );\r
-                               emitEvent(le, e);\r
-                       }\r
-                       le = le.next;\r
-               }               \r
-       }       \r
-\r
-       protected void emitEvent(ListenerEntry le, Event e) {           \r
-               e.reference = ChildReference.concatenate(le.path, e.reference);\r
-               le.emitEvent(e);\r
-       }       \r
-\r
-       protected void emitEvents(ListenerEntry le, Collection<Event> events) {\r
-               for (Event e : events)\r
-                       e.reference = ChildReference.concatenate(le.path, e.reference);\r
-               le.emitEvents(events);\r
-       }       \r
+       }
+       
+       /**
+        * The Java Object was changed by means other than Accessor.
+        * ValueAssigned event is emited to listeners.   
+        */
+       public void notifyValueChanged() {
+               // Notify
+               ListenerEntry le = listeners;
+               while (le!=null) {
+                       ByteInterestSet is = le.getInterestSet();
+                       if (is.inNotifications()) {
+                               Event e = new ValueAssigned( binding, object );
+                               emitEvent(le, e);
+                       }
+                       le = le.next;
+               }               
+       }       
+
+       protected void emitEvent(ListenerEntry le, Event e) {           
+               e.reference = ChildReference.concatenate(le.path, e.reference);
+               le.emitEvent(e);
+       }       
+
+       protected void emitEvents(ListenerEntry le, Collection<Event> events) {
+               for (Event e : events)
+                       e.reference = ChildReference.concatenate(le.path, e.reference);
+               le.emitEvents(events);
+       }       
        
 }