@Override
public void process(TypeSpec.Builder typeBuilder, TypeModel typeModel) {
String valuesStr = "";
for (String key : getEnumValues(typeModel)) {
valuesStr += key + ", ";
typeBuilder.addField(FieldSpec.builder(ClassName.get(String.class), key)
.addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL)
.initializer("$S", key)
.build());
}
AnnotationSpec.Builder retentionAnnotation = AnnotationSpec.builder(ClassName.get(Retention.class)).
addMember("value", "$T.SOURCE", ClassName.get(RetentionPolicy.class));
AnnotationSpec.Builder intDefAnnotation = AnnotationSpec.builder(ClassName.get("android.support.annotation", "StringDef"))
.addMember("value", "{ $L }", valuesStr.substring(0, valuesStr.length() - 2));
typeBuilder.addType(TypeSpec.annotationBuilder(metaInfo.getClassName() + "Def").
addModifiers(Modifier.PUBLIC).
addAnnotation(retentionAnnotation.build()).
addAnnotation(intDefAnnotation.build()).
build());
}
StringDefValuesHandler.java 文件源码
java
阅读 32
收藏 0
点赞 0
评论 0
项目:Lyrics
作者:
评论列表
文章目录