1 package org.simantics.databoard.serialization.impl;
\r
3 import java.io.DataInput;
\r
4 import java.io.DataOutput;
\r
5 import java.io.IOException;
\r
7 import org.simantics.databoard.binding.BooleanBinding;
\r
8 import org.simantics.databoard.binding.error.BindingException;
\r
9 import org.simantics.databoard.serialization.Serializer.NonRecursiveSerializer;
\r
11 public class BooleanSerializer extends NonRecursiveSerializer {
\r
13 BooleanBinding binding;
\r
15 public BooleanSerializer(BooleanBinding binding) {
\r
16 this.binding = binding;
\r
20 public Object deserialize(DataInput in) throws IOException {
\r
22 boolean value = in.readByte() != 0;
\r
23 return binding.create(value);
\r
24 } catch (BindingException e) {
\r
25 throw new IOException( e );
\r
30 public void deserializeTo(DataInput in, Object obj) throws IOException {
\r
32 boolean newValue = in.readByte() != 0;
\r
33 binding.setValue(obj, newValue);
\r
34 } catch (BindingException e) {
\r
35 throw new IOException( e );
\r
40 public void skip(DataInput in)
\r
41 throws IOException {
\r
46 public void serialize(DataOutput out, Object obj) throws IOException {
\r
48 boolean value = binding.getValue_(obj);
\r
49 out.write( (byte) (value ? 1 : 0) );
\r
50 } catch (BindingException e) {
\r
51 throw new IOException( e );
\r
56 public Integer getConstantSize() {
\r
61 public int getSize(Object obj) {
\r
66 public int getMinSize() {
\r
70 public boolean getBoolean(DataInput in) throws IOException
\r
72 return in.readByte() != 0;
\r
75 public void putBoolean(DataOutput out, boolean x) throws IOException
\r
77 out.writeBoolean(x);
\r