@Override public Void visitConstructorDeclaration(ConstructorDeclaration node) { visit(node.getExternalKeyword(), " "); visit(node.getConstKeyword(), " "); visit(node.getFactoryKeyword(), " "); visit(node.getReturnType()); visit(".", node.getName()); visit(node.getParameters()); visitList(" : ", node.getInitializers(), ", "); visit(" = ", node.getRedirectedConstructor()); visit(" ", node.getBody()); return null; }
@Override public List<Parameter> getParameters() { return declaration .getParameters() .stream() .map( (parameter) -> new Parameter( getContext().resolve(parameter.getType()), parameter.getId().getName())) .collect(Collectors.toList()); }
/** * The resource parameters for a root resource include the constructor params. * * @param delegate The declaration. * @return The resource params. */ @Override protected List<ResourceParameter> getResourceParameters(TypeDeclaration delegate) { List<ResourceParameter> resourceParams = super.getResourceParameters(delegate); if (getDelegate() == delegate && delegate instanceof ClassDeclaration) { // root resources also include constructor params. Collection<ConstructorDeclaration> constructors = ((ClassDeclaration) delegate).getConstructors(); ConstructorDeclaration chosen = null; CONSTRUCTOR_LOOP: for (ConstructorDeclaration constructor : constructors) { // the one with the most params is the chosen one. if (chosen == null || constructor.getParameters().size() > chosen.getParameters().size()) { // Has more constructor parameters. See if they're all Jersey-provided. for (ParameterDeclaration param : constructor.getParameters()) { if (!ResourceParameter.isResourceParameter(param)) { continue CONSTRUCTOR_LOOP; } } chosen = constructor; } } if (chosen != null) { chosen = DeclarationDecorator.decorate(chosen); for (ParameterDeclaration param : chosen.getParameters()) { resourceParams.add(new ResourceParameter(param)); } } } return resourceParams; }
public void visit(ConstructorDeclaration n, Object arg) { if (n.getJavaDoc() != null) { n.getJavaDoc().accept(this, arg); } printMemberAnnotations(n.getAnnotations(), arg); printModifiers(n.getModifiers()); printTypeParameters(n.getTypeParameters(), arg); if (n.getTypeParameters() != null) {} if (n.getParameters() != null) { for (Iterator<Parameter> i = n.getParameters().iterator(); i.hasNext(); ) { Parameter p = i.next(); p.accept(this, arg); if (i.hasNext()) {} } } if (n.getThrows() != null) { for (Iterator<NameExpr> i = n.getThrows().iterator(); i.hasNext(); ) { NameExpr name = i.next(); name.accept(this, arg); if (i.hasNext()) {} } } n.getBlock().accept(this, arg); }
@Override public List<Annotation> getAnnotations() { return SourceInfo.this.getAnnotationsInternal(declaration.getAnnotations()); }
@Override public void setAccessFlags(AccessFlags accessFlags) { declaration.setModifiers(accessFlags.access); }
@Override public AccessFlags getAccessFlags() { return new AccessFlags(declaration.getModifiers()); }