X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.databoard%2Fsrc%2Forg%2Fsimantics%2Fdataboard%2Faccessor%2Fbinary%2FBinaryObject.java;h=b9ff191b3bd1389bfd878c297da262a508bad6ad;hb=caad4b50af37ff3731a3e9a557dc697e9116de56;hp=149d9930ecd6850e13646bd7b612a69c4a3d5e5d;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.databoard/src/org/simantics/databoard/accessor/binary/BinaryObject.java b/bundles/org.simantics.databoard/src/org/simantics/databoard/accessor/binary/BinaryObject.java index 149d9930e..b9ff191b3 100644 --- a/bundles/org.simantics.databoard/src/org/simantics/databoard/accessor/binary/BinaryObject.java +++ b/bundles/org.simantics.databoard/src/org/simantics/databoard/accessor/binary/BinaryObject.java @@ -1,59 +1,59 @@ -/******************************************************************************* - * 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 - *******************************************************************************/ +/******************************************************************************* + * 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.binary; -import java.io.File; -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.CloseableAccessor; -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.file.FileAccessor; -import org.simantics.databoard.accessor.impl.AccessorParams; -import org.simantics.databoard.accessor.impl.ListenerEntry; -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.Binding; -import org.simantics.databoard.serialization.Serializer; -import org.simantics.databoard.serialization.SerializerConstructionException; -import org.simantics.databoard.type.ArrayType; -import org.simantics.databoard.type.BooleanType; -import org.simantics.databoard.type.ByteType; -import org.simantics.databoard.type.Datatype; -import org.simantics.databoard.type.DoubleType; -import org.simantics.databoard.type.FloatType; -import org.simantics.databoard.type.IntegerType; -import org.simantics.databoard.type.LongType; -import org.simantics.databoard.type.MapType; -import org.simantics.databoard.type.OptionalType; -import org.simantics.databoard.type.RecordType; -import org.simantics.databoard.type.StringType; -import org.simantics.databoard.type.UnionType; -import org.simantics.databoard.type.VariantType; -import org.simantics.databoard.util.binary.BinaryFile; -import org.simantics.databoard.util.binary.Blob; -import org.simantics.databoard.util.binary.RandomAccessBinary; +import java.io.File; +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.CloseableAccessor; +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.file.FileAccessor; +import org.simantics.databoard.accessor.impl.AccessorParams; +import org.simantics.databoard.accessor.impl.ListenerEntry; +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.Binding; +import org.simantics.databoard.serialization.Serializer; +import org.simantics.databoard.serialization.SerializerConstructionException; +import org.simantics.databoard.type.ArrayType; +import org.simantics.databoard.type.BooleanType; +import org.simantics.databoard.type.ByteType; +import org.simantics.databoard.type.Datatype; +import org.simantics.databoard.type.DoubleType; +import org.simantics.databoard.type.FloatType; +import org.simantics.databoard.type.IntegerType; +import org.simantics.databoard.type.LongType; +import org.simantics.databoard.type.MapType; +import org.simantics.databoard.type.OptionalType; +import org.simantics.databoard.type.RecordType; +import org.simantics.databoard.type.StringType; +import org.simantics.databoard.type.UnionType; +import org.simantics.databoard.type.VariantType; +import org.simantics.databoard.util.binary.BinaryFile; +import org.simantics.databoard.util.binary.Blob; +import org.simantics.databoard.util.binary.RandomAccessBinary; /** * BinaryObject is an accessor to a binary object, usually a random access file. @@ -61,23 +61,23 @@ import org.simantics.databoard.util.binary.RandomAccessBinary; *
* The file can be opened once. It may not be modified by any other instance other than * accessor while accessors are beign used. You must not create more than one - * instance of BinaryObjects for a file. - *
- * - * - * @see BinaryArray - * @see BinaryBoolean - * @see BinaryByte - * @see BinaryDouble - * @see BinaryFloat - * @see BinaryInteger - * @see BinaryLong - * @see BinaryMap - * @see BinaryOptional - * @see BinaryRecord - * @see BinaryString - * @see BinaryUnion - * @see BinaryVariant + * instance of BinaryObjects for a file. + *
+ *
+ *
+ * @see BinaryArray
+ * @see BinaryBoolean
+ * @see BinaryByte
+ * @see BinaryDouble
+ * @see BinaryFloat
+ * @see BinaryInteger
+ * @see BinaryLong
+ * @see BinaryMap
+ * @see BinaryOptional
+ * @see BinaryRecord
+ * @see BinaryString
+ * @see BinaryUnion
+ * @see BinaryVariant
* @author Toni Kalajainen null
*/
- public File file() {
+ public File file() {
return file;
}
public RandomAccessBinary getBinary() {
return b;
}
-
- @Override
- public AccessorParams getParams() {
- return params;
- }
+
+ @Override
+ public AccessorParams getParams() {
+ return params;
+ }
@Override
public void addListener(Listener listener, InterestSet interestSet, ChildReference path, Executor executor) throws AccessorException {
@@ -224,16 +224,16 @@ public abstract class BinaryObject implements Accessor, FileAccessor, CloseableA
*/
@Override
public void setValue(Binding binding, Object newValue)
- throws AccessorException {
- assert b.isOpen();
- writeLock();
+ throws AccessorException {
+ assert b.isOpen();
+ writeLock();
try {
setValueNoflush(binding, newValue);
b.flush();
} catch (IOException e) {
throw new AccessorException(e);
- } finally {
- writeUnlock();
+ } finally {
+ writeUnlock();
}
}
@@ -245,22 +245,22 @@ public abstract class BinaryObject implements Accessor, FileAccessor, CloseableA
* @throws AccessorException
*/
public abstract void setValueNoflush(Binding binding, Object newValue) throws AccessorException;
-
- 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);
- }
- }
+
+ 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);
+ }
+ }
@Override
- public Object getValue(Binding binding) throws AccessorException {
- assert b.isOpen();
+ public Object getValue(Binding binding) throws AccessorException {
+ assert b.isOpen();
readLock();
try {
Serializer s = params.serializerScheme.getSerializer( binding );
@@ -268,56 +268,56 @@ public abstract class BinaryObject implements Accessor, FileAccessor, CloseableA
return s.deserialize(b, null);
} catch (IOException e) {
throw new AccessorException(e);
- } catch (SerializerConstructionException e) {
- throw new AccessorException(e);
- } finally {
- readUnlock();
+ } catch (SerializerConstructionException e) {
+ throw new AccessorException(e);
+ } finally {
+ readUnlock();
+ }
+ }
+
+ public void getValue(Binding binding, Object obj) throws AccessorException {
+ assert b.isOpen();
+ readLock();
+ try {
+ Serializer s = params.serializerScheme.getSerializer( binding );
+ b.position(0L);
+ s.deserializeTo(b, null, obj);
+ } catch (IOException e) {
+ throw new AccessorException(e);
+ } catch (SerializerConstructionException e) {
+ throw new AccessorException(e);
+ } finally {
+ readUnlock();
+ }
+ }
+
+ @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 void getValue(Binding binding, Object obj) throws AccessorException {
- assert b.isOpen();
- readLock();
- try {
- Serializer s = params.serializerScheme.getSerializer( binding );
- b.position(0L);
- s.deserializeTo(b, null, obj);
- } catch (IOException e) {
- throw new AccessorException(e);
- } catch (SerializerConstructionException e) {
- throw new AccessorException(e);
- } finally {
- readUnlock();
- }
- }
-
- @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);
- }
- }
-
- Object adapt(Object value, Binding domain, Binding range) throws AdaptException, AdapterConstructionException {
- return params.adapterScheme.getAdapter(domain, range, true, false).adapt(value);
- }
+
+ Object adapt(Object value, Binding domain, Binding range) throws AdaptException, AdapterConstructionException {
+ return params.adapterScheme.getAdapter(domain, range, true, false).adapt(value);
+ }
/**
* Send notification that this accessor has been detached from the parent
@@ -347,8 +347,8 @@ public abstract class BinaryObject implements Accessor, FileAccessor, CloseableA
@Override
public void apply(List