]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.mapping/src/org/simantics/mapping/constraint/instructions/PrintStateInstruction.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.mapping / src / org / simantics / mapping / constraint / instructions / PrintStateInstruction.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.mapping.constraint.instructions;\r
13 \r
14 import gnu.trove.map.hash.TIntIntHashMap;\r
15 import gnu.trove.set.hash.TIntHashSet;\r
16 \r
17 import org.simantics.db.ReadGraph;\r
18 import org.simantics.db.WriteGraph;\r
19 import org.simantics.mapping.IContextualModification;\r
20 \r
21 public class PrintStateInstruction implements IInstruction {\r
22         String position;\r
23 \r
24         public PrintStateInstruction(String position) {\r
25                 this.position = position;\r
26         }\r
27         \r
28         private void print(ReadGraph g, Object[] bindings) {\r
29                 System.out.print(position + ": ");\r
30                 boolean first = true;\r
31                 for(Object obj : bindings) {\r
32                         if(first)\r
33                                 first = false;\r
34                         else\r
35                                 System.out.print(", ");\r
36                         System.out.print(obj);\r
37                 }\r
38                 System.out.println();\r
39         }\r
40         \r
41         @Override\r
42         public Object query(ReadGraph g, Object[] bindings) {\r
43                 print(g, bindings);\r
44                 return null;\r
45         }\r
46         \r
47         @Override\r
48         public Object next(ReadGraph g, Object[] bindings, Object continuation) {               \r
49                 return IInstruction.FAILURE;\r
50         }       \r
51 \r
52         @Override\r
53         public IContextualModification claim(ReadGraph g, Object[] bindings) {\r
54                 print(g, bindings);\r
55                 return null;\r
56         }\r
57 \r
58         @Override\r
59         public IContextualModification deny(ReadGraph g, Object[] bindings) {\r
60                 print(g, bindings);\r
61                 return null;\r
62         }\r
63 \r
64         @Override\r
65         public void doClaim(WriteGraph g, Object[] bindings) {\r
66                 print(g, bindings);\r
67         }\r
68 \r
69         @Override\r
70         public void doDeny(WriteGraph g, Object[] bindings) {\r
71                 print(g, bindings);\r
72         }\r
73 \r
74         @Override\r
75         public void collectVariables(TIntHashSet reads, TIntHashSet writes) {\r
76                 /* Because this instruction is for debugging, it doesn't affect\r
77                    to the set of read variables. */\r
78         }\r
79 \r
80         @Override\r
81         public void mapVariables(TIntIntHashMap map) {\r
82         }       \r
83         \r
84         @Override\r
85         public void toString(StringBuilder b, int indent) {\r
86                 \r
87         }\r
88         \r
89 }\r