Example usage for org.eclipse.jdt.core.dom Modifier FINAL

List of usage examples for org.eclipse.jdt.core.dom Modifier FINAL

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.dom Modifier FINAL.

Prototype

int FINAL

To view the source code for org.eclipse.jdt.core.dom Modifier FINAL.

Click Source Link

Document

"final" modifier constant (bit mask).

Usage

From source file:astview.Binding.java

License:Open Source License

private static StringBuffer getModifiersString(int flags, boolean isMethod) {
    StringBuffer sb = new StringBuffer().append("0x").append(Integer.toHexString(flags)).append(" (");
    int prologLen = sb.length();
    int rest = flags;

    rest &= ~appendFlag(sb, flags, Modifier.PUBLIC, "public ");
    rest &= ~appendFlag(sb, flags, Modifier.PRIVATE, "private ");
    rest &= ~appendFlag(sb, flags, Modifier.PROTECTED, "protected ");
    rest &= ~appendFlag(sb, flags, Modifier.STATIC, "static ");
    rest &= ~appendFlag(sb, flags, Modifier.FINAL, "final ");
    if (isMethod) {
        rest &= ~appendFlag(sb, flags, Modifier.SYNCHRONIZED, "synchronized ");
        rest &= ~appendFlag(sb, flags, Modifier.DEFAULT, "default ");
    } else {//  w ww . ja  va  2 s .  c o  m
        rest &= ~appendFlag(sb, flags, Modifier.VOLATILE, "volatile ");
        rest &= ~appendFlag(sb, flags, Modifier.TRANSIENT, "transient ");
    }
    rest &= ~appendFlag(sb, flags, Modifier.NATIVE, "native ");
    rest &= ~appendFlag(sb, flags, Modifier.ABSTRACT, "abstract ");
    rest &= ~appendFlag(sb, flags, Modifier.STRICTFP, "strictfp ");

    if (rest != 0)
        sb.append("unknown:0x").append(Integer.toHexString(rest)).append(" ");
    int len = sb.length();
    if (len != prologLen)
        sb.setLength(len - 1);
    sb.append(")");
    return sb;
}

From source file:cn.ieclipse.adt.ext.jdt.SourceGenerator.java

License:Apache License

