package sk.stuba.fiit.perconik.core.java.dom.difference; import javax.annotation.Nullable; import org.eclipse.jdt.core.dom.ASTNode; import sk.stuba.fiit.perconik.core.java.dom.Nodes; import sk.stuba.fiit.perconik.utilities.SmartStringBuilder; public final class NodeDeletion<N extends ASTNode> extends NodeDelta<N> { private final N node; private NodeDeletion(final N node) { this.node = node; } public static <N extends ASTNode> NodeDeletion<N> of(@Nullable final N node) { return new NodeDeletion<>(node); } @Override public String toString(final int indent) { SmartStringBuilder builder = this.toStringBuilder(indent); builder.append("original: ").appendln(Nodes.toTypeString(this.node)); builder.tab().lines(this.node); return builder.toString(); } public N getDeletedNode() { return this.node; } @Override public N getOriginalNode() { return this.getDeletedNode(); } @Override public N getRevisedNode() { return null; } @Override public NodeDeltaType getType() { return NodeDeltaType.DELETION; } }