1 package org.simantics.db.common;
\r
3 import java.io.IOException;
\r
4 import java.util.ArrayList;
\r
5 import java.util.List;
\r
7 import org.simantics.databoard.Bindings;
\r
8 import org.simantics.databoard.binding.Binding;
\r
9 import org.simantics.databoard.serialization.SerializationException;
\r
10 import org.simantics.databoard.serialization.Serializer;
\r
11 import org.simantics.db.Metadata;
\r
12 import org.simantics.db.Session;
\r
13 import org.simantics.db.WriteGraph;
\r
14 import org.simantics.db.exception.DatabaseException;
\r
16 public class CommandMetadata implements Metadata {
\r
18 public static final boolean DEBUG = false;
\r
19 public static final String RESET_COMMAND = "// RESET";
\r
21 private static final Binding BINDING =
\r
22 Bindings.getBindingUnchecked(CommandMetadata.class);
\r
23 private static final Serializer SERIALIZER =
\r
24 Bindings.getSerializerUnchecked(BINDING);
\r
26 public List<Command> commands;
\r
28 public static class Command {
\r
29 public long modelId;
\r
30 public String command;
\r
35 public Command(long modelId, String command) {
\r
37 this.modelId = modelId;
\r
38 this.command = command;
\r
42 public CommandMetadata() {
\r
46 public byte[] serialise(Session session) {
\r
48 return SERIALIZER.serialize(this);
\r
49 } catch (IOException e) {
\r
50 e.printStackTrace();
\r
51 throw new RuntimeException(e);
\r
55 public static CommandMetadata deserialise(Session session, byte[] input) {
\r
57 CommandMetadata metadata = new CommandMetadata();
\r
58 metadata.commands = new ArrayList<Command>();
\r
62 return (CommandMetadata)SERIALIZER.deserialize(input);
\r
63 } catch (SerializationException e) {
\r
64 e.printStackTrace();
\r
65 } catch (IOException e) {
\r
66 e.printStackTrace();
\r
71 public CommandMetadata add(Command command) {
\r
72 commands.add(command);
\r
76 public List<Command> getCommands() {
\r
80 public static void add(WriteGraph graph, long modelId, String command) throws DatabaseException {
\r
82 System.out.println("-------------------------------------------------------------");
\r
83 System.out.println(command);
\r
85 graph.addMetadata(graph.getMetadata(CommandMetadata.class).add(
\r
86 new Command(modelId, command)));
\r
89 public static void addReset(WriteGraph graph, long modelId) throws DatabaseException {
\r
90 graph.addMetadata(graph.getMetadata(CommandMetadata.class).add(
\r
91 new Command(modelId, RESET_COMMAND)));
\r