Java1_0Validator.java revision 3d10f646973b16e1892f2f3b2cad3ce39e336dcf
1package com.github.javaparser.ast.validator;
2
3import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration;
4import com.github.javaparser.ast.expr.ClassExpr;
5import com.github.javaparser.ast.stmt.AssertStmt;
6import com.github.javaparser.ast.validator.chunks.CommonValidators;
7import com.github.javaparser.ast.validator.chunks.ModifierValidator;
8
9/**
10 * This validator validates according to Java 1.0 syntax rules.
11 */
12public class Java1_0Validator extends Validators {
13    protected final Validator modifiersWithoutStrictfp = new ModifierValidator(false);
14    protected final Validator noAssertKeyword = new SimpleValidator<>(AssertStmt.class,
15            n -> true,
16            (n, reporter) -> reporter.report(n, "'assert' keyword is not supported.")
17    );
18    protected final Validator noInnerClasses = new SimpleValidator<>(ClassOrInterfaceDeclaration.class,
19            n -> !n.isTopLevelType(),
20            (n, reporter) -> reporter.report(n, "inner classes or interfaces are not supported.")
21    );
22    protected final Validator noReflection = new SimpleValidator<>(ClassExpr.class,
23            n -> true,
24            (n, reporter) -> reporter.report(n, "Reflection is not supported.")
25    );
26
27    public Java1_0Validator() {
28        super(new CommonValidators());
29        add(modifiersWithoutStrictfp);
30        add(noAssertKeyword);
31        add(noInnerClasses);
32        add(noReflection);
33        // TODO validate "no generics"
34        // TODO validate "no annotations"
35        // TODO validate "no enums"
36        // TODO validate "no varargs"
37        // TODO validate "no for-each"
38        // TODO validate "no static imports"
39        // TODO validate "no strings in switch"
40        // TODO validate "no resource management in try statement"
41        // TODO validate "no binary integer literals"
42        // TODO validate "no underscores in numeric literals"
43        // TODO validate "no multi-catch"
44        // TODO validate "no lambdas"
45        // TODO validate "no modules"
46        // TODO validate "no default interface methods"
47        // TODO validate "no private interface methods"
48    }
49}
50