--- /dev/null
+package org.simantics.structural.synchronization.utils;\r
+\r
+import java.util.Collection;\r
+\r
+import org.simantics.structural.synchronization.protocol.ChildInfo;\r
+import org.simantics.structural.synchronization.protocol.Connection;\r
+import org.simantics.structural.synchronization.protocol.SerializedVariable;\r
+import org.simantics.structural.synchronization.protocol.SynchronizationEventHandler;\r
+import org.simantics.structural.synchronization.protocol.SynchronizationException;\r
+\r
+public class DiagnosticSynchronizationEventHandler implements SynchronizationEventHandler {\r
+\r
+ int indentation;\r
+\r
+ @Override\r
+ public void beginSynchronization() {\r
+ }\r
+\r
+ @Override\r
+ public void endSynchronization() {\r
+ }\r
+\r
+ @Override\r
+ public void beginComponent(String name, String typeId,\r
+ Collection<SerializedVariable> properties,\r
+ Collection<Connection> connections, Collection<ChildInfo> children)\r
+ throws SynchronizationException {\r
+ for(int i=0;i<indentation;++i)\r
+ System.out.print(" ");\r
+ System.out.print(name);\r
+ if(typeId != null)\r
+ System.out.print(" :: " + typeId);\r
+ System.out.println();\r
+ for(SerializedVariable var : properties) {\r
+ for(int i=0;i<=indentation;++i)\r
+ System.out.print(" ");\r
+ System.out.println(SerializedVariable.print(var, indentation*2+2));\r
+ }\r
+ for(Connection connection : connections) {\r
+ for(int i=0;i<=indentation;++i)\r
+ System.out.print(" ");\r
+ System.out.println(connection);\r
+ }\r
+ if(!children.isEmpty()) {\r
+ for(int i=0;i<=indentation;++i)\r
+ System.out.print(" ");\r
+ System.out.print("Children ");\r
+ if(children != null)\r
+ System.out.println(children);\r
+ }\r
+ ++indentation;\r
+ }\r
+\r
+ @Override\r
+ public void endComponent() {\r
+ --indentation;\r
+ }\r
+\r
+ @Override\r
+ public void beginType(String id, Collection<SerializedVariable> properties) {\r
+ System.out.println("--- Type " + id + " --------------------------------");\r
+ for(SerializedVariable var : properties)\r
+ System.out.println(SerializedVariable.print(var, 2));\r
+ }\r
+\r
+ @Override\r
+ public void endType() {\r
+ System.out.println("----------------------------------------------------");\r
+ }\r
+\r
+ @Override\r
+ public void reportProblem(String description) {\r
+ System.err.println(description);\r
+ }\r
+\r
+ @Override\r
+ public void reportProblem(String description, Exception e) {\r
+ System.err.println(description);\r
+ e.printStackTrace();\r
+ }\r
+\r
+}\r