0

ヘルプ。まともな回答のために評判を犠牲にしたい..

public class ParameterNameConvention extends AbstractJavaRule {

private final static String PATTERN = "[p][a-zA-Z]+";

    public Object visit(ASTMethodDeclaration node, Object data) {
        RuleContext result = (RuleContext) data;
        String rulePattern = (!getStringProperty("rulePattern")
                .equalsIgnoreCase("")) ? getStringProperty("rulePattern")
                : PATTERN;
        if (node.containsChildOfType(ASTFormalParameter.class)) {
            Iterator iterator = node.findChildrenOfType(
                    ASTFormalParameter.class).iterator();
            while (iterator.hasNext()) {
                ASTFormalParameter element = (ASTFormalParameter) iterator
                        .next();
                Iterator decIdIterator = element.findChildrenOfType(
                        ASTVariableDeclaratorId.class).iterator();
                while (decIdIterator.hasNext()) {
                    ASTVariableDeclaratorId decElement = (ASTVariableDeclaratorId) decIdIterator
                            .next();
                    if (!decElement.getImage().matches(rulePattern)) {

                        result.getReport()
                                .addRuleViolation(
                                        createRuleViolation(
                                                this,
                                                node.getBeginLine(),
                                                "Parameter '"
                                                        + decElement.getImage()
                                                        + "' should match regular expression pattern '"
                                                        + rulePattern + "'",
                                                result));
                    }
                }
            }
        }
        return result;
    }
}

ただし、「creatRuleViolation」は機能しません。それを定義する方法は?

4

1 に答える 1