protected final int countSame(SpecializationNode node) { return findStart().countSameImpl(node); }
private Node findRoot() { return findStart().getParent(); }
protected final SpecializationNode removeSame(final CharSequence reason) { SpecializationNode start = SpecializationNode.this.findStart(); SpecializationNode current = start; while (current != null) { if (current.isSame(SpecializationNode.this)) { NodeUtil.nonAtomicReplace(current, current.next, reason); if (current == start) { start = start.next; } } current = current.next; } return SpecializationNode.this.findEnd().findStart(); }
private static SpecializationNode removeSameImpl(SpecializationNode toRemove, CharSequence reason) { SpecializationNode start = toRemove.findStart(); SpecializationNode current = start; while (current != null) { if (current.isSame(toRemove)) { NodeUtil.nonAtomicReplace(current, current.next, reason); if (current == start) { start = start.next; } } current = current.next; } return toRemove.findEnd().findStart(); }
public void reset() { SpecializationNode start = findStart(); SpecializationNode end = findEnd(); if (start != end) { start.replace(end, "reset specialization"); } }
private SpecializedNode findSpecializedNode() { return (SpecializedNode) findEnd().findStart().getParent(); }
private SpecializationNode removeThisImpl(final CharSequence reason) { this.replace(this.next, reason); return findEnd().findStart(); }