private static void merge(CompilationUnit unit, String pkgName, String typeName, String auth, String dbName,
        List<String> tableCreators) {
    unit.recordModifications();/*from w w w. j a  v a 2s  .  c  o  m*/
    AST ast = unit.getAST();
    TypeDeclaration type = (TypeDeclaration) unit.types().get(0);
    ImportDeclaration id = ast.newImportDeclaration();
    id.setName(ast.newName("cn.ieclipse.aorm.Session"));
    unit.imports().add(id);

    id = ast.newImportDeclaration();
    id.setName(ast.newName("android.content.UriMatcher"));
    unit.imports().add(id);

    id = ast.newImportDeclaration();
    id.setName(ast.newName("android.database.sqlite.SQLiteDatabase"));
    unit.imports().add(id);

    id = ast.newImportDeclaration();
    id.setName(ast.newName("android.database.sqlite.SQLiteOpenHelper"));
    unit.imports().add(id);

    id = ast.newImportDeclaration();
    id.setName(ast.newName("java.net.Uri"));
    unit.imports().add(id);

    id = ast.newImportDeclaration();
    id.setName(ast.newName("android.content.ContentValue"));
    unit.imports().add(id);

    VariableDeclarationFragment vdf = ast.newVariableDeclarationFragment();
    vdf.setName(ast.newSimpleName("AUTH"));
    StringLiteral sl = ast.newStringLiteral();
    sl.setLiteralValue(auth);
    vdf.setInitializer(sl);

    FieldDeclaration fd = ast.newFieldDeclaration(vdf);
    fd.modifiers().addAll(ast.newModifiers((Modifier.PUBLIC | Modifier.STATIC | Modifier.FINAL)));
    fd.setType(ast.newSimpleType(ast.newSimpleName("String")));

    int i = 0;
    type.bodyDeclarations().add(i++, fd);

    // URI = Uri.parse("content://" + AUTH);
    vdf = ast.newVariableDeclarationFragment();
    vdf.setName(ast.newSimpleName("URI"));

    MethodInvocation mi = ast.newMethodInvocation();
    mi.setExpression(ast.newSimpleName("Uri"));
    mi.setName(ast.newSimpleName("parse"));

    InfixExpression fix = ast.newInfixExpression();
    fix.setOperator(InfixExpression.Operator.PLUS);
    sl = ast.newStringLiteral();
    sl.setLiteralValue("content://");
    fix.setLeftOperand(sl);
    fix.setRightOperand(ast.newSimpleName("AUTH"));

    mi.arguments().add(fix);

    vdf.setInitializer(mi);
    fd = ast.newFieldDeclaration(vdf);
    fd.modifiers().addAll(ast.newModifiers((Modifier.PUBLIC | Modifier.STATIC | Modifier.FINAL)));
    fd.setType(ast.newSimpleType(ast.newSimpleName("Uri")));

    type.bodyDeclarations().add(i++, fd);

    // private mOpenHelper;
    vdf = ast.newVariableDeclarationFragment();
    vdf.setName(ast.newSimpleName("mOpenHelper"));

    fd = ast.newFieldDeclaration(vdf);
    fd.modifiers().add(ast.newModifier(Modifier.ModifierKeyword.PRIVATE_KEYWORD));
    fd.setType(ast.newSimpleType(ast.newName("SQLiteOpenHelper")));
    type.bodyDeclarations().add(i++, fd);

    // private static session;
    vdf = ast.newVariableDeclarationFragment();
    vdf.setName(ast.newSimpleName("session"));

    fd = ast.newFieldDeclaration(vdf);
    fd.modifiers().addAll(ast.newModifiers((Modifier.PRIVATE | Modifier.STATIC)));
    fd.setType(ast.newSimpleType(ast.newName("Session")));
    type.bodyDeclarations().add(i++, fd);

    // public static Session getSession(){
    // return session;
    // }

    MethodDeclaration md = ast.newMethodDeclaration();
    md.modifiers().addAll(ast.newModifiers((Modifier.PUBLIC | Modifier.STATIC)));
    md.setReturnType2(ast.newSimpleType(ast.newName("Session")));
    md.setName(ast.newSimpleName("getSession"));

    Block methodBlock = ast.newBlock();
    ReturnStatement returnStmt = ast.newReturnStatement();
    returnStmt.setExpression(ast.newSimpleName("session"));
    methodBlock.statements().add(returnStmt);
    md.setBody(methodBlock);
    type.bodyDeclarations().add(i, md);

    // modify onCreate
    rewriteOnCreate(unit, dbName, tableCreators);
}

From source file:com.alex.example.fixlicense.actions.SampleAction.java

License:Open Source License

private FieldDeclaration createLiceseInLineField(AST ast) {
    VariableDeclarationFragment vdf = ast.newVariableDeclarationFragment();
    vdf.setName(ast.newSimpleName("COPYRIGHT"));
    StringLiteral sl = ast.newStringLiteral();
    sl.setLiteralValue(license_inline);//from   www. j  a  v a  2s. c  om
    vdf.setInitializer(sl);
    FieldDeclaration fd = ast.newFieldDeclaration(vdf);
    fd.modifiers().addAll(ast.newModifiers(Modifier.PUBLIC | Modifier.STATIC | Modifier.FINAL));
    fd.setType(ast.newSimpleType(ast.newSimpleName("String")));

    return fd;
}

From source file:com.google.devtools.j2cpp.translate.ClassConverter.java

License:Open Source License

protected FieldDeclaration createField(String name, ITypeBinding varType, ITypeBinding declaringClass,
        AST ast) {//w  ww .j  av  a2s . c o  m
    VariableDeclarationFragment fragment = ast.newVariableDeclarationFragment();
    SimpleName fieldName = ast.newSimpleName(name);
    GeneratedVariableBinding fieldBinding = new GeneratedVariableBinding(fieldName.getIdentifier(),
            Modifier.PRIVATE | Modifier.FINAL, varType, true, false, declaringClass, null);
    Types.addBinding(fieldName, fieldBinding);
    fragment.setName(fieldName);
    Types.addBinding(fragment, fieldBinding);

    FieldDeclaration field = ast.newFieldDeclaration(fragment);
    field.setType(Types.makeType(varType));
    @SuppressWarnings("unchecked")
    List<IExtendedModifier> mods = field.modifiers(); // safe by definition
    mods.add(ast.newModifier(ModifierKeyword.PRIVATE_KEYWORD));
    mods.add(ast.newModifier(ModifierKeyword.FINAL_KEYWORD));
    return field;
}

