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