/** * Checks whether a value can be assigned to a field. * A value can be assigned to a final field only in constructor block. If there is a method * block, value assignment can be performed only to non final field. * @param ast an identifier token. * @return true if a value can be assigned to a field. */ private boolean canAssignValueToClassField(DetailAST ast) { final AbstractFrame fieldUsageFrame = findFrame(ast, false); final boolean fieldUsageInConstructor = isInsideConstructorFrame(fieldUsageFrame); final AbstractFrame declarationFrame = findFrame(ast, true); final boolean finalField = ((ClassFrame) declarationFrame).hasFinalField(ast); return fieldUsageInConstructor || !finalField; }
/** * Checks whether a value can be assigned to a field. * A value can be assigned to a final field only in constructor block. If there is a method * block, value assignment can be performed only to non final field. * @param ast an identifier token. * @return true if a value can be assigned to a field. */ private boolean canAssignValueToClassField(DetailAST ast) { final AbstractFrame fieldUsageFrame = findFrame(ast, false); final boolean fieldUsageInConstructor = isInsideConstructorFrame(fieldUsageFrame); final AbstractFrame declarationFrame = findFrame(ast, true); final boolean finalField = ((ClassFrame) declarationFrame).hasFinalField(ast); return fieldUsageInConstructor || !finalField; }