From source file:com.google.devtools.j2cpp.translate.ClassConverter.java

License:Open Source License

@SuppressWarnings("unchecked")
protected List<SingleVariableDeclaration> createConstructorArguments(List<IVariableBinding> innerFields,
        IMethodBinding constructor, AST ast, String prefix) {
    int nameOffset = constructor.getParameterTypes().length;
    List<SingleVariableDeclaration> args = Lists.newArrayList();
    for (int i = 0; i < innerFields.size(); i++) {
        IVariableBinding field = innerFields.get(i);
        String argName = prefix + (i + nameOffset);
        SimpleName name = ast.newSimpleName(argName);
        GeneratedVariableBinding binding = new GeneratedVariableBinding(argName, Modifier.FINAL,
                field.getType(), false, true, constructor.getDeclaringClass(), constructor);
        Types.addBinding(name, binding);
        SingleVariableDeclaration newArg = ast.newSingleVariableDeclaration();
        newArg.setName(name);/* w w  w.  j  av  a 2s  .  c  om*/
        newArg.setType(Types.makeType(field.getType()));
        newArg.modifiers().add(ast.newModifier(ModifierKeyword.FINAL_KEYWORD));
        Types.addBinding(newArg, binding);
        args.add(newArg);
    }
    return args;
}

From source file:com.google.devtools.j2cpp.translate.InnerClassExtractor.java

License:Open Source License

private void addOuterFields(AbstractTypeDeclaration node) {
    @SuppressWarnings("unchecked")
    List<BodyDeclaration> members = node.bodyDeclarations(); // safe by definition
    AST ast = node.getAST();/*ww w . j  a  v  a 2 s  .c  om*/
    ITypeBinding clazz = Types.getTypeBinding(node);
    ITypeBinding outerClazz = clazz.getDeclaringClass();
    assert outerClazz != null;

    List<IVariableBinding> innerFields = Lists.newArrayList();
    // Ensure that the new outer field does not conflict with a field in a superclass.
    ITypeBinding superClazz = clazz.getSuperclass();
    ITypeBinding superDeclaringClazz = superClazz.getDeclaringClass();
    int suffix = 0;
    while (superClazz.getDeclaringClass() != null) {
        if (!Modifier.isStatic(superClazz.getModifiers())) {
            suffix++;
        }
        superClazz = superClazz.getSuperclass();
    }
    String outerFieldName = "this$" + suffix;

    FieldDeclaration outerField = createField(outerFieldName, outerClazz, clazz, ast);
    members.add(0, outerField);
    IVariableBinding outerVar = Types.getVariableBinding(outerField.fragments().get(0));
    innerFields.add(outerVar);

    if (superDeclaringClazz != null && !Modifier.isStatic(clazz.getSuperclass().getModifiers())
            && !outerClazz.isAssignmentCompatible(superDeclaringClazz.getTypeDeclaration())) {
        // The super class is an inner class, and it's declaring class and the
        // current node's declaring class don't match, so we need another outer
        // var. This var is only a parameter, not a field, an it's name doesn't
        // matter because addInnerParameters will assign a different name to it
        // anyway.
        IVariableBinding secondOuterVar = new GeneratedVariableBinding("", Modifier.FINAL, superDeclaringClazz,
                false, true, superClazz, null);
        innerFields.add(secondOuterVar);
    }

    // Insert new parameters for each constructor in class.
    boolean needsConstructor = true;
    for (BodyDeclaration member : members) {
        if (member instanceof MethodDeclaration && ((MethodDeclaration) member).isConstructor()) {
            needsConstructor = false;
            MethodDeclaration constructor = (MethodDeclaration) member;
            IMethodBinding oldBinding = Types.getMethodBinding(constructor);
            GeneratedMethodBinding newBinding = new GeneratedMethodBinding(oldBinding);
            Types.addBinding(constructor, newBinding);
            addInnerParameters(constructor, newBinding, innerFields, ast, false);
            assert constructor.parameters().size() == newBinding.getParameterTypes().length;
        }
    }

    if (needsConstructor) {
        MethodDeclaration constructor = ast.newMethodDeclaration();
        constructor.setConstructor(true);
        ITypeBinding voidType = ast.resolveWellKnownType("void");
        GeneratedMethodBinding binding = new GeneratedMethodBinding("init", 0, voidType, clazz, true, false,
                true);
        Types.addBinding(constructor, binding);
        Types.addBinding(constructor.getReturnType2(), voidType);
        SimpleName name = ast.newSimpleName("init");
        Types.addBinding(name, binding);
        constructor.setName(name);
        constructor.setBody(ast.newBlock());
        addInnerParameters(constructor, binding, innerFields, ast, false);
        members.add(constructor);
        assert constructor.parameters().size() == binding.getParameterTypes().length;
    }
}

