/** * ASTPrimaryPrefix has name in child node of ASTName */ private static String getNameFromPrefix(ASTPrimaryPrefix node) { String name = null; // should only be 1 child, if more I need more knowledge if (node.jjtGetNumChildren() == 1) { // safety check Node nnode = node.jjtGetChild(0); if (nnode instanceof ASTName) { // just as easy as null check and it // should be an ASTName anyway name = ((ASTName) nnode).getImage(); } } return name; }
/** * Extracts the method name of the method call. * @param prefix the method call * @return the name of the called method */ private String getMethodCallName(ASTPrimaryPrefix prefix) { String result = ""; if (prefix.jjtGetNumChildren() == 1 && prefix.jjtGetChild(0) instanceof ASTName) { result = getLastPartOfName(prefix.jjtGetChild(0)); } return result; }
private String getNameFromPrimaryPrefix(ASTPrimaryPrefix pp) { if (pp.jjtGetNumChildren() == 1 && pp.jjtGetChild(0) instanceof ASTName) { return ((ASTName) pp.jjtGetChild(0)).getImage(); } return null; } }
private String getNameFromPrimaryPrefix(ASTPrimaryPrefix pp) { if (pp.jjtGetNumChildren() == 1 && pp.jjtGetChild(0) instanceof ASTName) { return ((ASTName) pp.jjtGetChild(0)).getImage(); } return null; } }
private boolean ifVerify(ASTIfStatement is, String varname) { List<ASTPrimaryExpression> finder = is.findDescendantsOfType(ASTPrimaryExpression.class); if (finder.size() > 1) { ASTPrimaryExpression nullStmt = findNonVariableStmt(varname, finder.get(0), finder.get(1)); if (nullStmt != null) { if (nullStmt.jjtGetNumChildren() == 1 && nullStmt.jjtGetChild(0) instanceof ASTPrimaryPrefix) { ASTPrimaryPrefix pp2 = (ASTPrimaryPrefix) nullStmt.jjtGetChild(0); if (pp2.jjtGetNumChildren() == 1 && pp2.jjtGetChild(0) instanceof ASTLiteral) { ASTLiteral lit = (ASTLiteral) pp2.jjtGetChild(0); if (lit.jjtGetNumChildren() == 1 && lit.jjtGetChild(0) instanceof ASTNullLiteral) { return true; } } } } } return false; }
@Override public Object visit(ASTPrimaryPrefix node, Object data) { if (node.jjtGetNumChildren() == 0 || !(node.jjtGetChild(0) instanceof ASTName)) { return super.visit(node, data); } String image = ((ASTName) node.jjtGetChild(0)).getImage(); if (image.startsWith("java.lang.")) { image = image.substring(10); } boolean checkBoolean = ((RuleContext) data).getLanguageVersion() .compareTo(LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")) >= 0; if (PREFIX_SET.contains(image) || checkBoolean && "Boolean.valueOf".equals(image)) { ASTPrimaryExpression parent = (ASTPrimaryExpression) node.jjtGetParent(); if (parent.jjtGetNumChildren() >= 3) { Node n = parent.jjtGetChild(2); if (n instanceof ASTPrimarySuffix) { ASTPrimarySuffix suffix = (ASTPrimarySuffix) n; image = suffix.getImage(); if (SUFFIX_SET.contains(image) || checkBoolean && "booleanValue".equals(image)) { super.addViolation(data, node); return data; } } } } return super.visit(node, data); }
if (guardCall.jjtGetNumChildren() < 1 || guardCall.jjtGetChild(0).getImage() == null) { continue;
ASTPrimaryPrefix xn = sn.getFirstDescendantOfType(ASTPrimaryPrefix.class); if (xn != null) { if (xn.jjtGetNumChildren() != 0 && xn.jjtGetChild(0) instanceof ASTLiteral) { ASTLiteral literal = (ASTLiteral) xn.jjtGetChild(0); String str = xn.jjtGetChild(0).getImage();
public boolean isStandAlonePrimitive() { if (jjtGetNumChildren() != 1) { return false; } ASTPrimaryExpression primaryExpression = getFirstChildOfType(ASTPrimaryExpression.class); if (primaryExpression == null || primaryExpression.jjtGetNumChildren() != 1) { return false; } ASTPrimaryPrefix primaryPrefix = primaryExpression.getFirstChildOfType(ASTPrimaryPrefix.class); if (primaryPrefix == null || primaryPrefix.jjtGetNumChildren() != 1) { return false; } ASTLiteral literal = primaryPrefix.getFirstChildOfType(ASTLiteral.class); // if it is not a string literal and not a null, then it is one of // byte, short, char, int, long, float, double, boolean return literal != null && !literal.isStringLiteral() && (literal.jjtGetNumChildren() == 0 || !(literal.jjtGetChild(0) instanceof ASTNullLiteral)); } }
if (node.jjtGetNumChildren() == 0 || !(node.jjtGetChild(0) instanceof ASTName)) { return super.visit(node, data);
ASTPrimaryPrefix arg = expression.getFirstDescendantOfType(ASTPrimaryPrefix.class); String type = "<unknown>"; if (arg != null && arg.jjtGetNumChildren() > 0) { if (arg.jjtGetChild(0) instanceof ASTLiteral) { ASTLiteral lit = (ASTLiteral) arg.jjtGetChild(0);
@Override public Object visit(ASTPrimaryPrefix node, Object data) { if (node.jjtGetNumChildren() == 0 || !(node.jjtGetChild(0) instanceof ASTName)) { return super.visit(node, data);
if (argumentPrimaryPrefix.jjtGetNumChildren() == 0) {
/** * ASTPrimaryPrefix has name in child node of ASTName */ private static String getNameFromPrefix(ASTPrimaryPrefix node) { String name = null; // should only be 1 child, if more I need more knowledge if (node.jjtGetNumChildren() == 1) { // safety check Node nnode = node.jjtGetChild(0); if (nnode instanceof ASTName) { // just as easy as null check and it // should be an ASTName anyway name = ((ASTName) nnode).getImage(); } } return name; }
/** * Extracts the method name of the method call. * @param prefix the method call * @return the name of the called method */ private String getMethodCallName(ASTPrimaryPrefix prefix) { String result = ""; if (prefix.jjtGetNumChildren() == 1 && prefix.jjtGetChild(0) instanceof ASTName) { result = getLastPartOfName(prefix.jjtGetChild(0)); } return result; }
private String getNameFromPrimaryPrefix(ASTPrimaryPrefix pp) { if (pp.jjtGetNumChildren() == 1 && pp.jjtGetChild(0) instanceof ASTName) { return ((ASTName) pp.jjtGetChild(0)).getImage(); } return null; } }
private String getNameFromPrimaryPrefix(ASTPrimaryPrefix pp) { if (pp.jjtGetNumChildren() == 1 && pp.jjtGetChild(0) instanceof ASTName) { return ((ASTName) pp.jjtGetChild(0)).getImage(); } return null; } }
private boolean ifVerify(ASTIfStatement is, String varname) { List<ASTPrimaryExpression> finder = is.findDescendantsOfType(ASTPrimaryExpression.class); if (finder.size() > 1) { ASTPrimaryExpression nullStmt = findNonVariableStmt(varname, finder.get(0), finder.get(1)); if (nullStmt != null) { if (nullStmt.jjtGetNumChildren() == 1 && nullStmt.jjtGetChild(0) instanceof ASTPrimaryPrefix) { ASTPrimaryPrefix pp2 = (ASTPrimaryPrefix) nullStmt.jjtGetChild(0); if (pp2.jjtGetNumChildren() == 1 && pp2.jjtGetChild(0) instanceof ASTLiteral) { ASTLiteral lit = (ASTLiteral) pp2.jjtGetChild(0); if (lit.jjtGetNumChildren() == 1 && lit.jjtGetChild(0) instanceof ASTNullLiteral) { return true; } } } } } return false; }
@Override public Object visit(ASTPrimaryPrefix node, Object data) { if (node.jjtGetNumChildren() == 0 || !(node.jjtGetChild(0) instanceof ASTName)) { return super.visit(node, data); } String image = ((ASTName) node.jjtGetChild(0)).getImage(); if (image.startsWith("java.lang.")) { image = image.substring(10); } boolean checkBoolean = ((RuleContext) data).getLanguageVersion() .compareTo(LanguageRegistry.getLanguage(JavaLanguageModule.NAME).getVersion("1.5")) >= 0; if (PREFIX_SET.contains(image) || checkBoolean && "Boolean.valueOf".equals(image)) { ASTPrimaryExpression parent = (ASTPrimaryExpression) node.jjtGetParent(); if (parent.jjtGetNumChildren() >= 3) { Node n = parent.jjtGetChild(2); if (n instanceof ASTPrimarySuffix) { ASTPrimarySuffix suffix = (ASTPrimarySuffix) n; image = suffix.getImage(); if (SUFFIX_SET.contains(image) || checkBoolean && "booleanValue".equals(image)) { super.addViolation(data, node); return data; } } } } return super.visit(node, data); }
public boolean isStandAlonePrimitive() { if (jjtGetNumChildren() != 1) { return false; } ASTPrimaryExpression primaryExpression = getFirstChildOfType(ASTPrimaryExpression.class); if (primaryExpression == null || primaryExpression.jjtGetNumChildren() != 1) { return false; } ASTPrimaryPrefix primaryPrefix = primaryExpression.getFirstChildOfType(ASTPrimaryPrefix.class); if (primaryPrefix == null || primaryPrefix.jjtGetNumChildren() != 1) { return false; } ASTLiteral literal = primaryPrefix.getFirstChildOfType(ASTLiteral.class); // if it is not a string literal and not a null, then it is one of // byte, short, char, int, long, float, double, boolean return literal != null && !literal.isStringLiteral() && (literal.jjtGetNumChildren() == 0 || !(literal.jjtGetChild(0) instanceof ASTNullLiteral)); } }