Example usage for org.eclipse.jdt.internal.compiler.lookup ExtraCompilerModifiers AccBlankFinal

List of usage examples for org.eclipse.jdt.internal.compiler.lookup ExtraCompilerModifiers AccBlankFinal

Introduction

In this page you can find the example usage for org.eclipse.jdt.internal.compiler.lookup ExtraCompilerModifiers AccBlankFinal.

Prototype

int AccBlankFinal

To view the source code for org.eclipse.jdt.internal.compiler.lookup ExtraCompilerModifiers AccBlankFinal.

Click Source Link

Usage

From source file:org.eclipse.jdt.core.dom.ASTConverter.java

License:Open Source License

/**
 * @param variableDeclarationExpression/*from www.java  2s  . com*/
 * @param localDeclaration
 */
protected void setModifiers(VariableDeclarationExpression variableDeclarationExpression,
        LocalDeclaration localDeclaration) {
    switch (this.ast.apiLevel) {
    case AST.JLS2_INTERNAL:
        int modifiers = localDeclaration.modifiers & ExtraCompilerModifiers.AccJustFlag;
        modifiers &= ~ExtraCompilerModifiers.AccBlankFinal;
        variableDeclarationExpression.internalSetModifiers(modifiers);
        if (localDeclaration.annotations != null) {
            variableDeclarationExpression
                    .setFlags(variableDeclarationExpression.getFlags() | ASTNode.MALFORMED);
        }
        break;
    default:
        this.scanner.resetTo(localDeclaration.declarationSourceStart, localDeclaration.sourceStart);
        org.eclipse.jdt.internal.compiler.ast.Annotation[] annotations = localDeclaration.annotations;
        int indexInAnnotations = 0;
        try {
            int token;
            while ((token = this.scanner.getNextToken()) != TerminalTokens.TokenNameEOF) {
                IExtendedModifier modifier = null;
                switch (token) {
                case TerminalTokens.TokenNameabstract:
                    modifier = createModifier(Modifier.ModifierKeyword.ABSTRACT_KEYWORD);
                    break;
                case TerminalTokens.TokenNamepublic:
                    modifier = createModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD);
                    break;
                case TerminalTokens.TokenNamestatic:
                    modifier = createModifier(Modifier.ModifierKeyword.STATIC_KEYWORD);
                    break;
                case TerminalTokens.TokenNameprotected:
                    modifier = createModifier(Modifier.ModifierKeyword.PROTECTED_KEYWORD);
                    break;
                case TerminalTokens.TokenNameprivate:
                    modifier = createModifier(Modifier.ModifierKeyword.PRIVATE_KEYWORD);
                    break;
                case TerminalTokens.TokenNamefinal:
                    modifier = createModifier(Modifier.ModifierKeyword.FINAL_KEYWORD);
                    break;
                case TerminalTokens.TokenNamenative:
                    modifier = createModifier(Modifier.ModifierKeyword.NATIVE_KEYWORD);
                    break;
                case TerminalTokens.TokenNamesynchronized:
                    modifier = createModifier(Modifier.ModifierKeyword.SYNCHRONIZED_KEYWORD);
                    break;
                case TerminalTokens.TokenNametransient:
                    modifier = createModifier(Modifier.ModifierKeyword.TRANSIENT_KEYWORD);
                    break;
                case TerminalTokens.TokenNamevolatile:
                    modifier = createModifier(Modifier.ModifierKeyword.VOLATILE_KEYWORD);
                    break;
                case TerminalTokens.TokenNamestrictfp:
                    modifier = createModifier(Modifier.ModifierKeyword.STRICTFP_KEYWORD);
                    break;
                case TerminalTokens.TokenNameAT:
                    // we have an annotation
                    if (annotations != null && indexInAnnotations < annotations.length) {
                        org.eclipse.jdt.internal.compiler.ast.Annotation annotation = annotations[indexInAnnotations++];
                        modifier = convert(annotation);
                        this.scanner.resetTo(annotation.declarationSourceEnd + 1,
                                this.compilationUnitSourceLength);
                    }
                    break;
                case TerminalTokens.TokenNameCOMMENT_BLOCK:
                case TerminalTokens.TokenNameCOMMENT_LINE:
                case TerminalTokens.TokenNameCOMMENT_JAVADOC:
                    break;
                default:
                    return;
                }
                if (modifier != null) {
                    variableDeclarationExpression.modifiers().add(modifier);
                }
            }
        } catch (InvalidInputException e) {
            // ignore
        }
    }
}

From source file:org.eclipse.jdt.core.dom.ASTConverter.java

License:Open Source License