From source file:com.google.devtools.j2objc.translate.InnerClassExtractor.java

License:Open Source License

protected void addOuterParameters(AbstractTypeDeclaration typeNode, MethodDeclaration constructor) {
    ITypeBinding type = typeNode.getTypeBinding();
    ITypeBinding outerType = type.getDeclaringClass();
    IVariableBinding outerParamBinding = null;

    GeneratedMethodBinding constructorBinding = new GeneratedMethodBinding(
            constructor.getMethodBinding().getMethodDeclaration());
    constructor.setMethodBinding(constructorBinding);

    // Adds the outer and captured parameters to the declaration.
    List<SingleVariableDeclaration> captureDecls = constructor.getParameters().subList(0, 0);
    List<ITypeBinding> captureTypes = constructorBinding.getParameters().subList(0, 0);
    if (OuterReferenceResolver.needsOuterParam(type)) {
        GeneratedVariableBinding paramBinding = new GeneratedVariableBinding("outer$", Modifier.FINAL,
                outerType, false, true, type, constructorBinding);
        captureDecls.add(new SingleVariableDeclaration(paramBinding));
        captureTypes.add(outerType);//www .jav  a2 s . co m
        outerParamBinding = paramBinding;
    }
    List<IVariableBinding> innerFields = OuterReferenceResolver.getInnerFields(type);
    List<IVariableBinding> captureParams = Lists.newArrayListWithCapacity(innerFields.size());
    int captureCount = 0;
    for (IVariableBinding innerField : innerFields) {
        GeneratedVariableBinding paramBinding = new GeneratedVariableBinding("capture$" + captureCount++,
                Modifier.FINAL, innerField.getType(), false, true, type, constructorBinding);
        captureDecls.add(new SingleVariableDeclaration(paramBinding));
        captureTypes.add(innerField.getType());
        captureParams.add(paramBinding);
    }

    ConstructorInvocation thisCall = null;
    SuperConstructorInvocation superCall = null;

    List<Statement> statements = constructor.getBody().getStatements();
    for (Statement stmt : statements) {
        if (stmt instanceof ConstructorInvocation) {
            thisCall = (ConstructorInvocation) stmt;
            break;
        } else if (stmt instanceof SuperConstructorInvocation) {
            superCall = (SuperConstructorInvocation) stmt;
            break;
        }
    }

    if (thisCall != null) {
        GeneratedMethodBinding newThisBinding = new GeneratedMethodBinding(
                thisCall.getMethodBinding().getMethodDeclaration());
        thisCall.setMethodBinding(newThisBinding);
        List<Expression> args = thisCall.getArguments().subList(0, 0);
        List<ITypeBinding> params = newThisBinding.getParameters().subList(0, 0);
        if (outerParamBinding != null) {
            args.add(new SimpleName(outerParamBinding));
            params.add(outerParamBinding.getType());
        }
        for (IVariableBinding captureParam : captureParams) {
            args.add(new SimpleName(captureParam));
            params.add(captureParam.getType());
        }
    } else {
        ITypeBinding superType = type.getSuperclass().getTypeDeclaration();
        if (superCall == null) {
            superCall = new SuperConstructorInvocation(
                    TranslationUtil.findDefaultConstructorBinding(superType, typeEnv));
            statements.add(0, superCall);
        }
        passOuterParamToSuper(typeNode, superCall, superType, outerParamBinding);
        IVariableBinding outerField = OuterReferenceResolver.getOuterField(type);
        int idx = 0;
        if (outerField != null) {
            assert outerParamBinding != null;
            statements.add(idx++, new ExpressionStatement(
                    new Assignment(new SimpleName(outerField), new SimpleName(outerParamBinding))));
        }
        for (int i = 0; i < innerFields.size(); i++) {
            statements.add(idx++, new ExpressionStatement(
                    new Assignment(new SimpleName(innerFields.get(i)), new SimpleName(captureParams.get(i)))));
        }
    }
    assert constructor.getParameters().size() == constructor.getMethodBinding().getParameterTypes().length;
}

