package org.simantics.databoard.tests; import java.awt.geom.Rectangle2D; import java.io.File; import org.simantics.databoard.Accessors; import org.simantics.databoard.Bindings; import org.simantics.databoard.Datatypes; import org.simantics.databoard.accessor.RecordAccessor; import org.simantics.databoard.accessor.file.FileRecordAccessor; import org.simantics.databoard.accessor.file.FileVariantAccessor; import org.simantics.databoard.binding.Binding; import org.simantics.databoard.serialization.Serializer; import org.simantics.databoard.type.Datatype; import org.simantics.databoard.type.RecordType; public class Jotakin12 { static class ClassNoArgConstructor { private ClassNoArgConstructor() {} } public static void main(String[] args) throws Exception { File file = File.createTempFile("tmp", ".dbb"); { RecordType type = Datatypes.getDatatype( Rectangle2D.Double.class ); FileRecordAccessor fa = Accessors.createFile( file, type ); fa.setFieldValue(0, Bindings.DOUBLE, 5.0); fa.close(); } { FileVariantAccessor fa = Accessors.openAccessor(file); RecordAccessor ra = fa.getContentAccessor(); Double x = (Double) ra.getFieldValue(0, Bindings.DOUBLE); fa.close(); System.out.println(x); } { Binding binding = Bindings.getBinding(Rectangle2D.Double.class); Rectangle2D rect = new Rectangle2D.Double(0,0, 10, 10); RecordAccessor ra = Accessors.getAccessor(binding, rect); ra.setFieldValue(0, Bindings.DOUBLE, 5.0); System.out.println( rect.getX() ); } { Datatype type = Datatypes.getDatatype( Rectangle2D.Double.class ); Binding binding = Bindings.getBinding( Rectangle2D.Double.class ); Serializer s = Bindings.getSerializer(binding); Rectangle2D rect = new Rectangle2D.Double(0,0, 10, 10); byte[] data = s.serialize(rect); // Open accessor to byte data RecordAccessor ra = Accessors.getAccessor(data, type); ra.setFieldValue(0, Bindings.DOUBLE, 5.0); s.deserialize(data, rect); System.out.println(rect.getX()); } } }