Hide setImage

This commit is contained in:
Clément Fournier
2020-04-23 20:44:29 +02:00
parent 786a09bed0
commit 81c3743430
15 changed files with 78 additions and 40 deletions

View File

@ -11,7 +11,6 @@ import org.checkerframework.checker.nullness.qual.NonNull;
import org.jaxen.BaseXPath;
import org.jaxen.JaxenException;
import net.sourceforge.pmd.annotation.InternalApi;
import net.sourceforge.pmd.lang.ast.NodeStream.DescendantNodeStream;
import net.sourceforge.pmd.lang.ast.internal.StreamImpl;
import net.sourceforge.pmd.lang.ast.xpath.Attribute;
@ -56,16 +55,6 @@ public interface Node {
}
/**
* @deprecated This is internal API, the image should never be set by developers.
*/
@InternalApi
@Deprecated
default void setImage(String image) {
throw new UnsupportedOperationException("setImage");
}
/**
* Returns true if this node's image is equal to the given string.
*

View File

@ -12,7 +12,6 @@ import org.checkerframework.checker.nullness.qual.Nullable;
import net.sourceforge.pmd.lang.ast.Node;
import net.sourceforge.pmd.util.DataMap;
import net.sourceforge.pmd.util.DataMap.DataKey;
import net.sourceforge.pmd.util.DataMap.SimpleDataKey;
/**
* Base class for implementations of the Node interface whose children
@ -28,9 +27,6 @@ public abstract class AbstractNode<T extends GenericNode<T>> implements GenericN
private static final Node[] EMPTY_ARRAY = new Node[0];
@Deprecated
public static final SimpleDataKey<Object> LEGACY_USER_DATA = DataMap.simpleDataKey("legacy user data");
// lazy initialized, many nodes don't need it
private @Nullable DataMap<DataKey<?, ?>> userData;
@ -39,9 +35,6 @@ public abstract class AbstractNode<T extends GenericNode<T>> implements GenericN
private AbstractNode<T> parent;
private int childIndex;
// @Deprecated?
private String image;
protected AbstractNode() {
// only for subclassing
}
@ -75,11 +68,6 @@ public abstract class AbstractNode<T extends GenericNode<T>> implements GenericN
return (T) n;
}
@SuppressWarnings("unchecked")
private AbstractNode<T> downCast(T t) {
return (AbstractNode) t;
}
/**
* This method tells the node to add its argument to the node's list of children.
*
@ -128,18 +116,6 @@ public abstract class AbstractNode<T extends GenericNode<T>> implements GenericN
childIndex = index;
}
@Override
public String getImage() {
return image;
}
@Override
@Deprecated
public void setImage(final String image) {
this.image = image;
}
@Override
public boolean hasImageEqualTo(final String image) {
return Objects.equals(this.getImage(), image);

View File

@ -22,12 +22,23 @@ public abstract class AbstractJjtreeNode<N extends JjtreeNode<N>> extends Abstra
private JavaccToken firstToken;
private JavaccToken lastToken;
private String image;
protected AbstractJjtreeNode(int id) {
super();
this.id = id;
}
@Override
public String getImage() {
return image;
}
protected void setImage(String image) {
this.image = image;
}
@Override
public CharSequence getText() {
String fullText = getFirstToken().document.getFullText();

View File

@ -14,6 +14,7 @@ public class DummyNode extends AbstractNodeWithTextCoordinates<DummyNode> {
private final boolean findBoundary;
private final String xpathName;
private final Map<String, String> userData = new HashMap<>();
private String image;
public DummyNode() {
this(false);
@ -33,6 +34,15 @@ public class DummyNode extends AbstractNodeWithTextCoordinates<DummyNode> {
super.setCoords(bline, bcol, eline, ecol);
}
public void setImage(String image) {
this.image = image;
}
@Override
public String getImage() {
return image;
}
@Override
public String toString() {
return getImage();

View File

@ -86,7 +86,7 @@ public final class DummyTreeUtil {
}
private static void assignPathImage(Node node, String curPath) {
private static void assignPathImage(DummyNode node, String curPath) {
node.setImage(curPath);
for (int i = 0; i < node.getNumChildren(); i++) {

View File

@ -32,6 +32,11 @@ public abstract class AbstractJavaNode extends AbstractJjtreeNode<JavaNode> impl
return scope;
}
@Override // override to make protected member accessible to parser
protected void setImage(String image) {
super.setImage(image);
}
@InternalApi
@Deprecated
@Override

View File

@ -12,6 +12,7 @@ import net.sourceforge.pmd.lang.ast.impl.AbstractNodeWithTextCoordinates;
abstract class AbstractEcmascriptNode<T extends AstNode> extends AbstractNodeWithTextCoordinates<EcmascriptNode<?>> implements EcmascriptNode<T> {
protected final T node;
private String image;
AbstractEcmascriptNode(T node) {
this.node = node;
@ -21,6 +22,15 @@ abstract class AbstractEcmascriptNode<T extends AstNode> extends AbstractNodeWit
super.addChild(child, index);
}
@Override
public String getImage() {
return image;
}
protected void setImage(String image) {
this.image = image;
}
/* package private */
void calculateLineNumbers(SourceCodePositioner positioner) {
int startOffset = node.getAbsolutePosition();

View File

@ -26,10 +26,10 @@ abstract class AbstractInfixEcmascriptNode<T extends InfixExpression> extends Ab
}
public EcmascriptNode<?> getLeft() {
return (EcmascriptNode<?>) getChild(0);
return getChild(0);
}
public EcmascriptNode<?> getRight() {
return (EcmascriptNode<?>) getChild(1);
return getChild(1);
}
}

