public TypeSpec.Builder build() {
TypeSpec.Builder tsb = TypeSpec.classBuilder(name);
for (Map.Entry<String, Class<?>> entry : nameTypeMap.entrySet()) {
FieldSpec field = FieldSpec.builder(
ClassName.get(entry.getValue()), entry.getKey(), Modifier.PRIVATE)
.build();
tsb.addField(field);
}
if (getter) {
tsb = GetterSpec.forType(tsb).build();
}
if (setter) {
tsb = SetterSpec.forType(tsb).build();
}
if (builder) {
tsb = BuilderSpec.forType(packageName, tsb).build();
}
return tsb;
}
java类com.squareup.javapoet.FieldSpec的实例源码
ValueClassSpec.java 文件源码
项目:javabard
阅读 23
收藏 0
点赞 0
评论 0
ObjectMapperInjector.java 文件源码
项目:GitHub
阅读 28
收藏 0
点赞 0
评论 0
private void addUsedTypeConverterMethods(TypeSpec.Builder builder) {
Set<TypeName> usedTypeConverters = new HashSet<>();
for (JsonFieldHolder holder : mJsonObjectHolder.fieldMap.values()) {
usedTypeConverters.addAll(holder.type.getUsedTypeConverters());
}
for (TypeName usedTypeConverter : usedTypeConverters) {
final String variableName = getTypeConverterVariableName(usedTypeConverter);
builder.addField(FieldSpec.builder(ParameterizedTypeName.get(ClassName.get(TypeConverter.class), usedTypeConverter), variableName)
.addModifiers(Modifier.PRIVATE, Modifier.STATIC)
.build()
);
builder.addMethod(MethodSpec.methodBuilder(getTypeConverterGetter(usedTypeConverter))
.addModifiers(Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL)
.returns(ParameterizedTypeName.get(ClassName.get(TypeConverter.class), usedTypeConverter))
.beginControlFlow("if ($L == null)", variableName)
.addStatement("$L = $T.typeConverterFor($T.class)", variableName, LoganSquare.class, usedTypeConverter)
.endControlFlow()
.addStatement("return $L", variableName)
.build()
);
}
}
ConstantGenerator.java 文件源码
项目:greycat
阅读 24
收藏 0
点赞 0
评论 0
private static JavaFile generateGlobalConstant(String packageName, Constant[] globalConstants) {
TypeSpec.Builder javaClass = TypeSpec.classBuilder(CONSTANT_CLASS_NAME);
javaClass.addModifiers(PUBLIC, FINAL);
for (Constant constant : globalConstants) {
String value = constant.value();
if (constant.type().equals("Task") && value != null) {
value = "greycat.Tasks.newTask().parse(\"" + value.replaceAll("\"", "'").trim() + "\",null);";
} else if (constant.type().equals("String") && value != null) {
value = "\""+value+"\"";
}
FieldSpec.Builder field = FieldSpec.builder(clazz(constant.type()), constant.name())
.addModifiers(PUBLIC, STATIC);
if (value != null) {
field.addModifiers(FINAL).initializer(value);
}
javaClass.addField(field.build());
}
return JavaFile.builder(packageName, javaClass.build()).build();
}
BuilderGenerator.java 文件源码
项目:KiiAnnotation
阅读 27
收藏 0
点赞 0
评论 0
public static MethodSpec builderBuild(ClassName className, List<MethodSpec> methodSpecList, List<FieldSpec> fieldSpecList) {
String name = className.simpleName();
CodeBlock.Builder codeBlock = CodeBlock.builder();
for (int i = 0; i < methodSpecList.size(); i++) {
codeBlock.add("$N.$N(this.$N);\n", name.toLowerCase(), methodSpecList.get(i).name, fieldSpecList.get(i).name);
}
return MethodSpec
.methodBuilder("build")
.addModifiers(Modifier.PUBLIC)
.addStatement("$N $N = new $N()", name, name.toLowerCase(), name)
.addCode(codeBlock.build())
.returns(className)
.addStatement("return $N", name.toLowerCase())
.build();
}
AutoValueJsonExtension.java 文件源码
项目:auto-value-json
阅读 24
收藏 0
点赞 0
评论 0
private ImmutableMap<TypeMirror, FieldSpec> getTypeAdapters(List<JsonProperty> properties,
NameAllocator nameAllocator) {
Map<TypeMirror, FieldSpec> typeAdapters = new LinkedHashMap<>();
for (JsonProperty property : properties) {
if (property.typeAdapter != null && !typeAdapters.containsKey(property.typeAdapter)) {
ClassName typeName = (ClassName) TypeName.get(property.typeAdapter);
String name = CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_UNDERSCORE, typeName.simpleName());
name = nameAllocator.newName(name, typeName);
typeAdapters.put(property.typeAdapter,
FieldSpec.builder(typeName, NameAllocator.toJavaIdentifier(name), PRIVATE, STATIC,
FINAL).initializer("new $T()", typeName).build());
}
}
return ImmutableMap.copyOf(typeAdapters);
}
ExampleProcessor.java 文件源码
项目:r-parser
阅读 21
收藏 0
点赞 0
评论 0
@Override
public boolean process(Set<? extends TypeElement> set, RoundEnvironment roundEnvironment) {
parser.scan(roundEnvironment);
TypeSpec.Builder builder = TypeSpec.classBuilder("Testing")
.addModifiers(Modifier.PUBLIC, Modifier.FINAL);
for (Element element : roundEnvironment.getElementsAnnotatedWith(Parse.class))
builder.addField(FieldSpec.builder(String.class, element.getSimpleName().toString())
.addModifiers(Modifier.PRIVATE, Modifier.FINAL)
.initializer("$S", parser.parse("com.example.rparser", element.getAnnotation(Parse.class).value()))
.build());
JavaFile javaFile = JavaFile.builder("com.example.rparser", builder.build())
.build();
try {
javaFile.writeTo(filer);
} catch (IOException ignored) {
}
return false;
}
JacksonClassBuilder.java 文件源码
项目:json2java4idea
阅读 23
收藏 0
点赞 0
评论 0
@Nonnull
@Override
protected List<FieldSpec> buildFields() {
return getProperties().entrySet()
.stream()
.map(property -> {
final String name = property.getKey();
final TypeName type = property.getValue();
final String fieldName = fieldNamePolicy.convert(name, type);
return FieldSpec.builder(type, fieldName)
.addModifiers(Modifier.PRIVATE, Modifier.FINAL)
.build();
})
.collect(Collectors.toList());
}
ModelClassBuilder.java 文件源码
项目:json2java4idea
阅读 32
收藏 0
点赞 0
评论 0
@Nonnull
@Override
protected List<FieldSpec> buildFields() {
return getProperties()
.entrySet()
.stream()
.map(property -> {
final String name = property.getKey();
final TypeName type = property.getValue();
final String fieldName = fieldNamePolicy.convert(name, type);
return FieldSpec.builder(type, fieldName)
.addModifiers(Modifier.PRIVATE, Modifier.FINAL)
.build();
})
.collect(Collectors.toList());
}
AutoMappperProcessor.java 文件源码
项目:android-auto-mapper
阅读 29
收藏 0
点赞 0
评论 0
private ImmutableMap<TypeMirror, FieldSpec> getTypeAdapters(ImmutableList<Property> properties) {
Map<TypeMirror, FieldSpec> typeAdapters = new LinkedHashMap<>();
NameAllocator nameAllocator = new NameAllocator();
nameAllocator.newName("CREATOR");
for (Property property : properties) {
if (property.typeAdapter != null && !typeAdapters.containsKey(property.typeAdapter)) {
ClassName typeName = (ClassName) TypeName.get(property.typeAdapter);
String name = CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_UNDERSCORE, typeName.simpleName());
name = nameAllocator.newName(name, typeName);
typeAdapters.put(property.typeAdapter, FieldSpec.builder(
typeName, NameAllocator.toJavaIdentifier(name), PRIVATE, STATIC, FINAL)
.initializer("new $T()", typeName).build());
}
}
return ImmutableMap.copyOf(typeAdapters);
}
BuilderGenerator.java 文件源码
项目:KiiAnnotation
阅读 26
收藏 0
点赞 0
评论 0
public static MethodSpec builderGroupBuild(ClassName className, List<MethodSpec> methodSpecList, List<FieldSpec> fieldSpecList) {
String name = className.simpleName();
CodeBlock.Builder codeBlock = CodeBlock.builder();
for (int i = 0; i < methodSpecList.size(); i++) {
codeBlock.add("$N.$N(this.$N);\n", name.toLowerCase(), methodSpecList.get(i).name, fieldSpecList.get(i).name);
}
return MethodSpec
.methodBuilder("build")
.addModifiers(Modifier.PUBLIC)
.addStatement("$N $N = new $N($N)", name, name.toLowerCase(), name, "this.kiiGroup")
.addCode(codeBlock.build())
.returns(className)
.addStatement("return $N", name.toLowerCase())
.build();
}
TestCallerGenerator.java 文件源码
项目:Spyglass
阅读 24
收藏 0
点赞 0
评论 0
private void checkCompiles(final TypeSpec anonymousTypeSpec) {
// Anonymous class cannot be top level class, so nest the anonymous class as a field
final TypeSpec wrapperTypeSpec = TypeSpec
.classBuilder("Wrapper")
.addField(FieldSpec.builder(ClassName.get(Data.class), "target").build())
.addField(FieldSpec.builder(AndroidClassNames.CONTEXT, "context").build())
.addField(FieldSpec.builder(AndroidClassNames.TYPED_ARRAY, "attrs").build())
.addField(FieldSpec
.builder(TypeName.OBJECT, "o")
.initializer("$L", anonymousTypeSpec)
.build())
.build();
final JavaFile wrapperJavaFile = JavaFile
.builder("", wrapperTypeSpec)
.build();
final Set<JavaFile> filesToCompile = new HashSet<>();
filesToCompile.add(wrapperJavaFile);
filesToCompile.add(CallerDef.SRC_FILE);
CompileChecker.checkCompiles(filesToCompile);
}
JSOBuilderProcessor.java 文件源码
项目:jso-builder
阅读 26
收藏 0
点赞 0
评论 0
private TypeSpec createGlobalInterface() {
return TypeSpec.classBuilder("Global")
.addModifiers(Modifier.STATIC, Modifier.FINAL)
.addAnnotation(AnnotationSpec.builder(ClassNames.JSINTEROP_JSTYPE)
.addMember("isNative", "true")
.addMember("namespace", "$T.GLOBAL", ClassNames.JSINTEROP_JSPACKAGE)
.build())
.addFields(Stream.of(Object.class,
Boolean.TYPE, Byte.TYPE, Character.TYPE, Double.TYPE,
Float.TYPE, Integer.TYPE, Long.TYPE, Short.TYPE)
.map(type -> FieldSpec.builder(type, "UNDEFINED_" + type.getSimpleName().toUpperCase())
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.addAnnotation(AnnotationSpec.builder(ClassNames.JSINTEROP_JSPROPERTY)
.addMember("namespace", "$T.GLOBAL", ClassNames.JSINTEROP_JSPACKAGE)
.addMember("name", "$S", "undefined")
.build())
.build())
.collect(Collectors.toList()))
.build();
}
RouterTableGenerator.java 文件源码
项目:D-Router
阅读 28
收藏 0
点赞 0
评论 0
public void generateMappingTable(Filer filer) throws IOException {
if (routerTable.isEmpty()) {
return;
}
FieldSpec tableFieldSpec = FieldSpec.builder(Map.class, "routerTable")
.addModifiers(Modifier.PRIVATE)
.build();
MethodSpec initTableMethodSpec = getInitTableMethodSpec();
MethodSpec queryTableMethodSpec = getqueryTableMethodSpec();
MethodSpec constructorMethodSpec = getconstructorMethodSpec(tableFieldSpec, initTableMethodSpec);
MethodSpec addRouterMethodSpec = getAddRouterMethodSpec();
TypeSpec routerTableClassTypeSpec = getRouterTableClassTypeSpec(tableFieldSpec, initTableMethodSpec, queryTableMethodSpec, constructorMethodSpec, addRouterMethodSpec);
String packageName = Constants.GENERATED_PACKAGE_NAME;
JavaFile javaFile = JavaFile.builder(packageName, routerTableClassTypeSpec).build();
javaFile.writeTo(filer);
}
Parcelables.java 文件源码
项目:android-auto-mapper
阅读 25
收藏 0
点赞 0
评论 0
public static CodeBlock writeValueWithTypeAdapter(FieldSpec adapter, AutoMappperProcessor.Property p, ParameterSpec out) {
CodeBlock.Builder block = CodeBlock.builder();
if (p.isNullable()) {
block.beginControlFlow("if ($N == null)", p.fieldName);
block.addStatement("$N.writeInt(1)", out);
block.nextControlFlow("else");
block.addStatement("$N.writeInt(0)", out);
}
block.addStatement("$N.toParcel($N, $N)", adapter, p.fieldName, out);
if (p.isNullable()) {
block.endControlFlow();
}
return block.build();
}
ViewHolderFactoryGenerator.java 文件源码
项目:auto-adapter
阅读 21
收藏 0
点赞 0
评论 0
private void addFields(final TypeSpec.Builder classBuilder) {
FieldSpec.Builder viewIdsField = FieldSpec.builder(int[].class, "viewIds", Modifier.PRIVATE, Modifier.STATIC,
Modifier.FINAL);
StringBuilder sb = new StringBuilder();
sb.append("{");
for (Integer id : viewIds) {
sb.append(id).append(",");
}
if (viewIds.size() > 0) {
sb.deleteCharAt(sb.length() - 1);
}
sb.append("}");
viewIdsField.initializer(CodeBlock.of(sb.toString()));
classBuilder.addField(viewIdsField.build());
}
TemplateSubstitutionVisitor.java 文件源码
项目:java-code-templates
阅读 22
收藏 0
点赞 0
评论 0
@Override
public DeferredTypeSpecBuilder visitVariableAsField(final VariableElement element, final DeferredTypeSpecBuilder builder) {
final Modifier[] mods = modifiers(element);
final ImmutableList<AnnotationSpec> annotations = copyableAnnotations(element);
final boolean hasInit = Util.hasInitializer(element, trees);
switch(SubstitutionKind.fromVariableElement(element)) {
case SUBSTITUTABLE_FIELD:
final boolean isConstant = isConstant(element);
final boolean retainType = retainTypeFromTemplate(element);
final TypeName elementType = applyTypeSubstitution(element.asType());
final OutputTarget target = isConstant ? CONSTANTS : INSTANCE_FIELDS;
descriptorInventory.beanProperties().forEach(prop -> {
builder.wrapped().addField(FieldSpec
.builder(retainType ? elementType : descriptorInventory.applyTypeSubstitution(prop.typeName()),
isConstant ? prop.propertyName(UPPER_UNDERSCORE) : prop.propertyName(),
mods)
.addAnnotations(mergeAnnotations(descriptorInventory.annotations(prop, target), annotations))
.initializer(hasInit
? descriptorInventory.fieldInitializer(prop, retainType ? elementType : rawType(prop.typeName()))
: "")
.build());
});
break;
default:
builder.wrapped().addField(FieldSpec.builder(applyTypeSubstitution(element.asType()), simpleName(element), mods)
.addAnnotations(annotations)
.initializer(astSubstitutionProcessor.applySubstitutions(element))
.build());
}
return builder;
}
ShoebillProcessor.java 文件源码
项目:shoebill
阅读 29
收藏 0
点赞 0
评论 0
private FieldSpec getSingletonField(ClassName className) {
return FieldSpec
.builder(className, "singleton")
.addModifiers(Modifier.PRIVATE, Modifier.STATIC)
.initializer("new $L()", className.simpleName())
.build();
}
ShoebillProcessor.java 文件源码
项目:shoebill
阅读 32
收藏 0
点赞 0
评论 0
private MethodSpec getSingletonGetterMethod(ClassName className, FieldSpec singletonField) {
return MethodSpec
.methodBuilder("getInstance")
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.returns(className)
.addStatement("return $N", singletonField)
.build();
}
FinalRClassBuilder.java 文件源码
项目:GitHub
阅读 19
收藏 0
点赞 0
评论 0
private static void addResourceField(TypeSpec.Builder resourceType, VariableDeclarator variable,
ClassName annotation) {
String fieldName = variable.getId().getName();
String fieldValue = variable.getInit().toString();
FieldSpec.Builder fieldSpecBuilder = FieldSpec.builder(int.class, fieldName)
.addModifiers(PUBLIC, STATIC, FINAL)
.initializer(fieldValue);
if (annotation != null) {
fieldSpecBuilder.addAnnotation(annotation);
}
resourceType.addField(fieldSpecBuilder.build());
}
FieldSpecMatchers.java 文件源码
项目:raml-java-tools
阅读 23
收藏 0
点赞 0
评论 0
public static Matcher<FieldSpec> fieldName(Matcher<String> match) {
return new FeatureMatcher<FieldSpec, String>(match, "field name", "field name") {
@Override
protected String featureValueOf(FieldSpec actual) {
return actual.name;
}
};
}
FieldSpecMatchers.java 文件源码
项目:raml-java-tools
阅读 25
收藏 0
点赞 0
评论 0
public static Matcher<FieldSpec> initializer(Matcher<String> match) {
return new FeatureMatcher<FieldSpec, String>(match, "field initializer", "field initializer") {
@Override
protected String featureValueOf(FieldSpec actual) {
return actual.initializer.toString();
}
};
}
DataClassBuilderHandler.java 文件源码
项目:jdoocsoup
阅读 25
收藏 0
点赞 0
评论 0
private void parseDataFromDescriptor() {
if (descriptor.getElementKind() == ElementKind.CLASS) {
for (VariableElement var : descriptor.getFields()) {
if (checkIfFieldForProcessing(var)) {
continue;
}
DataClassBuilder.MethodDocs builderMethodDocsAnnotation = var.getAnnotation(DataClassBuilder.MethodDocs.class);
DataClassBuilder.HasDefault hasDefaultAnnotation = var.getAnnotation(DataClassBuilder.HasDefault.class);
FieldSpec.Builder fieldSpec = FieldSpec.builder(TypeName.get(var.asType()), var.getSimpleName().toString()).addModifiers(Modifier.PRIVATE);
if (hasDefaultAnnotation != null) {
fieldSpec.initializer(CodeBlock.of("$L", hasDefaultAnnotation.value()));
}
MethodSpec.Builder methodSpec = MethodSpec.methodBuilder(var.getSimpleName().toString()).addModifiers(Modifier.PUBLIC)
.addParameter(ParameterSpec.builder(TypeName.get(var.asType()), var.getSimpleName().toString()).build())
.addStatement("this.$N = $N", var.getSimpleName(), var.getSimpleName())
.addStatement("return this")
.returns(ClassName.get(descriptor.getPackageName(), descriptor.getDataClassBuilderName()));
if (builderMethodDocsAnnotation != null) {
methodSpec.addJavadoc(builderMethodDocsAnnotation.value() + "\n");
}
builderClassSpecBuilder.addField(fieldSpec.build());
builderClassSpecBuilder.addMethod(methodSpec.build());
}
}
builderClassSpecBuilder.addMethod(createBuilderMethodSpec());
builderClassSpecBuilder.addMethod(createBuildMethodSpec());
builderClassSpecBuilder.addMethod(createPrivateConstructor());
}
ObjectTypeHandlerPlugin.java 文件源码
项目:raml-java-tools
阅读 19
收藏 0
点赞 0
评论 0
@Override
public FieldSpec.Builder fieldBuilt(TypeDeclaration declaration, FieldSpec.Builder incoming, EventType eventType) {
for (ObjectTypeHandlerPlugin plugin : plugins) {
if ( incoming == null ) {
break;
}
incoming = plugin.fieldBuilt(declaration, incoming, eventType);
}
return incoming;
}
GetterSpec.java 文件源码
项目:javabard
阅读 21
收藏 0
点赞 0
评论 0
/**
*
* @param field
* @param namingConvention
* @return
*/
public static MethodSpec.Builder forField(FieldSpec field, String namingConvention) {
return MethodSpec.methodBuilder(makeName(namingConvention, field.name))
.addJavadoc(field.javadoc)
.addModifiers(Modifier.PUBLIC, Modifier.FINAL)
.returns(field.type)
.addStatement("return this.$N", field.name);
}
CommonClassGenerator.java 文件源码
项目:autoproxy
阅读 30
收藏 0
点赞 0
评论 0
/** {@inheritDoc} */
@Override
public boolean compose(@NonNull final Filer filer) {
try {
// compose class
final FieldSpec[] members = createMembers();
final TypeSpec.Builder classSpec = createClass(members);
// constructor and predicate
classSpec.addMethod(createConstructor().build());
classSpec.addMethod(createPredicate().build());
// auto-generate method proxy calls
createMethods(classSpec);
// if any after call annotation found in class/methods
if (afterCalls.get()) {
classSpec.addMethod(createAfterCall().build());
}
// save class to disk
final JavaFile javaFile = JavaFile.builder(type.packageName.toString(), classSpec.build()).build();
javaFile.writeTo(filer);
} catch (final Throwable ignored) {
ignored.printStackTrace(new PrintWriter(errors));
return false;
}
return true;
}
CommonClassGenerator.java 文件源码
项目:autoproxy
阅读 30
收藏 0
点赞 0
评论 0
@NonNull
protected FieldSpec[] createMembers() {
final List<FieldSpec> fields = new ArrayList<>();
final TypeName typeOfField = TypeName.get(type.element.asType());
final FieldSpec.Builder builder = FieldSpec.builder(typeOfField, "inner", Modifier.PROTECTED, Modifier.FINAL);
fields.add(builder.build());
return fields.toArray(new FieldSpec[0]);
}
SurgeonProcessor.java 文件源码
项目:Surgeon
阅读 21
收藏 0
点赞 0
评论 0
private Iterable<FieldSpec> buildRouterModuleFields() {
ArrayList<FieldSpec> fieldSpecs = new ArrayList<>();
FieldSpec f_mapping = FieldSpec.builder(HashMap.class, "mapping")
.addModifiers(Modifier.PRIVATE, Modifier.FINAL)
.build();
fieldSpecs.add(f_mapping);
return fieldSpecs;
}
MarkerGenerator.java 文件源码
项目:json-log-domain
阅读 29
收藏 0
点赞 0
评论 0
private static FieldSpec getField(ClassName name, Key key) {
Class<?> type = parseTypeFormat(key.getType(), key.getFormat());
if(type.isPrimitive()) {
type = ClassUtils.primitiveToWrapper(type);
}
return FieldSpec.builder(type, key.getId(), Modifier.PRIVATE).build();
}
TagGenerator.java 文件源码
项目:json-log-domain
阅读 19
收藏 0
点赞 0
评论 0
private static MethodSpec getter(String methodName, FieldSpec field) {
return MethodSpec.methodBuilder(methodName)
.addModifiers(Modifier.PUBLIC, Modifier.FINAL)
.returns(field.type)
.addStatement("return $N", field)
.build();
}
Generator.java 文件源码
项目:react4j
阅读 27
收藏 0
点赞 0
评论 0
private static FieldSpec.Builder buildProviderField( final @Nonnull ComponentDescriptor descriptor )
{
return FieldSpec.builder( ParameterizedTypeName.get( PROVIDER_CLASSNAME,
TypeName.get( descriptor.getDeclaredType() ) ),
"c_provider",
Modifier.STATIC,
Modifier.PRIVATE );
}