public PrimitiveRef withDimensions(int dimensions) { return new PrimitiveRefBuilder(this).withDimensions(dimensions).build(); }
public TypeRef visitPrimitive(PrimitiveType t, Integer dimension) { return new PrimitiveRefBuilder() .withName(t.toString()) .withDimensions(dimension) .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."); } } };
Class c = (Class) item; if (c.isPrimitive()) { return new PrimitiveRefBuilder().withName(c.getName()).build(); } else { return new ClassRefBuilder()
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 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 + "]."); } };