Changeset 826:51ec6332c94f
- Timestamp:
- 01/29/12 00:10:58 (4 months ago)
- Branch:
- default
- Location:
- kraken-confdb/src/main/java/org/krakenapps/confdb
- Files:
-
- 2 edited
-
ConfigChange.java (modified) (2 diffs)
-
file/ChangeLog.java (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
kraken-confdb/src/main/java/org/krakenapps/confdb/ConfigChange.java
r421 r826 16 16 package org.krakenapps.confdb; 17 17 18 import org.krakenapps.api.FieldOption; 19 18 20 /** 19 21 * changed config entry for changeset log … … 25 27 private CommitOp operation; 26 28 29 @FieldOption(skip = true) 27 30 private String colName; 28 31 -
kraken-confdb/src/main/java/org/krakenapps/confdb/file/ChangeLog.java
r504 r826 19 19 import java.util.ArrayList; 20 20 import java.util.Arrays; 21 import java.util.Collection; 21 22 import java.util.Date; 22 23 import java.util.HashMap; … … 110 111 m.put("msg", message); 111 112 m.put("manifest_id", manifestId); 113 m.put("col_names", serializeCollectionNames()); 112 114 m.put("changeset", PrimitiveConverter.serialize(changeset)); 113 115 … … 117 119 } 118 120 121 private List<Object> serializeCollectionNames() { 122 Map<String, Integer> m = new HashMap<String, Integer>(); 123 for (ConfigChange c : changeset) 124 m.put(c.getColName(), c.getColId()); 125 126 List<Object> cols = new ArrayList<Object>(); 127 for (String name : m.keySet()) { 128 cols.add(new Object[] { m.get(name), name }); 129 } 130 return cols; 131 } 132 133 private static Map<Integer, String> parseCollectionNames(Object[] l) { 134 Map<Integer, String> m = new HashMap<Integer, String>(); 135 if (l == null) 136 return m; 137 138 for (Object o : l) { 139 Object[] arr = (Object[]) o; 140 m.put((Integer) arr[0], (String) arr[1]); 141 } 142 return m; 143 } 144 119 145 public static ChangeLog deserialize(byte[] b) { 120 146 ByteBuffer bb = ByteBuffer.wrap(b); 121 147 Map<String, Object> m = EncodingRule.decodeMap(bb); 148 149 Map<Integer, String> colNames = parseCollectionNames((Object[]) m.get("col_names")); 122 150 123 151 ChangeLog c = new ChangeLog(); … … 127 155 c.setManifestId((Integer) m.get("manifest_id")); 128 156 List<Object> list = Arrays.asList((Object[]) m.get("changeset")); 129 c.setChangeSet( new ArrayList<ConfigChange>(PrimitiveConverter.parseCollection(ConfigChange.class, list)));157 c.setChangeSet(parseConfigChanges(list, colNames)); 130 158 return c; 159 } 160 161 private static List<ConfigChange> parseConfigChanges(List<Object> list, Map<Integer, String> colNames) { 162 Collection<ConfigChange> changes = PrimitiveConverter.parseCollection(ConfigChange.class, list); 163 List<ConfigChange> l = new ArrayList<ConfigChange>(changes); 164 for (ConfigChange c : l) 165 c.setColName(colNames.get(c.getColId())); 166 return l; 131 167 } 132 168
Note: See TracChangeset
for help on using the changeset viewer.