/**
 * @param variableDeclarationStatement//from w ww  .ja  va  2 s.  co  m
 * @param localDeclaration
 */
protected void setModifiers(VariableDeclarationStatement variableDeclarationStatement,
        LocalDeclaration localDeclaration) {
    switch (this.ast.apiLevel) {
    case AST.JLS2_INTERNAL:
        int modifiers = localDeclaration.modifiers & ExtraCompilerModifiers.AccJustFlag;
        modifiers &= ~ExtraCompilerModifiers.AccBlankFinal;
        variableDeclarationStatement.internalSetModifiers(modifiers);
        if (localDeclaration.annotations != null) {
            variableDeclarationStatement.setFlags(variableDeclarationStatement.getFlags() | ASTNode.MALFORMED);
        }
        break;
    default:
        this.scanner.resetTo(localDeclaration.declarationSourceStart, localDeclaration.sourceStart);
        org.eclipse.jdt.internal.compiler.ast.Annotation[] annotations = localDeclaration.annotations;
        int indexInAnnotations = 0;
        try {
            int token;
            while ((token = this.scanner.getNextToken()) != TerminalTokens.TokenNameEOF) {
                IExtendedModifier modifier = null;
                switch (token) {
                case TerminalTokens.TokenNameabstract:
                    modifier = createModifier(Modifier.ModifierKeyword.ABSTRACT_KEYWORD);
                    break;
                case TerminalTokens.TokenNamepublic:
                    modifier = createModifier(Modifier.ModifierKeyword.PUBLIC_KEYWORD);
                    break;
                case TerminalTokens.TokenNamestatic:
                    modifier = createModifier(Modifier.ModifierKeyword.STATIC_KEYWORD);
                    break;
                case TerminalTokens.TokenNameprotected:
                    modifier = createModifier(Modifier.ModifierKeyword.PROTECTED_KEYWORD);
                    break;
                case TerminalTokens.TokenNameprivate:
                    modifier = createModifier(Modifier.ModifierKeyword.PRIVATE_KEYWORD);
                    break;
                case TerminalTokens.TokenNamefinal:
                    modifier = createModifier(Modifier.ModifierKeyword.FINAL_KEYWORD);
                    break;
                case TerminalTokens.TokenNamenative:
                    modifier = createModifier(Modifier.ModifierKeyword.NATIVE_KEYWORD);
                    break;
                case TerminalTokens.TokenNamesynchronized:
                    modifier = createModifier(Modifier.ModifierKeyword.SYNCHRONIZED_KEYWORD);
                    break;
                case TerminalTokens.TokenNametransient:
                    modifier = createModifier(Modifier.ModifierKeyword.TRANSIENT_KEYWORD);
                    break;
                case TerminalTokens.TokenNamevolatile:
                    modifier = createModifier(Modifier.ModifierKeyword.VOLATILE_KEYWORD);
                    break;
                case TerminalTokens.TokenNamestrictfp:
                    modifier = createModifier(Modifier.ModifierKeyword.STRICTFP_KEYWORD);
                    break;
                case TerminalTokens.TokenNameAT:
                    // we have an annotation
                    if (annotations != null && indexInAnnotations < annotations.length) {
                        org.eclipse.jdt.internal.compiler.ast.Annotation annotation = annotations[indexInAnnotations++];
                        modifier = convert(annotation);
                        this.scanner.resetTo(annotation.declarationSourceEnd + 1,
                                this.compilationUnitSourceLength);
                    }
                    break;
                case TerminalTokens.TokenNameCOMMENT_BLOCK:
                case TerminalTokens.TokenNameCOMMENT_LINE:
                case TerminalTokens.TokenNameCOMMENT_JAVADOC:
                    break;
                default:
                    return;
                }
                if (modifier != null) {
                    variableDeclarationStatement.modifiers().add(modifier);
                }
            }
        } catch (InvalidInputException e) {
            // ignore
        }
    }
}

From source file:org.eclipse.objectteams.otdt.internal.core.compiler.statemachine.copyinheritance.CopyInheritance.java

License:Open Source License

/**
 * Nothing exciting here, just create a new field declaration.
 * @param field//from  ww w.j  a  v a 2  s.c om
 * @param roleDeclaration
 */
