private static boolean isPackagePrivateAndInDiffPackage( VarSymbol parentVariable, ClassTree currClass) { if (!parentVariable.getModifiers().contains(Modifier.PRIVATE) && !parentVariable.getModifiers().contains(Modifier.PROTECTED) && !parentVariable.getModifiers().contains(Modifier.PUBLIC)) { // package-private variable if (!parentVariable.packge().equals(ASTHelpers.getSymbol(currClass).packge())) { return true; } } return false; } }
return false; if (sym.getModifiers().contains(Modifier.FINAL)) {
.filter(mem -> (mem instanceof VarSymbol)) .map(mem -> (VarSymbol) mem) .filter(mem -> (!mem.isPrivate() && !mem.getModifiers().contains(Modifier.STATIC))) .collect(Collectors.toMap(Symbol::getSimpleName, mem -> mem));
if (sym.isStatic() && sym.getModifiers().contains(Modifier.FINAL)) { return checkImmutable(tree, state, sym, name);
return false; if (sym.getModifiers().contains(Modifier.FINAL)) {
.filter(mem -> (mem instanceof VarSymbol)) .map(mem -> (VarSymbol) mem) .filter(mem -> (!mem.isPrivate() && !mem.getModifiers().contains(Modifier.STATIC))) .collect(Collectors.toMap(Symbol::getSimpleName, mem -> mem));
@Override public Description matchVariable(VariableTree tree, VisitorState state) { if (tree.getInitializer() == null) { return NO_MATCH; } VarSymbol sym = ASTHelpers.getSymbol(tree); if (sym == null || sym.getKind() != ElementKind.FIELD) { return NO_MATCH; } String name = sym.getSimpleName().toString(); if (!(sym.isStatic() && sym.getModifiers().contains(Modifier.FINAL))) { return NO_MATCH; } if (!name.equals(name.toUpperCase())) { return NO_MATCH; } if (!isSubtype(getType(tree), state.getTypeFromString("java.text.DateFormat"), state)) { return NO_MATCH; } return buildDescription(tree) .addFix(threadLocalFix(tree, state, sym)) .addFix( renameVariable( tree, CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, tree.getName().toString()), state)) .build(); }
/** * Report a {@link Description} if a field used in double-checked locking is not volatile. * * <p>If the AST node for the field declaration can be located in the current compilation unit, * suggest adding the volatile modifier. */ private Description handleField(IfTree outerIf, VarSymbol sym, VisitorState state) { if (sym.getModifiers().contains(Modifier.VOLATILE)) { return Description.NO_MATCH; } if (isImmutable(sym.type, state)) { return Description.NO_MATCH; } Description.Builder builder = buildDescription(outerIf); JCTree fieldDecl = findFieldDeclaration(state.getPath(), sym); if (fieldDecl != null) { builder.addFix(SuggestedFixes.addModifiers(fieldDecl, state, Modifier.VOLATILE)); } return builder.build(); }
private void addField( SrcClass srcClass, Symbol sym ) { Symbol.VarSymbol field = (Symbol.VarSymbol)sym; SrcField srcField = new SrcField( field.name.toString(), makeSrcType( field.type, sym, TargetType.FIELD, -1 ) ); if( sym.isEnum() ) { srcField.enumConst(); srcClass.addEnumConst( srcField ); } else { srcField.modifiers( field.getModifiers() ); if( Modifier.isFinal( (int)srcField.getModifiers() ) ) { srcField.initializer( new SrcRawExpression( getValueForType( sym.type ) ) ); } srcClass.addField( srcField ); } }
private boolean isFinal(Tree tree) { return ASTHelpers.getSymbol((VariableTree) tree).getModifiers().contains(Modifier.FINAL); } }
private static boolean isPackagePrivateAndInDiffPackage( VarSymbol parentVariable, ClassTree currClass) { if (!parentVariable.getModifiers().contains(Modifier.PRIVATE) && !parentVariable.getModifiers().contains(Modifier.PROTECTED) && !parentVariable.getModifiers().contains(Modifier.PUBLIC)) { // package-private variable if (!parentVariable.packge().equals(ASTHelpers.getSymbol(currClass).packge())) { return true; } } return false; } }
name = getIdentifier(varSym); if (!varSym.getModifiers().contains(Modifier.STATIC)) { printInnerClassAccess(varSym.name.toString(), ElementKind.FIELD); } else {
if(def instanceof JCVariableDecl) { JCVariableDecl var = (JCVariableDecl) def; if (var.sym.getModifiers() != null && var.sym.getModifiers().contains(Modifier.PUBLIC) && var.sym.getModifiers().contains(Modifier.STATIC)) { commentLines.add("@property {" + getMappedDocType(context, var.getType(), var.getType().type) + "} " + var.getName().toString());
constant = symbol.isStatic() && symbol.getModifiers().contains(Modifier.FINAL) && symbol.getKind() == ElementKind.FIELD;
Set<Modifier> modifiers = var.getModifiers();
return Violation.absent(); if (!var.getModifiers().contains(Modifier.FINAL) && !ASTHelpers.hasAnnotation(var, LazyInit.class, state)) {
@Override public Description matchVariable(VariableTree tree, VisitorState state) { if (tree.getInitializer() == null) { return NO_MATCH; } VarSymbol sym = ASTHelpers.getSymbol(tree); if (sym == null || sym.getKind() != ElementKind.FIELD) { return NO_MATCH; } String name = sym.getSimpleName().toString(); if (!(sym.isStatic() && sym.getModifiers().contains(Modifier.FINAL))) { return NO_MATCH; } if (!name.equals(Ascii.toUpperCase(name))) { return NO_MATCH; } if (!isSubtype(getType(tree), state.getTypeFromString("java.text.DateFormat"), state)) { return NO_MATCH; } SuggestedFix rename = renameVariable( tree, CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, tree.getName().toString()), state); return buildDescription(tree) .addFix(threadLocalFix(tree, state, sym, rename)) .addFix(rename) .build(); }
if (sym.isStatic() && sym.getModifiers().contains(Modifier.FINAL)) { return checkImmutable(tree, state, sym, name);
/** * Report a {@link Description} if a field used in double-checked locking is not volatile. * * <p>If the AST node for the field declaration can be located in the current compilation unit, * suggest adding the volatile modifier. */ private Description handleField(IfTree outerIf, VarSymbol sym, VisitorState state) { if (sym.getModifiers().contains(Modifier.VOLATILE)) { return Description.NO_MATCH; } if (isImmutable(sym.type, state)) { return Description.NO_MATCH; } Description.Builder builder = buildDescription(outerIf); JCTree fieldDecl = findFieldDeclaration(state.getPath(), sym); if (fieldDecl != null) { builder.addFix(SuggestedFixes.addModifiers(fieldDecl, state, Modifier.VOLATILE)); } return builder.build(); }
private boolean isFinal(Tree tree) { return ASTHelpers.getSymbol((VariableTree) tree).getModifiers().contains(Modifier.FINAL); } }