List of usage examples for org.eclipse.jdt.internal.compiler.lookup ExtraCompilerModifiers AccBlankFinal
int AccBlankFinal
To view the source code for org.eclipse.jdt.internal.compiler.lookup ExtraCompilerModifiers AccBlankFinal.
Click Source Link
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; }