From source file:com.google.devtools.j2objc.translate.OuterReferenceResolver.java

License:Apache License

private IVariableBinding getOrCreateOuterField(Scope scope) {
    if (scope.initializingContext && scope == peekScope()) {
        usesOuterParam.add(scope.type);/*from  www.  j a  v a 2 s.c o m*/
        return OUTER_PARAMETER;
    }
    ITypeBinding type = scope.type;
    IVariableBinding outerField = outerVars.get(type);
    if (outerField == null) {
        outerField = new GeneratedVariableBinding(getOuterFieldName(type), Modifier.PRIVATE | Modifier.FINAL,
                type.getDeclaringClass(), true, false, type, null);
        outerVars.put(type, outerField);
    }
    return outerField;
}

From source file:com.google.devtools.j2objc.translate.OuterReferenceResolver.java

License:Apache License

private IVariableBinding getOrCreateInnerField(IVariableBinding var, ITypeBinding declaringType) {
    List<Capture> capturesForType = captures.get(declaringType);
    IVariableBinding innerField = null;/*from  www.  ja  v a 2 s. c  o m*/
    for (Capture capture : capturesForType) {
        if (var.equals(capture.var)) {
            innerField = capture.field;
            break;
        }
    }
    if (innerField == null) {
        GeneratedVariableBinding newField = new GeneratedVariableBinding("val$" + var.getName(),
                Modifier.PRIVATE | Modifier.FINAL, var.getType(), true, false, declaringType, null);
        newField.addAnnotations(var);
        innerField = newField;
        captures.put(declaringType, new Capture(var, innerField));
    }
    return innerField;
}

From source file:com.ibm.wala.cast.java.translator.jdt.JDT2CAstUtils.java

License:Open Source License

public static Collection<CAstQualifier> mapModifiersToQualifiers(int modifiers, boolean isInterface,
        boolean isAnnotation) {
    Set<CAstQualifier> quals = new LinkedHashSet<CAstQualifier>();

    if (isInterface)
        quals.add(CAstQualifier.INTERFACE);

    if (isAnnotation)
        quals.add(CAstQualifier.ANNOTATION);

    if ((modifiers & Modifier.ABSTRACT) != 0)
        quals.add(CAstQualifier.ABSTRACT);
    if ((modifiers & Modifier.FINAL) != 0)
        quals.add(CAstQualifier.FINAL);/*from   ww  w  . j a  va 2  s .  c o m*/
    if ((modifiers & Modifier.NATIVE) != 0)
        quals.add(CAstQualifier.NATIVE);
    // if (flags.isPackage()) quals.add(CAstQualifier.PACKAGE);
    if ((modifiers & Modifier.PRIVATE) != 0)
        quals.add(CAstQualifier.PRIVATE);
    if ((modifiers & Modifier.PROTECTED) != 0)
        quals.add(CAstQualifier.PROTECTED);
    if ((modifiers & Modifier.PUBLIC) != 0)
        quals.add(CAstQualifier.PUBLIC);
    if ((modifiers & Modifier.STATIC) != 0)
        quals.add(CAstQualifier.STATIC);
    if ((modifiers & Modifier.STRICTFP) != 0)
        quals.add(CAstQualifier.STRICTFP);
    if ((modifiers & Modifier.SYNCHRONIZED) != 0)
        quals.add(CAstQualifier.SYNCHRONIZED);
    if ((modifiers & Modifier.TRANSIENT) != 0)
        quals.add(CAstQualifier.TRANSIENT);
    if ((modifiers & Modifier.VOLATILE) != 0)
        quals.add(CAstQualifier.VOLATILE);

    return quals;
}