@Override public ContextItem get(ContextKey name) { if (parameterObjs.containsKey(name)) { return new FilteredPointerKey.SingleInstanceFilter(parameterObjs.get(name)); } else { return base.get(name); } }
FilteredPointerKey.SingleInstanceFilter filter = (SingleInstanceFilter) curContext.get(ContextKey.PARAMETERS[i]); if (filter != null) { InstanceKey ik = filter.getInstance(); if (ik instanceof ScopeMappingInstanceKey) { ik = ((ScopeMappingInstanceKey) ik).getBase();
vals = tmp; } else if (typeFilter instanceof SingleInstanceFilter) { final InstanceKey theOnlyInstanceKey = ((SingleInstanceFilter) typeFilter).getInstance(); final MutableIntSet tmp = intSetFactory.make(); vals.foreach(x -> {
FilteredPointerKey.SingleInstanceFilter filter = (SingleInstanceFilter) curContext.get(ContextKey.PARAMETERS[i]); if (filter != null) { InstanceKey ik = filter.getInstance(); if (ik instanceof ScopeMappingInstanceKey) { ik = ((ScopeMappingInstanceKey) ik).getBase();
vals = tmp; } else if (typeFilter instanceof SingleInstanceFilter) { final InstanceKey theOnlyInstanceKey = ((SingleInstanceFilter) typeFilter).getInstance(); final MutableIntSet tmp = intSetFactory.make(); vals.foreach(x -> {
private boolean exceedsRecursionBound(Context baseContext, int curLevel) { if (curLevel > recursionBound) { return true; } // we just do a case analysis here. we might have to add cases later to // account for new types of context / recursion. CGNode callerNode = (CGNode) baseContext.get(ContextKey.CALLER); if (callerNode != null && exceedsRecursionBound(callerNode.getContext(), curLevel + 1)) { return true; } for (int i = 0; i < MAX_INTERESTING_PARAM; i++) { FilteredPointerKey.SingleInstanceFilter filter = (SingleInstanceFilter) baseContext.get(ContextKey.PARAMETERS[i]); if (filter != null) { InstanceKey ik = filter.getInstance(); if (ik instanceof ScopeMappingInstanceKey) { ik = ((ScopeMappingInstanceKey) ik).getBase(); } if (ik instanceof InstanceKeyWithNode) { if (exceedsRecursionBound(((InstanceKeyWithNode) ik).getNode().getContext(), curLevel + 1)) { return true; } } } } return false; }
private boolean exceedsRecursionBound(Context baseContext, int curLevel) { if (curLevel > recursionBound) { return true; } // we just do a case analysis here. we might have to add cases later to // account for new types of context / recursion. CGNode callerNode = (CGNode) baseContext.get(ContextKey.CALLER); if (callerNode != null && exceedsRecursionBound(callerNode.getContext(), curLevel + 1)) { return true; } for (int i = 0; i < MAX_INTERESTING_PARAM; i++) { FilteredPointerKey.SingleInstanceFilter filter = (SingleInstanceFilter) baseContext.get(ContextKey.PARAMETERS[i]); if (filter != null) { InstanceKey ik = filter.getInstance(); if (ik instanceof ScopeMappingInstanceKey) { ik = ((ScopeMappingInstanceKey) ik).getBase(); } if (ik instanceof InstanceKeyWithNode) { if (exceedsRecursionBound(((InstanceKeyWithNode) ik).getNode().getContext(), curLevel + 1)) { return true; } } } } return false; }
/** * Like {@link PropNameContext#get(ContextKey)}, but don't return a * {@link SingleInstanceFilter} for the distinguishing {@link InstanceKey} */ @Override public ContextItem get(ContextKey key) { if (INSTANCE_KEY_KEY.equals(key)) { return ContextItem.Value.make(((SingleInstanceFilter)super.get(ContextKey.PARAMETERS[index])).getInstance()); } else { final ContextItem contextItem = super.get(key); return (contextItem instanceof SingleInstanceFilter) ? null : contextItem; } } }
public FilteredPointerKey getFilteredPointerKeyForLocal(CGNode node, int valueNumber, InstanceKey filter) { return getFilteredPointerKeyForLocal(node, valueNumber, new FilteredPointerKey.SingleInstanceFilter(filter)); }
/** * Like {@link PropNameContext#get(ContextKey)}, but don't return a * {@link SingleInstanceFilter} for the distinguishing {@link InstanceKey} */ @Override public ContextItem get(ContextKey key) { if (INSTANCE_KEY_KEY.equals(key)) { return ContextItem.Value.make(((SingleInstanceFilter)super.get(ContextKey.PARAMETERS[index])).getInstance()); } else { final ContextItem contextItem = super.get(key); return (contextItem instanceof SingleInstanceFilter) ? null : contextItem; } } }
@Override public boolean equals(Object o) { return (o instanceof SingleInstanceFilter) && ((SingleInstanceFilter) o).getInstance().equals(concreteType); }
@Override public boolean equals(Object o) { return (o instanceof SingleInstanceFilter) && ((SingleInstanceFilter) o).getInstance().equals(concreteType); }
@Override public ContextItem get(ContextKey name) { if (name == ContextKey.RECEIVER) return ik; else if (name == ContextKey.PARAMETERS[0]) return new FilteredPointerKey.SingleInstanceFilter(ik); else { return null; } }
public FilteredPointerKey getFilteredPointerKeyForLocal(CGNode node, int valueNumber, InstanceKey filter) { return getFilteredPointerKeyForLocal(node, valueNumber, new FilteredPointerKey.SingleInstanceFilter(filter)); }
@Override public ContextItem get(ContextKey key) { if (PROPNAME_KEY.equals(key)) { return PROPNAME_MARKER; } else if(PROPNAME_PARM_INDEX.equals(key)) { return ContextItem.Value.make(index); } else if(INSTANCE_KEY_KEY.equals(key)) { return ContextItem.Value.make(((SingleInstanceFilter)get(ContextKey.PARAMETERS[index])).getInstance()); } else { return super.get(key); } }
@Override public ContextItem get(ContextKey name) { /*if(name == ContextKey.RECEIVER && index == 1) return instanceKey;*/ if(name.equals(ContextKey.PARAMETERS[index]) || name.equals(ID_KEY)) return new FilteredPointerKey.SingleInstanceFilter(instanceKey); return base.get(name); }
@Override public ContextItem get(ContextKey key) { if (PROPNAME_KEY.equals(key)) { return PROPNAME_MARKER; } else if(PROPNAME_PARM_INDEX.equals(key)) { return ContextItem.Value.make(index); } else if(INSTANCE_KEY_KEY.equals(key)) { return ContextItem.Value.make(((SingleInstanceFilter)get(ContextKey.PARAMETERS[index])).getInstance()); } else { return super.get(key); } }
@Override public ContextItem get(ContextKey name) { if (parameterObjs.containsKey(name)) { return new FilteredPointerKey.SingleInstanceFilter(parameterObjs.get(name)); } else { return base.get(name); } }
@Override public ContextItem get(ContextKey name) { if (name == ContextKey.RECEIVER) return ik; else if (name == ContextKey.PARAMETERS[0]) return new FilteredPointerKey.SingleInstanceFilter(ik); else { return null; } }
@Override public ContextItem get(ContextKey name) { /*if(name == ContextKey.RECEIVER && index == 1) return instanceKey;*/ if(name.equals(ContextKey.PARAMETERS[index]) || name.equals(ID_KEY)) return new FilteredPointerKey.SingleInstanceFilter(instanceKey); return base.get(name); }