Search in sources :

Example 1 with ASTSoqlExpression

use of net.sourceforge.pmd.lang.apex.ast.ASTSoqlExpression in project pmd by pmd.

the class ApexCRUDViolationRule method visit.

@Override
public Object visit(final ASTVariableDeclaration node, Object data) {
    String type = node.getNode().getLocalInfo().getType().getApexName();
    addVariableToMapping(Helper.getFQVariableName(node), type);
    final ASTSoqlExpression soql = node.getFirstChildOfType(ASTSoqlExpression.class);
    if (soql != null) {
        checkForAccessibility(soql, data);
    }
    return data;
}
Also used : ASTSoqlExpression(net.sourceforge.pmd.lang.apex.ast.ASTSoqlExpression)

Example 2 with ASTSoqlExpression

use of net.sourceforge.pmd.lang.apex.ast.ASTSoqlExpression in project pmd by pmd.

the class ApexCRUDViolationRule method visit.

@Override
public Object visit(final ASTFieldDeclaration node, Object data) {
    ASTFieldDeclarationStatements field = node.getFirstParentOfType(ASTFieldDeclarationStatements.class);
    if (field != null) {
        TypeRef a = field.getNode().getTypeName();
        List<Identifier> names = a.getNames();
        List<TypeRef> typeArgs = a.getTypeArguments();
        if (!names.isEmpty()) {
            StringBuffer sb = new StringBuffer();
            for (Identifier id : names) {
                sb.append(id.getValue()).append(".");
            }
            sb.deleteCharAt(sb.length() - 1);
            switch(sb.toString().toLowerCase(Locale.ROOT)) {
                case "list":
                case "map":
                    addParametersToMapping(node, typeArgs);
                    break;
                default:
                    varToTypeMapping.put(Helper.getFQVariableName(node), getSimpleType(sb.toString()));
                    break;
            }
        }
    }
    final ASTSoqlExpression soql = node.getFirstChildOfType(ASTSoqlExpression.class);
    if (soql != null) {
        checkForAccessibility(soql, data);
    }
    return data;
}
Also used : Identifier(apex.jorje.data.Identifier) ASTFieldDeclarationStatements(net.sourceforge.pmd.lang.apex.ast.ASTFieldDeclarationStatements) ArrayTypeRef(apex.jorje.data.ast.TypeRefs.ArrayTypeRef) TypeRef(apex.jorje.data.ast.TypeRef) ClassTypeRef(apex.jorje.data.ast.TypeRefs.ClassTypeRef) ASTSoqlExpression(net.sourceforge.pmd.lang.apex.ast.ASTSoqlExpression)

Aggregations

ASTSoqlExpression (net.sourceforge.pmd.lang.apex.ast.ASTSoqlExpression)2 Identifier (apex.jorje.data.Identifier)1 TypeRef (apex.jorje.data.ast.TypeRef)1 ArrayTypeRef (apex.jorje.data.ast.TypeRefs.ArrayTypeRef)1 ClassTypeRef (apex.jorje.data.ast.TypeRefs.ClassTypeRef)1 ASTFieldDeclarationStatements (net.sourceforge.pmd.lang.apex.ast.ASTFieldDeclarationStatements)1