]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.modeling/src/org/simantics/modeling/typicals/TypicalSynchronizationMetadata.java
Merge "InputStream returns -1 on EOF instead of throwing IOException"
[simantics/platform.git] / bundles / org.simantics.modeling / src / org / simantics / modeling / typicals / TypicalSynchronizationMetadata.java
1 /*******************************************************************************\r
2  * Copyright (c) 2007, 2012 Association for Decentralized Information Management in\r
3  * Industry THTH ry.\r
4  * All rights reserved. This program and the accompanying materials\r
5  * are made available under the terms of the Eclipse Public License v1.0\r
6  * which accompanies this distribution, and is available at\r
7  * http://www.eclipse.org/legal/epl-v10.html\r
8  *\r
9  * Contributors:\r
10  *     VTT Technical Research Centre of Finland - initial API and implementation\r
11  *******************************************************************************/\r
12 package org.simantics.modeling.typicals;\r
13 \r
14 import java.io.IOException;\r
15 import java.util.ArrayList;\r
16 import java.util.List;\r
17 \r
18 import org.simantics.databoard.Bindings;\r
19 import org.simantics.databoard.binding.Binding;\r
20 import org.simantics.databoard.serialization.SerializationException;\r
21 import org.simantics.databoard.serialization.Serializer;\r
22 import org.simantics.db.Metadata;\r
23 import org.simantics.db.Resource;\r
24 import org.simantics.db.Session;\r
25 \r
26 /**\r
27  * @author Tuukka Lehtonen\r
28  */\r
29 public class TypicalSynchronizationMetadata implements Metadata {\r
30 \r
31     private static final Binding BINDING = \r
32             Bindings.getBindingUnchecked(TypicalSynchronizationMetadata.class);\r
33     private static final Serializer SERIALIZER = \r
34             Bindings.getSerializerUnchecked(BINDING);\r
35 \r
36     public List<Resource> synchronizedTypicals;\r
37 \r
38     public TypicalSynchronizationMetadata() {\r
39     }\r
40 \r
41     @Override\r
42     public byte[] serialise(Session session) {\r
43         try {\r
44             return SERIALIZER.serialize(this);\r
45         } catch (IOException e) {\r
46             e.printStackTrace();\r
47             throw new RuntimeException(e);\r
48         }\r
49     }\r
50 \r
51     public static TypicalSynchronizationMetadata deserialise(Session session, byte[] input) {\r
52         if (input == null) {\r
53             TypicalSynchronizationMetadata metadata = new TypicalSynchronizationMetadata();\r
54             metadata.synchronizedTypicals = new ArrayList<Resource>();\r
55             return metadata;\r
56         }\r
57         try {\r
58             return (TypicalSynchronizationMetadata) SERIALIZER.deserialize(input);\r
59         } catch (SerializationException e) {\r
60             e.printStackTrace();\r
61         } catch (IOException e) {\r
62             e.printStackTrace();\r
63         }\r
64         return null;\r
65     }\r
66 \r
67     /**\r
68      * @param typicalInstance\r
69      * @return\r
70      */\r
71     public TypicalSynchronizationMetadata addTypical(Resource typicalInstance) {\r
72         synchronizedTypicals.add(typicalInstance);\r
73         return this;\r
74     }\r
75 \r
76     public List<Resource> getTypicals() {\r
77         return synchronizedTypicals;\r
78     }\r
79 \r
80 }\r