private static void copyField(FieldBinding field, TypeDeclaration roleDeclaration) {
    // avoid copying twice (see copyGeneratedFeatures()):
    roleDeclaration.getRoleModel().recordCopiedFeature(field);

    if ((field.modifiers & AccSynthetic) != 0) {
        roleDeclaration.binding.addCopiedSyntheticFied(field);
        return;
    }
    if ((field.tagBits & TagBits.IsFakedField) != 0)
        return; // don't copy fakes.

    if (roleDeclaration.fields != null) {
        for (int i = 0; i < roleDeclaration.fields.length; i++) {
            FieldDeclaration currentField = roleDeclaration.fields[i];
            if (CharOperation.equals(currentField.name, field.name)) {
                if (currentField.binding != null && currentField.binding.copyInheritanceSrc != null
                        && currentField.binding.copyInheritanceSrc == field.copyInheritanceSrc)
                    return; // not a problem: repeated inheritance of the same field!

                ProblemReporter problemReporter = currentField.isStatic()
                        ? roleDeclaration.staticInitializerScope.problemReporter()
                        : roleDeclaration.initializerScope.problemReporter();
                problemReporter.implicitlyHideField(currentField);
                return;
            }
        }
    }
    AstGenerator gen = new AstGenerator(roleDeclaration.sourceStart, roleDeclaration.sourceEnd);
    gen.replaceableEnclosingClass = roleDeclaration.binding.enclosingType();
    FieldDeclaration fieldDeclaration = AstConverter.createField(field, roleDeclaration, gen);
    AstEdit.addField(roleDeclaration, fieldDeclaration, true, false/*typeProblem*/, false);
    if (fieldDeclaration.binding != null) {
        fieldDeclaration.binding.modifiers |= ExtraCompilerModifiers.AccLocallyUsed;
        fieldDeclaration.binding.modifiers |= (field.modifiers & ExtraCompilerModifiers.AccBlankFinal); // BlankFinal was omitted on the fieldDecl
    }

}

From source file:org.eclipse.objectteams.otdt.internal.core.compiler.util.AstConverter.java

License:Open Source License

public static FieldDeclaration createField(FieldBinding fieldBinding, TypeDeclaration roleDeclaration,
        AstGenerator gen) {/*from   w w  w.ja  va  2s .  c  o  m*/

    if (fieldBinding == null)
        return null;

    FieldDeclaration fieldDeclaration = new FieldDeclaration();
    fieldDeclaration.type = gen.typeReference(fieldBinding.type);

    fieldDeclaration.modifiers = (fieldBinding.modifiers & ~ExtraCompilerModifiers.AccBlankFinal); // this modifier is not used on fieldDecl (AST), overlaps with AccReadOnly
    fieldDeclaration.name = fieldBinding.name;
    if (fieldBinding.copyInheritanceSrc != null)
        fieldDeclaration.copyInheritanceSrc = fieldBinding.copyInheritanceSrc;
    else
        fieldDeclaration.copyInheritanceSrc = fieldBinding;

    AnnotationBinding[] annotBindings = fieldBinding.getAnnotations();
    if (annotBindings != Binding.NO_ANNOTATIONS) {
        ProblemReporter pr = fieldBinding.isStatic() ? roleDeclaration.staticInitializerScope.problemReporter()
                : roleDeclaration.initializerScope.problemReporter();
        Annotation[] annotDecls = new Annotation[annotBindings.length];
        boolean hasAnnotationError = false;
        for (int i = 0; i < annotBindings.length; i++) {
            AnnotationBinding binding = annotBindings[i];
            ElementValuePair[] elementValuePairs = binding.getElementValuePairs();
            char[][] annotTypeName = binding.getAnnotationType().compoundName;
            if (elementValuePairs == Binding.NO_ELEMENT_VALUE_PAIRS) {
                annotDecls[i] = gen.markerAnnotation(annotTypeName);
            } else {
                int numPairs = elementValuePairs.length;
                char[][] names = new char[numPairs][];
                Expression[] values = new Expression[numPairs];
                for (int j = 0; j < names.length; j++) {
                    names[j] = elementValuePairs[j].getName();
                    Object elementValue = elementValuePairs[j].getValue();
                    values[j] = annotationValues(elementValue, gen, pr);
                }
                if (values.length == 0 || values[0] == null) {
                    pr.unexpectedAnnotationStructure(annotTypeName, fieldBinding.name, gen.sourceStart,
                            gen.sourceEnd);
                    hasAnnotationError = true;
                } else if (numPairs == 1 && CharOperation.equals(names[0], TypeConstants.VALUE)) {
                    annotDecls[i] = gen.singleMemberAnnotation(annotTypeName, values[0]);
                } else {
                    annotDecls[i] = gen.normalAnnotation(annotTypeName, names, values);
                }
            }
        }
        if (!hasAnnotationError)
            fieldDeclaration.annotations = annotDecls;
    }

    //field initializations are copied using a RoleInitializationMethod
    return fieldDeclaration;
}