]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.graph/src/org/simantics/graph/representation/TransferableGraph1.java
Initial version of SCL tab contributions
[simantics/platform.git] / bundles / org.simantics.graph / src / org / simantics / graph / representation / TransferableGraph1.java
1 /*******************************************************************************\r
2  * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
3  * in 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.graph.representation;\r
13 \r
14 import java.util.TreeMap;\r
15 \r
16 import org.simantics.databoard.Bindings;\r
17 import org.simantics.databoard.binding.Binding;\r
18 import org.simantics.databoard.binding.mutable.Variant;\r
19 import org.simantics.databoard.serialization.Serializer;\r
20 \r
21 \r
22 /**\r
23  * Transferable graph datatype. \r
24  * See <a href="http://dev.simantics.org/index.php/Transferable_Graph">specification</a>. \r
25  * @author Hannu Niemist&ouml;\r
26  */\r
27 public class TransferableGraph1 {\r
28         public static Binding BINDING = Bindings.getBindingUnchecked(TransferableGraph1.class);\r
29         public static Serializer SERIALIZER = Bindings.getSerializerUnchecked(BINDING);\r
30         \r
31         public int resourceCount;\r
32         public TreeMap<String, Variant> extensions;\r
33         public Identity[] identities;   \r
34         public int[] statements;\r
35         public Value[] values;  \r
36         \r
37         public TransferableGraph1() {     \r
38     }\r
39         \r
40         public TransferableGraph1(int resourceCount, Identity[] identities,\r
41                         int[] statements, Value[] values) {\r
42                 this(resourceCount, identities, statements, values,\r
43                                 new TreeMap<String, Variant>());\r
44         }\r
45         \r
46         public TransferableGraph1(int resourceCount, Identity[] identities,\r
47                         int[] statements, Value[] values, TreeMap<String, Variant> extensions) {\r
48                 this.resourceCount = resourceCount;\r
49                 this.identities = identities;\r
50                 this.statements = statements;\r
51                 this.values = values;\r
52                 this.extensions = extensions;\r
53         }\r
54 \r
55         public void print() {\r
56                 System.out.println("Identities");\r
57                 for(Identity id : identities) {\r
58                         System.out.print("    " + id.resource + " = ");\r
59                         if(id.definition instanceof Root) {\r
60                                 Root def = (Root)id.definition;\r
61                                 System.out.println("ROOT(" + def.name + ")");\r
62                         }\r
63                         else if(id.definition instanceof External) {\r
64                                 External def = (External)id.definition;\r
65                                 System.out.println("EXTERNAL(" + def.parent + ", " + def.name + ")");\r
66                         }\r
67                         else if(id.definition instanceof Internal) {\r
68                                 Internal def = (Internal)id.definition;\r
69                                 System.out.println("INTERNAL(" + def.parent + ", " + def.name + ")");\r
70                         }\r
71                 }\r
72                 System.out.println("Statements:");\r
73                 for(int i=0;i<statements.length;i+=4)\r
74                         System.out.println("    " + \r
75                                         statements[i] + " " +\r
76                                         statements[i+1] + " " +\r
77                                         statements[i+2] + " " +\r
78                                         statements[i+3]\r
79                                         );\r
80         }\r
81 }\r