/** * @return the instance key numbered with index i */ public InstanceKey getInstanceKey(int i) { return instanceKeys.getMappedObject(i); }
/** * @return the instance key numbered with index i */ public InstanceKey getInstanceKey(int i) { return instanceKeys.getMappedObject(i); }
@Override public T getNode(int number) { if (number < 0) { throw new IllegalArgumentException("number must be >= 0"); } T result = map.getMappedObject(number); return result; }
@Override public T getNode(int number) { if (number < 0) { throw new IllegalArgumentException("number must be >= 0"); } T result = map.getMappedObject(number); return result; }
@Override public T getNode(int number) { if (number < 0) { throw new IllegalArgumentException("number must be >= 0"); } T result = map.getMappedObject(number); return result; }
@Override public String toString() { StringBuilder result = new StringBuilder("Nodes:\n"); for (int i = 0; i <= getMaxNumber(); i++) { result.append(i).append(" "); result.append(map.getMappedObject(i)); result.append('\n'); } return result.toString(); }
@Override public String toString() { StringBuilder result = new StringBuilder("Nodes:\n"); for (int i = 0; i <= getMaxNumber(); i++) { result.append(i).append(" "); result.append(map.getMappedObject(i)); result.append('\n'); } return result.toString(); }
@Override public String toString() { StringBuilder result = new StringBuilder("Nodes:\n"); for (int i = 0; i <= getMaxNumber(); i++) { result.append(i).append(" "); result.append(map.getMappedObject(i)); result.append('\n'); } return result.toString(); }
/** * Utility method for mutable mapping. map[index] U= o */ protected static <T> void mapUsingMutableMapping(MutableMapping<List<T>> map, int index, T o){ List<T> set; if (index <= map.getMaximumIndex()){ set = map.getMappedObject(index); } else { set = null; } if (null == set){ set = new ArrayList<>(); map.put(index, set); } set.add(o); }
/** * Utility method for mutable mapping. map[index] U= o */ protected static <T> void mapUsingMutableMapping(MutableMapping<List<T>> map, int index, T o){ List<T> set; if (index <= map.getMaximumIndex()){ set = map.getMappedObject(index); } else { set = null; } if (null == set){ set = new ArrayList<>(); map.put(index, set); } set.add(o); }
/** * Used for filling the tree dynamically. Override and handle your own nodes / different links. */ protected List<Object> getChildrenFor(Object node) { List<Object> ret = new ArrayList<>(); if (node instanceof InstanceKey){ ret.addAll(getPointerKeysUnderInstanceKey((InstanceKey) node)); } else if (node instanceof PointerKey){ for (InstanceKey ik : pa.getPointsToSet((PointerKey) node)){ ret.add(ik); } } else if (node instanceof CGNode){ int nodeId = ((CGNode) node).getGraphNodeId(); ret.addAll(nonNullList(cgNodeIdToLocalPointers.getMappedObject(nodeId))); ret.addAll(nonNullList(cgNodeIdToReturnValue.getMappedObject(nodeId))); } else { assert false : "Unhandled Node : " + node; } return ret; }
/** * Used for filling the tree dynamically. Override and handle your own nodes / different links. */ protected List<Object> getChildrenFor(Object node) { List<Object> ret = new ArrayList<>(); if (node instanceof InstanceKey){ ret.addAll(getPointerKeysUnderInstanceKey((InstanceKey) node)); } else if (node instanceof PointerKey){ for (InstanceKey ik : pa.getPointsToSet((PointerKey) node)){ ret.add(ik); } } else if (node instanceof CGNode){ int nodeId = ((CGNode) node).getGraphNodeId(); ret.addAll(nonNullList(cgNodeIdToLocalPointers.getMappedObject(nodeId))); ret.addAll(nonNullList(cgNodeIdToReturnValue.getMappedObject(nodeId))); } else { assert false : "Unhandled Node : " + node; } return ret; }
@Override protected List<PointerKey> getPointerKeysUnderInstanceKey(InstanceKey ik) { List<PointerKey> ret = new ArrayList<>(super.getPointerKeysUnderInstanceKey(ik)); int ikIndex = pa.getInstanceKeyMapping().getMappedIndex(ik); ret.addAll(nonNullList(instanceKeyIdToObjectPropertyCatalogKey.getMappedObject(ikIndex))); return ret; }
@Override protected List<PointerKey> getPointerKeysUnderInstanceKey(InstanceKey ik) { List<PointerKey> ret = new ArrayList<>(super.getPointerKeysUnderInstanceKey(ik)); int ikIndex = pa.getInstanceKeyMapping().getMappedIndex(ik); ret.addAll(nonNullList(instanceKeyIdToObjectPropertyCatalogKey.getMappedObject(ikIndex))); return ret; }
/** * Get the set of pointer keys that should be presented below an instance key in the heap tree. Override if you have special * pointer keys (not just for fields) */ protected List<? extends PointerKey> getPointerKeysUnderInstanceKey(InstanceKey ik) { int ikIndex = pa.getInstanceKeyMapping().getMappedIndex(ik); List<? extends PointerKey> ret; if (ikIndex <= instanceKeyIdToInstanceFieldPointers.getMaximumIndex()){ ret = nonNullList(instanceKeyIdToInstanceFieldPointers.getMappedObject(ikIndex)); } else { ret = Collections.emptyList(); } return ret; }
/** * Get the set of pointer keys that should be presented below an instance key in the heap tree. Override if you have special * pointer keys (not just for fields) */ protected List<? extends PointerKey> getPointerKeysUnderInstanceKey(InstanceKey ik) { int ikIndex = pa.getInstanceKeyMapping().getMappedIndex(ik); List<? extends PointerKey> ret; if (ikIndex <= instanceKeyIdToInstanceFieldPointers.getMaximumIndex()){ ret = nonNullList(instanceKeyIdToInstanceFieldPointers.getMappedObject(ikIndex)); } else { ret = Collections.emptyList(); } return ret; }
InstanceKey ik = instanceKeys.getMappedObject(x); IClass concreteType = ik.getConcreteType(); if (!cha.isAssignableFrom(type, concreteType)) {
InstanceKey ik = instanceKeys.getMappedObject(x); IClass concreteType = ik.getConcreteType(); if (!cha.isAssignableFrom(type, concreteType)) {