- Timestamp:
- 07/12/13 23:41:06 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
java/main/src/main/java/com/framsticks/core/AbstractTree.java
r99 r100 1 1 package com.framsticks.core; 2 2 3 import java.util.Map; 4 3 5 import javax.annotation.Nonnull; 4 6 5 import org.apache.log4j.Logger; 6 7 import com.framsticks.params.AccessInterface; 7 import org.apache.commons.collections.map.ReferenceIdentityMap; 8 import org.apache.logging.log4j.Logger; 9 import org.apache.logging.log4j.LogManager; 10 11 import com.framsticks.params.Access; 8 12 import com.framsticks.params.CompositeParam; 9 13 import com.framsticks.params.FramsClass; … … 14 18 import com.framsticks.params.annotations.ParamAnnotation; 15 19 import com.framsticks.util.FramsticksException; 20 import com.framsticks.util.Misc; 16 21 import com.framsticks.util.dispatching.AbstractJoinable; 17 22 import com.framsticks.util.dispatching.Dispatcher; … … 25 30 import com.framsticks.util.dispatching.Thread; 26 31 import com.framsticks.util.dispatching.ThrowExceptionHandler; 32 import com.framsticks.util.lang.Casting; 27 33 28 34 /** … … 32 38 public abstract class AbstractTree extends AbstractJoinable implements Dispatcher<Tree>, Tree, JoinableParent { 33 39 34 private static final Logger log = Log ger.getLogger(AbstractTree.class);40 private static final Logger log = LogManager.getLogger(AbstractTree.class); 35 41 36 42 private Node root = null; … … 45 51 } 46 52 root = new Node(this, param, null); 47 log.debug("assigned root type: " +root);53 log.debug("assigned root type: {}", root); 48 54 } 49 55 … … 57 63 } 58 64 root = new Node(this, root.getParam(), object); 59 log.debug("assigned root object: " +root);65 log.debug("assigned root object: {}", root); 60 66 } 61 67 … … 93 99 94 100 @Override 95 public @Nonnull Access InterfaceprepareAccess(CompositeParam param) {101 public @Nonnull Access prepareAccess(CompositeParam param) { 96 102 return registry.prepareAccess(param); 97 103 } … … 104 110 @AutoAppendAnnotation 105 111 public void usePackage(ParamsPackage paramsPackage) { 106 log.debug("using package " + paramsPackage + " in tree " +this);112 log.debug("using package {} in tree {}", paramsPackage, this); 107 113 paramsPackage.register(registry); 108 114 } … … 110 116 @AutoAppendAnnotation 111 117 public void takeFromRegistry(Registry registry) { 112 log.debug("taking from registry " + registry + " in tree " +this);118 log.debug("taking from registry {} in tree {}", registry, this); 113 119 this.registry.takeAllFrom(registry); 114 120 } … … 231 237 } 232 238 239 240 @SuppressWarnings("unchecked") 241 protected final Map<Object, Object> sideNotes = (Map<Object, Object>) new ReferenceIdentityMap(ReferenceIdentityMap.WEAK, ReferenceIdentityMap.HARD); 242 243 @Override 244 public void putSideNote(Object object, Object key, Object value) { 245 assert isActive(); 246 Misc.throwIfNull(object); 247 Misc.throwIfNull(key); 248 Misc.throwIfNull(value); 249 Object sideNote = sideNotes.get(object); 250 if (sideNote == null) { 251 sideNote = new ReferenceIdentityMap(ReferenceIdentityMap.WEAK, ReferenceIdentityMap.HARD); 252 sideNotes.put(object, sideNote); 253 } 254 @SuppressWarnings("unchecked") 255 Map<Object, Object> sideNotesMap = (Map<Object, Object>) sideNote; 256 sideNotesMap.put(key, value); 257 } 258 259 @Override 260 public <T> T getSideNote(Object object, Object key, Class<T> valueType) { 261 assert isActive(); 262 Misc.throwIfNull(object); 263 Misc.throwIfNull(key); 264 Object sideNote = sideNotes.get(object); 265 if (sideNote == null) { 266 return null; 267 } 268 return Casting.nullOrThrowCast(valueType, ((Map<?, ?>) sideNote).get(key)); 269 } 270 271 @Override 272 public boolean removeSideNote(Object object, Object key) { 273 Object sideNote = sideNotes.get(object); 274 if (sideNote == null) { 275 return false; 276 } 277 @SuppressWarnings("unchecked") 278 Map<Object, Object> sideNotesMap = (Map<Object, Object>) sideNote; 279 boolean result = (sideNotesMap.remove(key) != null); 280 if (sideNotesMap.isEmpty()) { 281 sideNotes.remove(object); 282 } 283 return result; 284 } 285 233 286 } 234 287
Note: See TracChangeset
for help on using the changeset viewer.