@SuppressWarnings("unchecked") @Override public Import addImport(final String className) { String strippedClassName = Types.stripGenerics(Types.stripArray(className)); if (Types.isGeneric(className)) { for (String genericPart : Types.splitGenerics(className)) { if (Types.isQualified(genericPart)) addImport(genericPart); } } Import imprt; if (!hasImport(strippedClassName) && validImport(strippedClassName)) { imprt = new ImportImpl(this).setName(strippedClassName); unit.imports().add(imprt.getInternal()); } else if (hasImport(strippedClassName)) { imprt = getImport(strippedClassName); } else { imprt = null; } return imprt; }
@Override public Import addImport(final String className) { String strippedClassName = Types.stripGenerics(Types.stripArray(className)); if (Types.isGeneric(className)) { for (String genericPart : Types.splitGenerics(className)) { if (Types.isQualified(genericPart)) addImport(genericPart); } } Import imprt; if (!hasImport(strippedClassName) && validImport(strippedClassName)) { imprt = new ImportImpl(this).setName(strippedClassName); unit.imports().add(imprt.getInternal()); } else if (hasImport(strippedClassName)) { imprt = getImport(strippedClassName); } else { imprt = null; } return imprt; }
@Override public boolean requiresImport(final String type) { boolean requiresImport = false; String resultType = type; if (Types.isArray(resultType)) { resultType = Types.stripArray(resultType); } if (Types.isGeneric(resultType)) { for (String genericPart : Types.splitGenerics(resultType)) { requiresImport |= requiresImport(genericPart); } resultType = Types.stripGenerics(resultType); } requiresImport |= !(!validImport(resultType) || hasImport(resultType) || Types.isJavaLang(resultType) || Strings.areEqual(getPackage(), Types.getPackage(resultType))); return requiresImport; }
@Override public MethodSource<O> setReturnType(final String typeName) { String simpleName = Types.toSimpleName(typeName); O origin = getOrigin(); if (!hasTypeVariable(typeName) && !Strings.areEqual(typeName, simpleName) && origin.requiresImport(typeName)) { origin.addImport(typeName); } for (String genericType : Types.splitGenerics(typeName)) { if (!hasTypeVariable(genericType) && origin.requiresImport(genericType)) { origin.addImport(genericType); } } String stub = "public class Stub { public " + simpleName + " method() {} }"; JavaClassSource temp = (JavaClassSource) Roaster.parse(stub); List<MethodSource<JavaClassSource>> methods = temp.getMethods(); org.eclipse.jdt.core.dom.Type returnType = ((MethodDeclaration) methods.get(0).getInternal()).getReturnType2(); returnType = (org.eclipse.jdt.core.dom.Type) ASTNode.copySubtree(method.getAST(), returnType); method.setReturnType2(returnType); return this; }
@Override public MethodSource<O> setReturnType(final String typeName) { String simpleName = Types.toSimpleName(typeName); O origin = getOrigin(); if (!hasTypeVariable(typeName) && !Strings.areEqual(typeName, simpleName) && origin.requiresImport(typeName)) { origin.addImport(typeName); } for (String genericType : Types.splitGenerics(typeName)) { if (!hasTypeVariable(genericType) && origin.requiresImport(genericType)) { origin.addImport(genericType); } } String stub = "public class Stub { public " + simpleName + " method() {} }"; JavaClassSource temp = (JavaClassSource) Roaster.parse(stub); List<MethodSource<JavaClassSource>> methods = temp.getMethods(); org.eclipse.jdt.core.dom.Type returnType = ((MethodDeclaration) methods.get(0).getInternal()).getReturnType2(); returnType = (org.eclipse.jdt.core.dom.Type) ASTNode.copySubtree(method.getAST(), returnType); method.setReturnType2(returnType); return this; }
@Override public boolean requiresImport(final String type) { boolean requiresImport = false; String resultType = type; if (Types.isArray(resultType)) { resultType = Types.stripArray(resultType); } if (Types.isGeneric(resultType)) { for (String genericPart : Types.splitGenerics(resultType)) { requiresImport |= requiresImport(genericPart); } resultType = Types.stripGenerics(resultType); } requiresImport |= !(!validImport(resultType) || hasImport(resultType) || Types.isJavaLang(resultType) || Strings.areEqual(getPackage(), Types.getPackage(resultType))); return requiresImport; }
for (String genericType : Types.splitGenerics(type))
addImport(type); for (String typeP : Types.splitGenerics(type))
addImport(type); for (String typeP : Types.splitGenerics(type))
for (String genericType : Types.splitGenerics(type))