1 package org.simantics.db.common;
\r
3 import java.util.ArrayList;
\r
4 import java.util.Iterator;
\r
5 import java.util.TreeMap;
\r
7 import org.simantics.db.Metadata;
\r
8 import org.simantics.db.Session;
\r
9 import org.simantics.db.common.utils.Logger;
\r
10 import org.simantics.db.common.utils.Serializers;
\r
12 public abstract class ACommentMetadata implements Metadata {
\r
13 final boolean DEBUG = true;
\r
14 protected ArrayList<String> comments = new ArrayList<String>();
\r
15 public ACommentMetadata(TreeMap<String, byte[]> metadata) {
\r
16 if (null != metadata) {
\r
17 byte[] data = metadata.get(ACommentMetadata.class.getName());
\r
22 public ACommentMetadata(byte[] data) {
\r
26 private void initialize(byte[] data) {
\r
29 String[] strings = Serializers.deserializeStrings(data);
\r
30 for (String s : strings)
\r
32 } catch (Exception e) {
\r
33 Logger.defaultLogError(e);
\r
38 public ACommentMetadata add(String string) {
\r
39 comments.add(string);
\r
44 return comments.size();
\r
47 public ACommentMetadata add(ACommentMetadata cm) {
\r
50 comments.addAll(cm.comments);
\r
55 public String toString() {
\r
57 int size = comments.size();
\r
58 Iterator<String> it = comments.iterator();
\r
59 for (int i=0; i<size; ++i)
\r
60 t += it.next() + "\n";
\r
65 public byte[] serialise(Session session) {
\r
67 return Serializers.serializeStrings(comments.toArray(new String[comments.size()]));
\r
68 } catch (Exception e) {
\r
70 e.printStackTrace();
\r
71 Logger.defaultLogError(e.toString());
\r