/** * Returns the Java type of the abstract adapter class generated for a corresponding {@code * protoType}. Returns null if {@code protoType} is not using a custom proto adapter. */ public @Nullable ClassName abstractAdapterName(ProtoType protoType) { TypeName profileJavaName = profile.getTarget(protoType); if (profileJavaName == null) return null; ClassName javaName = nameToJavaName.get(protoType); Type type = schema.getType(protoType); return type instanceof EnumType ? javaName.peerClass(javaName.simpleName() + "Adapter") : javaName.peerClass("Abstract" + javaName.simpleName() + "Adapter"); }
private ParameterizedTypeName rowTypeName(List<? extends OrmProperty> propertyList) { ClassName rowClassName = ClassName.get(Row.class).peerClass("Row" + propertyList.size()); ClassName[] columnClassNameArray = propertyList.stream() .sorted() .flatMap(OrmProperty::columnClassNameStream) .toArray(ClassName[]::new); return ParameterizedTypeName.get(rowClassName, columnClassNameArray); }
private ParameterizedTypeName rowTypeName(List<? extends OrmProperty> propertyList) { ClassName rowClassName = ClassName.get(Row.class).peerClass("Row" + propertyList.size()); ClassName[] columnClassNameArray = propertyList.stream() .sorted() .flatMap(OrmProperty::columnClassNameStream) .toArray(ClassName[]::new); return ParameterizedTypeName.get(rowClassName, columnClassNameArray); }
public ClassName superClassSuffix(String suffix) { String simpleName = superClass.simpleName(); return superClass.peerClass(simpleName + suffix); }
public ClassName superClassSuffix(String suffix) { String simpleName = superClass.simpleName(); return superClass.peerClass(simpleName + suffix); }
public ClassName superClassSuffix(String suffix) { String simpleName = superClass.simpleName(); return superClass.peerClass(simpleName + suffix); }
public ClassName schemaClassName(String simpleName) { return className().peerClass(simpleName); }
public ClassName schemaClassName(String simpleName) { return className().peerClass(simpleName); }
public ClassName className() { return migrationVersion.className().peerClass(simpleName); }
public ClassName className() { return migrationVersion.className().peerClass(simpleName); }
/** * Returns the name of the generated class that contains the static {@code create} methods for an * annotation type. */ static ClassName getAnnotationCreatorClassName(TypeElement annotationType) { ClassName annotationTypeName = ClassName.get(annotationType); return annotationTypeName .topLevelClassName() .peerClass(classFileName(annotationTypeName) + "Creator"); }
public static ProtoTypeNaming of(TypeInfo typeInfo) { String elementSimpleName = classSimpleName(typeInfo); ClassName enclosingClassName = typeInfo.enclosingTypeInfo() .get() .className(); return new ProtoTypeNaming( elementSimpleName, enclosingClassName.peerClass(elementSimpleName), enclosingClassName.peerClass(elementSimpleName + "Proto")); }
/** * Returns the Java type of the abstract adapter class generated for a corresponding {@code * protoType}. Returns null if {@code protoType} is not using a custom proto adapter. */ public ClassName abstractAdapterName(ProtoType protoType) { TypeName profileJavaName = profile.getTarget(protoType); if (profileJavaName == null) { return null; } ClassName javaName = nameToJavaName.get(protoType); return javaName.peerClass("Abstract" + javaName.simpleName() + "Adapter"); }
private static ClassName siblingClassName(TypeElement typeElement, String suffix) { ClassName className = ClassName.get(typeElement); return className.topLevelClassName().peerClass(classFileName(className) + suffix); }
private ClassName superclassTypeNameRaw() { TypeInfo baseTypeInfo = typeInfo.interfaceTypeInfoAnnotatedWith(BaseType.class).get(); return baseTypeInfo.annotationInfo(BaseType.class) .flatMap(ann -> ann.stringValue("className")) .map(s -> baseTypeInfo.className().peerClass(s)) .get(); }
/** The name of the class that hosts the module constructor proxy method. */ static ClassName constructorProxyTypeName(TypeElement moduleElement) { ModuleKind.checkIsModule(moduleElement); ClassName moduleClassName = ClassName.get(moduleElement); return moduleClassName .topLevelClassName() .peerClass(SourceFiles.classFileName(moduleClassName) + "_Proxy"); }
@Override public ClassName builderClass() { return superClass().peerClass(superClass().simpleName() + "Builder"); }
@Override public ClassName builderInterface() { return superClass().peerClass(superClass().simpleName() + "BuilderDsl"); }
/** * Returns the name of the creator class for this component. It will be a sibling of this * generated class unless this is a top-level component, in which case it will be nested. */ ClassName getCreatorName() { return isNested() ? name.peerClass(subcomponentNames.get(componentDescriptor()) + "Builder") : name.nestedClass("Builder"); }
public static RecordInfo code(PojoInfo pojoInfo) { Naming naming = pojoInfo.naming(); ClassName className = naming.superClass(); ClassName classNameParser = className.peerClass(className.simpleName() + "Parser"); TypeName typeNameMatcherInterface = ClassName.get(br.com.objectos.way.io.flat.RecordMatcher.class); TypeName typeNameParserInterface = ParameterizedTypeName.get(ClassName.get(RecordParser.class), className); List<FieldMethod> fieldMethodList; fieldMethodList = FieldMethod.fieldMethodListOf(pojoInfo); return new RecordInfo( pojoInfo.naming().superClassTypeName(), pojoInfo.naming().builderClassName(), classNameParser, typeNameMatcherInterface, typeNameParserInterface, fieldMethodList); }