/** * Generates something like * <code>private static final AtomicLongFieldUpdater<MpmcAtomicArrayQueueProducerIndexField> P_INDEX_UPDATER = AtomicLongFieldUpdater.newUpdater(MpmcAtomicArrayQueueProducerIndexField.class, "producerIndex");</code> * * @param type * @param name * @param initializer * @param modifiers * @return */ private static FieldDeclaration fieldDeclarationWithInitialiser(Type type, String name, Expression initializer, Modifier... modifiers) { FieldDeclaration fieldDeclaration = new FieldDeclaration(); VariableDeclarator variable = new VariableDeclarator(type, name, initializer); fieldDeclaration.getVariables().add(variable); EnumSet<Modifier> modifierSet = EnumSet.copyOf(Arrays.asList(modifiers)); fieldDeclaration.setModifiers(modifierSet); return fieldDeclaration; }
/** * Generates something like * <code>private static final AtomicLongFieldUpdater<MpmcAtomicArrayQueueProducerIndexField> P_INDEX_UPDATER = AtomicLongFieldUpdater.newUpdater(MpmcAtomicArrayQueueProducerIndexField.class, "producerIndex");</code> * * @param type * @param name * @param initializer * @param modifiers * @return */ private static FieldDeclaration fieldDeclarationWithInitialiser(Type type, String name, Expression initializer, Modifier... modifiers) { FieldDeclaration fieldDeclaration = new FieldDeclaration(); VariableDeclarator variable = new VariableDeclarator(type, name, initializer); fieldDeclaration.getVariables().add(variable); EnumSet<Modifier> modifierSet = EnumSet.copyOf(Arrays.asList(modifiers)); fieldDeclaration.setModifiers(modifierSet); return fieldDeclaration; }
for (VariableDeclarator variable : field.getVariables()) { String variableName = variable.getNameAsString();
for (VariableDeclarator variable : field.getVariables()) { String variableName = variable.getNameAsString();
@Override public boolean doIsEquals(FieldDeclaration first, FieldDeclaration second) { if(!isSmallerHasEqualsInBigger(first.getVariables(),second.getVariables(),false)) return false; return true; } }
@Override public List<ResolvedValueDeclaration> getSymbolDeclarations() { List<ResolvedValueDeclaration> symbols = new LinkedList<>(); for (VariableDeclarator v : wrappedNode.getVariables()) { symbols.add(JavaParserSymbolDeclaration.field(v, typeSolver)); } return symbols; }
@Override public List<ResolvedValueDeclaration> getSymbolDeclarations() { List<ResolvedValueDeclaration> symbols = new LinkedList<>(); for (VariableDeclarator v : wrappedNode.getVariables()) { symbols.add(JavaParserSymbolDeclaration.field(v, typeSolver)); } return symbols; }
@Override public List<ResolvedValueDeclaration> getSymbolDeclarations() { List<ResolvedValueDeclaration> symbols = new LinkedList<>(); for (VariableDeclarator v : wrappedNode.getVariables()) { symbols.add(JavaParserSymbolDeclaration.field(v, typeSolver)); } return symbols; }
@Override public ResolvedType visit(FieldDeclaration node, Boolean solveLambdas) { if (node.getVariables().size() == 1) { return node.getVariables().get(0).accept(this, solveLambdas); } throw new IllegalArgumentException("Cannot resolve the type of a field with multiple variable declarations. Pick one"); } }
@Override public ResolvedType visit(FieldDeclaration node, Boolean solveLambdas) { if (node.getVariables().size() == 1) { return node.getVariables().get(0).accept(this, solveLambdas); } else { throw new IllegalArgumentException("Cannot resolve the type of a field with multiple variable declarations. Pick one"); } } }
@Override public ResolvedType visit(FieldDeclaration node, Boolean solveLambdas) { if (node.getVariables().size() == 1) { return node.getVariables().get(0).accept(this, solveLambdas); } else { throw new IllegalArgumentException("Cannot resolve the type of a field with multiple variable declarations. Pick one"); } } }
private Class<?> getType(final FieldDeclaration fd) { final String type = fd.getVariables().get(0).getType().asString(); final List<String> classNames = new ArrayList<>(); if (type.contains(".")) { classNames.add(type.trim()); } else { this.getNativeJavaPackages().forEach(p -> classNames.add(p + type.trim())); } final List<Class<?>> classes = this.loadClasses(classNames) .stream() .collect(Collectors.toList()); return classes.isEmpty() ? Object.class : classes.get(0); }
private void addFieldVariables(@Nullable Iterable<? extends BodyDeclaration> declarations, @Nonnull Set<String> variables) { for (FieldDeclaration fieldDeclaration : emptyIfNull(declarations). filter(FieldDeclaration.class).filter(not(constants()))) { for (VariableDeclarator variableDeclarator : fieldDeclaration.getVariables()) { variables.add(variableDeclarator.getId().getName()); } } }
public static VariableDeclarator demandField(ClassOrInterfaceDeclaration cd, String name) { for (BodyDeclaration<?> bd : cd.getMembers()) { if (bd instanceof FieldDeclaration) { FieldDeclaration fd = (FieldDeclaration) bd; for (VariableDeclarator vd : fd.getVariables()) { if (vd.getName().getId().equals(name)) { return vd; } } } } throw new IllegalStateException("No field with given name"); }
public static VariableDeclarator demandField(ClassOrInterfaceDeclaration cd, String name) { for (BodyDeclaration<?> bd : cd.getMembers()) { if (bd instanceof FieldDeclaration) { FieldDeclaration fd = (FieldDeclaration) bd; for (VariableDeclarator vd : fd.getVariables()) { if (vd.getName().getId().equals(name)) { return vd; } } } } throw new IllegalStateException("No field with given name"); }
@Override public List<ResolvedFieldDeclaration> getAllFields() { List<ResolvedFieldDeclaration> fields = javaParserTypeAdapter.getFieldsForDeclaredVariables(); this.getAncestors().forEach(a -> fields.addAll(a.getAllFieldsVisibleToInheritors())); this.wrappedNode.getMembers().stream().filter(m -> m instanceof FieldDeclaration).forEach(m -> { FieldDeclaration fd = (FieldDeclaration)m; fd.getVariables().forEach(v -> fields.add(new JavaParserFieldDeclaration(v, typeSolver))); }); return fields; }
public String getName() { if (declaration instanceof MethodDeclaration) { return ((MethodDeclaration) declaration).getNameAsString(); } else if (declaration instanceof FieldDeclaration) { NodeList<VariableDeclarator> vars = ((FieldDeclaration) declaration).getVariables(); if (vars.size() == 1) { return vars.get(0).getNameAsString(); } } return null; } }
public void index(FieldDeclaration fieldDeclaration, int typeId) { List<VariableDeclarator> variables = fieldDeclaration.getVariables(); for (VariableDeclarator variable : variables) { String name = variable.getNameAsString(); fieldDao.save(new Field(name, fieldDeclaration.getElementType().asString(), fieldDeclaration.isPublic(), fieldDeclaration.isStatic(), fieldDeclaration.isFinal(), fieldDeclaration.isTransient(), typeId)); } }
@Override public FieldDeclaration doMerge(FieldDeclaration first, FieldDeclaration second) { FieldDeclaration fd = new FieldDeclaration(); fd.setJavaDoc(mergeSingle(first.getJavaDoc(),second.getJavaDoc())); fd.setType(mergeSingle(first.getType(),second.getType())); fd.setModifiers(mergeModifiers(first.getModifiers(),second.getModifiers())); fd.setAnnotations(mergeCollections(first.getAnnotations(),second.getAnnotations())); fd.setVariables(mergeListNoDuplicate(first.getVariables(),second.getVariables(),true)); return fd; }
@Test public void verifyAnArrayAccessExprTypeIsCalculatedProperly() { String code = "class A { String[] arrSQL; String toExamine = arrSQL[1]; }"; FieldDeclaration field = JavaParser.parse(code).getClassByName("A").get().getFieldByName("toExamine").get(); ResolvedType type = JavaParserFacade.get(new ReflectionTypeSolver()).getType(field.getVariables().get(0).getInitializer().get()); assertEquals(true, type.isReferenceType()); assertEquals("java.lang.String", type.asReferenceType().getQualifiedName()); } }