public ClassRef withDimensions(int dimensions) { return new ClassRefBuilder(this).withDimensions(dimensions).build(); }
public TypeRef visitDeclared(DeclaredType t, Integer dimension) { List<TypeRef> arguments = new ArrayList<TypeRef>(); for (TypeMirror typeMirror : t.getTypeArguments()) { TypeRef arg = typeMirror.accept(this, dimension); if (arg != null) { arguments.add(arg); } } TypeDef typeDef = new TypeDefElementVisitor().visit(t.asElement()).build(); return new ClassRefBuilder() .withDefinition(typeDef) .withDimensions(dimension) .withArguments(arguments) .build(); }
public TypeRef apply(TypeRef type) { if (type instanceof ClassRef) { return new ClassRefBuilder((ClassRef) type) .withDimensions(1) .build(); } else if (type instanceof PrimitiveRef) { return new PrimitiveRefBuilder((PrimitiveRef) type) .withDimensions(1) .build(); } else if (type instanceof TypeParamRef) { return new TypeParamRefBuilder((TypeParamRef) type) .withDimensions(1) .build(); } else { throw new IllegalStateException("A property type should be either class, primitive or param referemce."); } } };
public TypeRef apply(TypeRef item) { if (item instanceof PrimitiveRef) { return new PrimitiveRefBuilder((PrimitiveRef) item).withDimensions(0).build(); } else if (item instanceof ClassRef) { return new ClassRefBuilder((ClassRef) item).withDimensions(0).build(); } else if (item instanceof TypeParamRef) { return new TypeParamRefBuilder((TypeParamRef) item).withDimensions(0).build(); } else { return item; } } };
public ClassRefBuilder(ClassRef instance, Boolean validationEnabled) { this.fluent = this; this.withDefinition(instance.getDefinition()); this.withFullyQualifiedName(instance.getFullyQualifiedName()); this.withDimensions(instance.getDimensions()); this.withArguments(instance.getArguments()); this.withAttributes(instance.getAttributes()); this.validationEnabled = validationEnabled; }
.withDimensions(ref.getDimensions()) .build();
if (intermediateRef instanceof ClassRef) { arguments.add(new ClassRefBuilder((ClassRef) intermediateRef) .withDimensions(dimensions) .build()); } else if (intermediateRef instanceof TypeParamRef) {
public TypeRef apply(Type type) { if (type instanceof VoidType) { return new VoidRef(); } else if (type instanceof WildcardType) { return new WildcardRef(); } else if (type instanceof ReferenceType) { ReferenceType referenceType = (ReferenceType) type; int dimensions = referenceType.getArrayCount(); TypeRef typeRef = TYPEREF.apply(referenceType.getType()); if (dimensions == 0) { return typeRef; } else if (typeRef instanceof ClassRef) { return new ClassRefBuilder((ClassRef)typeRef).withDimensions(dimensions).build(); } else if (typeRef instanceof PrimitiveRef) { return new PrimitiveRefBuilder((PrimitiveRef)typeRef).withDimensions(dimensions).build(); } else if (typeRef instanceof TypeParamRef) { return new TypeParamRefBuilder((TypeParamRef)typeRef).withDimensions(dimensions).build(); } } else if (type instanceof PrimitiveType) { PrimitiveType primitiveType = (PrimitiveType) type; return new PrimitiveRefBuilder().withName(primitiveType.getType().name()).build(); } else if (type instanceof ClassOrInterfaceType) { return CLASS_OR_TYPEPARAM_REF.apply((ClassOrInterfaceType) type); } throw new IllegalArgumentException("Can't handle type:[" + type + "]."); } };