View File

@ -12,6 +12,12 @@ abstract class AbstractJspNode extends AbstractJjtreeNode<JspNode> implements Js
super(id);
}
@Override // override to make protected member accessible to parser
protected void setImage(String image) {
super.setImage(image);
}
@Override
public String getXPathNodeName() {
return JspParserImplTreeConstants.jjtNodeName[id];

View File

@ -24,6 +24,12 @@ abstract class AbstractModelicaNode extends AbstractJjtreeNode<ModelicaNode> imp
super(id);
}
@Override // override to make protected member accessible to parser
protected void setImage(String image) {
super.setImage(image);
}
@Override
public abstract Object jjtAccept(ModelicaParserVisitor visitor, Object data);

View File

@ -8,8 +8,6 @@ import io.kotlintest.should
import io.kotlintest.shouldBe
import io.kotlintest.specs.FunSpec
import net.sourceforge.pmd.lang.ast.Node
import net.sourceforge.pmd.lang.ast.test.firstToken
import net.sourceforge.pmd.lang.ast.test.lastToken
import net.sourceforge.pmd.lang.ast.test.matchNode
import net.sourceforge.pmd.lang.ast.test.shouldBe
import net.sourceforge.pmd.lang.modelica.ModelicaParsingHelper

View File

@ -19,6 +19,11 @@ public abstract class AbstractPLSQLNode extends AbstractJjtreeNode<PLSQLNode> im
super(i);
}
@Override // override to make protected member accessible to parser
protected void setImage(String image) {
super.setImage(image);
}
protected void jjtSetValue(Object value) {
this.value = value;
}

View File

@ -8,6 +8,8 @@ import net.sourceforge.pmd.lang.ast.impl.AbstractNodeWithTextCoordinates;
public class DummyNode extends AbstractNodeWithTextCoordinates<DummyNode> {
private String image;
@Override
public void setCoords(int bline, int bcol, int eline, int ecol) {
super.setCoords(bline, bcol, eline, ecol);
@ -23,4 +25,13 @@ public class DummyNode extends AbstractNodeWithTextCoordinates<DummyNode> {
public String getXPathNodeName() {
return "dummyNode";
}
@Override
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
}

View File

@ -12,6 +12,11 @@ abstract class AbstractVfNode extends AbstractJjtreeNode<VfNode> implements VfNo
super(id);
}
@Override // override to make protected member accessible to parser
protected void setImage(String image) {
super.setImage(image);
}
@Override
public String getXPathNodeName() {
return VfParserImplTreeConstants.jjtNodeName[id];

View File

@ -29,6 +29,12 @@ abstract class AbstractVmNode extends AbstractJjtreeNode<VmNode> implements VmNo
super(i);
}
@Override // override to make protected member accessible to parser
protected void setImage(String image) {
super.setImage(image);
}
@Override
public String getXPathNodeName() {
return VmParserImplTreeConstants.jjtNodeName[id];