public static String getPrefix(Iterable<String> items) { return getPrefix(items, new Function<String, String>() { public String apply(String item) { return item; } }); }
private static final String classNameOf(Set<JavaType> types) { final Function<JavaType, String> toString = new Function<JavaType, String>() { @Override public String apply(JavaType item) { return stripSuffix(item.getClassName()); } }; final String prefix = StringUtils.getPrefix(types, toString); return toInterfaceName(prefix + StringUtils.join(types, new Function<JavaType, String>() { @Override public String apply(JavaType item) { return stripSuffix(item.getClassName()).substring(prefix.length()); } }, "Or")); }
public String apply(Collection<TypeDef> types) { final Function<TypeDef, String> toString = new Function<TypeDef, String>() { public String apply(TypeDef item) { return stripSuffix(item.getName()); } }; final String prefix = StringUtils.getPrefix(types, toString); return toInterfaceName(prefix + StringUtils.compact(StringUtils.join(types, new Function<TypeDef, String>() { public String apply(TypeDef item) { String str = stripPrefix(stripSuffix(item.getName())); if (str.length() > prefix.length()) { return str.substring(prefix.length()); } else { return str; } } }, ""))); } };
public String apply(Collection<ClassRef> types) { final Function<ClassRef, String> toString = new Function<ClassRef, String>() { public String apply(ClassRef item) { return stripSuffix(item.getDefinition().getName()); } }; final String prefix = StringUtils.getPrefix(types, toString); return toInterfaceName(prefix + StringUtils.compact(StringUtils.join(types, new Function<ClassRef, String>() { public String apply(ClassRef item) { String str = stripPrefix(stripSuffix(item.getDefinition().getName())); if (str.length() > prefix.length()) { return str.substring(prefix.length()); } else { return str; } } }, ""))); } };