private static MethodSpec getTagsBuilderMethod(ClassName name, ClassName tags, int size) {
ParameterSpec parameter = ParameterSpec.builder(ArrayTypeName.of(tags), "tags").build();
return MethodSpec.methodBuilder("tags")
.addModifiers(Modifier.PUBLIC)
.addParameter(parameter)
.varargs()
.addStatement("$T clone = new $T[" + size + "]", ArrayTypeName.of(tags), tags)
.beginControlFlow("if(this.tags != null)")
.addStatement("System.arraycopy(this.tags, 0, clone, 0, " + size + ")")
.endControlFlow()
.beginControlFlow("for($T tag : tags)", tags)
.addStatement("clone[tag.ordinal()] = tag")
.endControlFlow()
.addStatement("this.tags = clone")
.returns(name)
.addStatement("return this")
.build();
}
java类com.squareup.javapoet.ArrayTypeName的实例源码
MarkerGenerator.java 文件源码
项目:json-log-domain
阅读 29
收藏 0
点赞 0
评论 0
OutputValueFactory.java 文件源码
项目:dataenum
阅读 29
收藏 0
点赞 0
评论 0
private static boolean typeNeedsTypeVariable(TypeName type, TypeVariableName typeVariable) {
if (typeVariable.equals(type)) {
return true;
}
if (type instanceof ParameterizedTypeName) {
ParameterizedTypeName parameterized = ((ParameterizedTypeName) type);
for (TypeName typeArgument : parameterized.typeArguments) {
if (typeVariable.equals(typeArgument)) {
return true;
}
}
}
if (type instanceof ArrayTypeName) {
ArrayTypeName arrayType = (ArrayTypeName) type;
if (typeVariable.equals(arrayType.componentType)) {
return true;
}
}
return false;
}
BundleExtension.java 文件源码
项目:auto-value-bundle
阅读 28
收藏 0
点赞 0
评论 0
private MethodSpec generateUnboxMethod(
ClassName className,
TypeName typeName,
String primitiveType) {
String paramName = className.simpleName() + "Param";
paramName = Character.toLowerCase(paramName.charAt(0)) + paramName.substring(1);
String primitiveArray = primitiveType + "s";
return MethodSpec.methodBuilder("toPrimitive")
.addParameters(ImmutableList.of(ParameterSpec.builder(ArrayTypeName.of(className), paramName).build()))
.returns(ArrayTypeName.of(typeName))
.addModifiers(PUBLIC)
.addModifiers(STATIC)
.addStatement("$L[] $L = new $L[$L.length]", primitiveType, primitiveArray, primitiveType, paramName)
.beginControlFlow("for (int i = 0; i < $L.length; i++)", paramName)
.addStatement("$L[i] = $L[i]", primitiveArray, paramName)
.endControlFlow()
.addStatement("return $L", primitiveArray)
.build();
}
IdSearchFactory.java 文件源码
项目:RealmRepository
阅读 28
收藏 0
点赞 0
评论 0
public static TypeName createIdSearch(ProcessingEnvironment processingEnvironment, LocalConfiguration localConfiguration) {
TypeName idTypeName = TypeName.get(localConfiguration.getIdTypeMirror());
if (idTypeName.equals(ClassName.get("java.lang", "Boolean")) || idTypeName.equals(TypeName.BOOLEAN)) {
return ClassName.get(GlobalConfiguration.BOOLEAN_ID_SEARCH_CLASS_PACKAGE, GlobalConfiguration.BOOLEAN_ID_SEARCH_CLASS_NAME);
} else if (idTypeName.equals(ArrayTypeName.of(TypeName.BYTE))) {
return ClassName.get(GlobalConfiguration.BYTE_ARRAY_ID_SEARCH_CLASS_PACKAGE, GlobalConfiguration.BYTE_ARRAY_ID_SEARCH_CLASS_NAME);
} else if (idTypeName.equals(ClassName.get("java.lang", "Byte")) || idTypeName.equals(TypeName.BYTE)) {
return ClassName.get(GlobalConfiguration.BOOLEAN_ID_SEARCH_CLASS_PACKAGE, GlobalConfiguration.BOOLEAN_ID_SEARCH_CLASS_NAME);
} else if (idTypeName.equals(ClassName.get("java.util", "Date"))) {
return ClassName.get(GlobalConfiguration.DATE_ID_SEARCH_CLASS_PACKAGE, GlobalConfiguration.DATE_ID_SEARCH_CLASS_NAME);
} else if (idTypeName.equals(ClassName.get("java.lang", "Double")) || idTypeName.equals(TypeName.DOUBLE)) {
return ClassName.get(GlobalConfiguration.DOUBLE_ID_SEARCH_CLASS_PACKAGE, GlobalConfiguration.DOUBLE_ID_SEARCH_CLASS_NAME);
} else if (idTypeName.equals(ClassName.get("java.lang", "Float")) || idTypeName.equals(TypeName.FLOAT)) {
return ClassName.get(GlobalConfiguration.FLOAT_ID_SEARCH_CLASS_PACKAGE, GlobalConfiguration.FLOAT_ID_SEARCH_CLASS_NAME);
} else if (idTypeName.equals(ClassName.get("java.lang", "Integer")) || idTypeName.equals(TypeName.INT)) {
return ClassName.get(GlobalConfiguration.INTEGER_ID_SEARCH_CLASS_PACKAGE, GlobalConfiguration.INTEGER_ID_SEARCH_CLASS_NAME);
} else if (idTypeName.equals(ClassName.get("java.lang", "Long")) || idTypeName.equals(TypeName.LONG)) {
return ClassName.get(GlobalConfiguration.LONG_ID_SEARCH_CLASS_PACKAGE, GlobalConfiguration.LONG_ID_SEARCH_CLASS_NAME);
} else if (idTypeName.equals(ClassName.get("java.lang", "Short")) || idTypeName.equals(TypeName.SHORT)) {
return ClassName.get(GlobalConfiguration.SHORT_ID_SEARCH_CLASS_PACKAGE, GlobalConfiguration.SHORT_ID_SEARCH_CLASS_NAME);
} else if (idTypeName.equals(ClassName.get("java.lang", "String"))) {
return ClassName.get(GlobalConfiguration.STRING_ID_SEARCH_CLASS_PACKAGE, GlobalConfiguration.STRING_ID_SEARCH_CLASS_NAME);
} else {
throw new RealmRepositoryException("Not supported id type " + idTypeName.toString() + " in " + localConfiguration.getDataRepositoryInterfaceTypeElement().getSimpleName().toString());
}
}
CursorRowElement.java 文件源码
项目:Curson
阅读 22
收藏 0
点赞 0
评论 0
public static Type valueOf(TypeName typeName) {
if (ArrayTypeName.of(byte.class).equals(typeName)) {
return CursorRowElement.Type.BLOB;
} else if (TypeName.DOUBLE.equals(typeName) || TypeName.DOUBLE.box().equals(typeName)) {
return CursorRowElement.Type.DOUBLE;
} else if (TypeName.INT.equals(typeName) || TypeName.INT.box().equals(typeName)) {
return CursorRowElement.Type.INT;
} else if (TypeName.FLOAT.equals(typeName) || TypeName.FLOAT.box().equals(typeName)) {
return CursorRowElement.Type.FLOAT;
} else if (TypeName.LONG.equals(typeName) || TypeName.LONG.box().equals(typeName)) {
return CursorRowElement.Type.LONG;
} else if (ClassName.get(String.class).equals(typeName)) {
return CursorRowElement.Type.STRING;
} else if (TypeName.SHORT.equals(typeName) || TypeName.SHORT.box().equals(typeName)) {
return CursorRowElement.Type.SHORT;
}
return null;
}
AnnotatedDurableEntityClass.java 文件源码
项目:mnemonic
阅读 29
收藏 0
点赞 0
评论 0
protected void genNFieldInfo() {
FieldInfo dynfieldinfo, fieldinfo;
List<long[]> finfo = new ArrayList<long[]>();
for (String name : m_gettersinfo.keySet()) {
dynfieldinfo = m_dynfieldsinfo.get(name);
if (dynfieldinfo.id > 0) {
finfo.add(new long[]{dynfieldinfo.id, dynfieldinfo.fieldoff, dynfieldinfo.fieldsize});
}
}
fieldinfo = new FieldInfo();
fieldinfo.name = String.format("m_nfieldinfo_%s", Utils.genRandomString());
fieldinfo.type = ArrayTypeName.of(ArrayTypeName.of(TypeName.LONG));
String initlstr = Utils.toInitLiteral(finfo);
fieldinfo.specbuilder = FieldSpec.builder(fieldinfo.type, fieldinfo.name, Modifier.PRIVATE, Modifier.STATIC)
.initializer("$1L", initlstr);
m_fieldsinfo.put("nfieldinfo", fieldinfo);
}
SQLiteDAOClass.java 文件源码
项目:HighLite
阅读 24
收藏 0
点赞 0
评论 0
private MethodSpec buildGetSingleByRawQueryMethod() {
final String cursorVarName = "cursor";
return MethodSpec.methodBuilder("getSingle")
.addAnnotation(Override.class)
.addModifiers(Modifier.PUBLIC)
.returns(getClassNameOfElement())
.addParameter(CONTEXT, "context", Modifier.FINAL)
.addParameter(STRING, "rawQueryClause", Modifier.FINAL)
.addParameter(ArrayTypeName.of(STRING), "rawQueryArgs", Modifier.FINAL)
.addParameter(TypeName.BOOLEAN, "fromCache", Modifier.FINAL)
.addStatement("final $T $L = getReadableDatabase($L)"
+ ".rawQuery(rawQueryClause, rawQueryArgs)",
CURSOR, cursorVarName, "context")
.beginControlFlow("if (!$L.moveToFirst())", cursorVarName)
.addStatement("$L.close()", cursorVarName)
.addStatement("return null")
.endControlFlow()
.addStatement("$T ret = instantiateObject(cursor, context, fromCache)",
getClassNameOfElement())
.addStatement("$L.close()", cursorVarName)
.addStatement("return ret")
.build();
}
SQLiteDAOClass.java 文件源码
项目:HighLite
阅读 27
收藏 0
点赞 0
评论 0
private MethodSpec buildGetListByRawQueryMethod() {
final String cursorVarName = "cursor";
return MethodSpec.methodBuilder("getList")
.addAnnotation(Override.class)
.addModifiers(Modifier.PUBLIC)
.returns(ParameterizedTypeName.get(LIST, getClassNameOfElement()))
.addParameter(CONTEXT, "context", Modifier.FINAL)
.addParameter(STRING, "rawQueryClause", Modifier.FINAL)
.addParameter(ArrayTypeName.of(STRING), "rawQueryArgs", Modifier.FINAL)
.addParameter(TypeName.BOOLEAN, "fromCache", Modifier.FINAL)
.addStatement("final $T<$T> ret = new $T<>()", LIST, getClassNameOfElement(),
ARRAY_LIST)
.addStatement("final $T $L = getReadableDatabase($L)"
+ ".rawQuery(rawQueryClause, rawQueryArgs)",
CURSOR, cursorVarName, "context")
.beginControlFlow("if (!$L.moveToFirst())", cursorVarName)
.addStatement("$L.close()", cursorVarName)
.addStatement("return ret")
.endControlFlow()
.beginControlFlow("do")
.addStatement("ret.add(instantiateObject(cursor, context, fromCache))")
.endControlFlow("while(cursor.moveToNext())")
.addStatement("$L.close()", cursorVarName)
.addStatement("return ret")
.build();
}
DatabaseHelperCreator.java 文件源码
项目:AirData
阅读 30
收藏 0
点赞 0
评论 0
private MethodSpec generateUpdateMethod() {
MethodSpec.Builder saveMethodBuidler = MethodSpec.methodBuilder("update")
.addAnnotation(Override.class)
.addModifiers(Modifier.PUBLIC)
.returns(TypeName.INT)
.addParameter(ClassName.get(Class.class), "clazz")
.addParameter(ClassName.get(ContentValuesWrapper.class), "valuesWrapper")
.addParameter(ClassName.get(String.class), "where")
.addParameter(ArrayTypeName.of(ClassName.get(String.class)), "whereArgs");
for (TableInfo table : tables) {
String daoField = table.getDaoClassName().replace("$$", "").toLowerCase();
saveMethodBuidler.addStatement("if($L.class.equals(clazz)) return $L.update(valuesWrapper, where, whereArgs)", table.getClassName(), daoField);
}
saveMethodBuidler.addStatement("return 0");
return saveMethodBuidler.build();
}
DatabaseHelperCreator.java 文件源码
项目:AirData
阅读 26
收藏 0
点赞 0
评论 0
private MethodSpec generateDeleteMethod() {
MethodSpec.Builder saveMethodBuidler = MethodSpec.methodBuilder("delete")
.addAnnotation(Override.class)
.addModifiers(Modifier.PUBLIC)
.returns(TypeName.INT)
.addParameter(ClassName.get(Class.class), "clazz")
.addParameter(ClassName.get(String.class), "where")
.addParameter(ArrayTypeName.of(ClassName.get(String.class)), "whereArgs");
for (TableInfo table : tables) {
String daoField = table.getDaoClassName().replace("$$", "").toLowerCase();
saveMethodBuidler.addStatement("if($L.class.equals(clazz)) return $L.delete(where, whereArgs)", table.getClassName(), daoField);
}
saveMethodBuidler.addStatement("return 0");
return saveMethodBuidler.build();
}
DatabaseHelperCreator.java 文件源码
项目:AirData
阅读 26
收藏 0
点赞 0
评论 0
private MethodSpec generateRawQueryMethod() {
MethodSpec.Builder queryMethodBuidler = MethodSpec.methodBuilder("rawQuery")
.addAnnotation(Override.class)
.addModifiers(Modifier.PUBLIC)
.returns(ClassName.get("android.database", "Cursor"))
.addParameter(ClassName.get(Class.class), "clazz")
.addParameter(TypeName.BOOLEAN, "distinct")
.addParameter(ArrayTypeName.of(ClassName.get(String.class)), "columns")
.addParameter(ClassName.get(String.class), "selection")
.addParameter(ArrayTypeName.of(ClassName.get(String.class)), "selectionArgs")
.addParameter(ClassName.get(String.class), "groupBy")
.addParameter(ClassName.get(String.class), "having")
.addParameter(ClassName.get(String.class), "orderBy")
.addParameter(ClassName.get(String.class), "limit");
for (TableInfo table : tables) {
String daoField = table.getDaoClassName().replace("$$", "").toLowerCase();
queryMethodBuidler.addStatement("if($L.class.equals(clazz)) return $L.rawQuery(distinct, columns, selection, selectionArgs, groupBy, having, orderBy, limit)", table.getClassName(), daoField);
}
queryMethodBuidler.addStatement("return null");
return queryMethodBuidler.build();
}
DAOCreator.java 文件源码
项目:AirData
阅读 20
收藏 0
点赞 0
评论 0
private MethodSpec generatorQueryMethod() {
MethodSpec.Builder queryBuilder = MethodSpec.methodBuilder("query")
.addModifiers(Modifier.PUBLIC)
.returns(ClassName.get(List.class))
.addParameter(TypeName.BOOLEAN, "distinct")
.addParameter(ArrayTypeName.of(ClassName.get(String.class)), "columns")
.addParameter(ClassName.get(String.class), "selection")
.addParameter(ArrayTypeName.of(ClassName.get(String.class)), "selectionArgs")
.addParameter(ClassName.get(String.class), "groupBy")
.addParameter(ClassName.get(String.class), "having")
.addParameter(ClassName.get(String.class), "orderBy")
.addParameter(ClassName.get(String.class), "limit")
.addStatement("$T cursor = this.rawQuery(distinct, columns, selection, selectionArgs, groupBy, having, orderBy, limit)", ClassName.get("android.database", "Cursor"));
queryBuilder.addStatement("$T list = new $T()", ArrayList.class, ArrayList.class);
queryBuilder.addCode("if (cursor.moveToFirst()) {");
queryBuilder.addCode(" do {");
queryBuilder.addCode(" list.add(fillData(cursor));");
queryBuilder.addCode(" } while (cursor.moveToNext());");
queryBuilder.addCode("}");
queryBuilder.addStatement("return list");
return queryBuilder.build();
}
VarArgSetterSupport.java 文件源码
项目:anno4j
阅读 29
收藏 0
点赞 0
评论 0
@Override
MethodSpec buildSignature(RDFSClazz domainClazz, OntGenerationConfig config) throws RepositoryException {
if (getRanges() != null) {
MethodSpec.Builder setter = buildParameterlessSetterSignature(domainClazz, config);
// Get the vararg parameter type:
TypeName paramType = ArrayTypeName.of(getParameterType(config, false));
return setter.addParameter(paramType, "values")
.varargs()
.build();
} else {
return null;
}
}
AutoValueGsonExtension.java 文件源码
项目:auto-value-gson
阅读 30
收藏 0
点赞 0
评论 0
private static String simpleName(TypeName typeName) {
if (typeName instanceof ClassName) {
return UPPER_CAMEL.to(LOWER_CAMEL, ((ClassName) typeName).simpleName());
} else if (typeName instanceof ParameterizedTypeName) {
ParameterizedTypeName parameterizedTypeName = (ParameterizedTypeName) typeName;
return UPPER_CAMEL.to(LOWER_CAMEL, parameterizedTypeName.rawType.simpleName())
+ (parameterizedTypeName.typeArguments.isEmpty() ? "" : "__")
+ simpleName(parameterizedTypeName.typeArguments);
} else if (typeName instanceof ArrayTypeName) {
return "array__" + simpleName(((ArrayTypeName) typeName).componentType);
} else if (typeName instanceof WildcardTypeName) {
WildcardTypeName wildcardTypeName = (WildcardTypeName) typeName;
return "wildcard__"
+ simpleName(ImmutableList.<TypeName>builder().addAll(wildcardTypeName.lowerBounds)
.addAll(wildcardTypeName.upperBounds)
.build());
} else if (typeName instanceof TypeVariableName) {
TypeVariableName variable = (TypeVariableName) typeName;
return variable.name
+ (variable.bounds.isEmpty() ? "" : "__")
+ simpleName(variable.bounds);
} else {
return typeName.toString();
}
}
RecordWriter.java 文件源码
项目:vinyl
阅读 24
收藏 0
点赞 0
评论 0
private FieldSpec buildProjectionField() {
CodeBlock.Builder initializer = CodeBlock.builder();
initializer.add("{");
boolean first = true;
for (RecordField field : parsed.fields) {
if (!first) {
initializer.add(", ");
}
initializer.add("$N.$L()", projectionsClass, field.name);
first = false;
}
initializer.add("}");
TypeName arrayOfStrings = ArrayTypeName.of(ClassName.get(String.class));
return FieldSpec.builder(arrayOfStrings, "PROJECTION", Modifier.PRIVATE, Modifier.STATIC, Modifier.FINAL)
.initializer(initializer.build().toString())
.build();
}
AutoMatterProcessor.java 文件源码
项目:auto-matter
阅读 30
收藏 0
点赞 0
评论 0
private MethodSpec collectionVarargSetter(final Descriptor d, final ExecutableElement field) {
String fieldName = fieldName(field);
TypeName itemType = genericArgument(field, 0);
MethodSpec.Builder setter = MethodSpec.methodBuilder(fieldName)
.addModifiers(PUBLIC)
.addParameter(ArrayTypeName.of(itemType), fieldName)
.varargs()
.returns(builderType(d));
ensureSafeVarargs(setter);
collectionNullGuard(setter, field);
setter.addStatement("return $N($T.asList($N))", fieldName, ClassName.get(Arrays.class), fieldName);
return setter.build();
}
BeanJsonSerializerCreator.java 文件源码
项目:gwt-jackson
阅读 51
收藏 0
点赞 0
评论 0
private MethodSpec buildInitSerializersMethod( Map<PropertyInfo, JSerializerType> properties )
throws UnableToCompleteException {
MethodSpec.Builder builder = MethodSpec.methodBuilder( "initSerializers" )
.addModifiers( Modifier.PROTECTED )
.addAnnotation( Override.class )
.returns( ArrayTypeName.of( BeanPropertySerializer.class ) )
.addStatement( "$T result = new $T[$L]",
ArrayTypeName.of( BeanPropertySerializer.class ), BeanPropertySerializer.class, properties.size() );
int i = 0;
for ( Entry<PropertyInfo, JSerializerType> entry : properties.entrySet() ) {
builder.addStatement( "result[$L] = $L", i++, buildSerializer( entry.getKey(), entry.getValue() ) );
}
builder.addStatement( "return result" );
return builder.build();
}
MarkerGenerator.java 文件源码
项目:json-log-domain
阅读 24
收藏 0
点赞 0
评论 0
private static MethodSpec getTagsGetterMethod(ClassName tags) {
return MethodSpec.methodBuilder("getTags")
.addModifiers(Modifier.PUBLIC)
.returns(ArrayTypeName.of(tags))
.addStatement("return tags")
.build();
}
MarkerGenerator.java 文件源码
项目:json-log-domain
阅读 25
收藏 0
点赞 0
评论 0
public static JavaFile markerBuilder(Domain ontology) {
List<Key> keys = ontology.getKeys();
ClassName name = ClassName.get(ontology.getTargetPackage(), ontology.getName()+ MARKER_BUILDER);
Builder builder = TypeSpec.classBuilder(name)
.addJavadoc(composeJavadoc(ontology, name))
.addModifiers(Modifier.PUBLIC);
ClassName markerName = getName(ontology);
for(Key key : keys) {
builder.addMethod(getBuilderMethod(markerName, key));
}
if(ontology.hasTags()) {
ClassName tagsName = TagGenerator.getName(ontology);
ParameterSpec parameter = ParameterSpec.builder(ArrayTypeName.of(tagsName), "value").build();
builder.addMethod(MethodSpec.methodBuilder("tags")
.addModifiers(Modifier.PUBLIC, Modifier.STATIC)
.addParameter(parameter).varargs()
.addStatement("$T marker = new $T()", markerName, markerName)
.addStatement("marker.tags($N)", parameter)
.returns(markerName)
.addStatement("return marker")
.build());
}
return JavaFile.builder(name.packageName(), builder.build()).build();
}
LoggerGenerator.java 文件源码
项目:json-log-domain
阅读 29
收藏 0
点赞 0
评论 0
private static MethodSpec getTagsMethod(ClassName name, ClassName tags) {
return MethodSpec.methodBuilder("tags")
.addModifiers(Modifier.PUBLIC)
.addParameter(ArrayTypeName.of(tags), "value")
.varargs()
.addStatement("marker.tags(value)")
.returns(name)
.addStatement("return this")
.build();
}
QueryLoggerGenerator.java 文件源码
项目:RxAndroidOrm
阅读 27
收藏 0
点赞 0
评论 0
public TypeSpec generate() {
return TypeSpec.interfaceBuilder(Constants.QUERY_LOGGER)
.addModifiers(Modifier.PUBLIC)
.addMethod(MethodSpec.methodBuilder("onQuery")
.addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT)
.addParameter(ClassName.get(String.class), "query")
.addParameter(ArrayTypeName.get(String[].class), "datas")
.build())
.build();
}
AbiTypesGenerator.java 文件源码
项目:web3j
阅读 28
收藏 0
点赞 0
评论 0
private <T extends Type> void generateStaticArrayTypes(
Class<T> superclass, String path) throws IOException {
String packageName = createPackageName(superclass);
ClassName className;
for (int length = 1; length <= StaticArray.MAX_SIZE_OF_STATIC_ARRAY; length++) {
TypeVariableName typeVariableName = TypeVariableName.get("T").withBounds(Type.class);
MethodSpec constructorSpec = MethodSpec.constructorBuilder()
.addModifiers(Modifier.PUBLIC)
.addParameter(ParameterizedTypeName.get(ClassName.get(List.class),
typeVariableName), "values")
.addStatement("super($L, $N)", length, "values")
.build();
MethodSpec arrayOverloadConstructorSpec = MethodSpec.constructorBuilder()
.addAnnotation(SafeVarargs.class)
.addModifiers(Modifier.PUBLIC)
.addParameter(ArrayTypeName.of(typeVariableName), "values")
.varargs()
.addStatement("super($L, $N)", length, "values")
.build();
className = ClassName.get(packageName, superclass.getSimpleName() + length);
TypeSpec bytesType = TypeSpec
.classBuilder(className.simpleName())
.addTypeVariable(typeVariableName)
.addJavadoc(CODEGEN_WARNING)
.superclass(ParameterizedTypeName.get(ClassName.get(superclass),
typeVariableName))
.addModifiers(Modifier.PUBLIC)
.addMethods(Arrays.asList(constructorSpec, arrayOverloadConstructorSpec))
.build();
write(packageName, bytesType, path);
}
}
TypeHelper.java 文件源码
项目:AxoloTL
阅读 26
收藏 0
点赞 0
评论 0
private static TypeName getTypeNameOrArrayTypeName(String name) {
if (name.endsWith("[]")) {
String rawName = name.substring(0, name.length() - 2);
TypeHelper rawTypeHelper = TypeHelper.getTypeHelper(rawName);
return ArrayTypeName.of(rawTypeHelper.getTypeName());
} else {
return ClassName.bestGuess(name);
}
}
JavaFileBuilder.java 文件源码
项目:PermissionDispatcher
阅读 28
收藏 0
点赞 0
评论 0
private static MethodSpec createPermissionResultMethod(RuntimePermissionsElement element) {
String targetParam = "target";
String requestCodeParam = "requestCode";
String grantResultsParam = "grantResults";
MethodSpec.Builder builder = MethodSpec.methodBuilder("onRequestPermissionsResult")
.addTypeVariables(element.getTypeVariables())
.addModifiers(Modifier.STATIC)
.returns(TypeName.VOID)
.addParameter(element.getTypeName(), targetParam)
.addParameter(TypeName.INT, requestCodeParam)
.addParameter(ArrayTypeName.of(TypeName.INT), grantResultsParam);
// For each @NeedsPermission method, add a switch case
builder.beginControlFlow("switch ($N)", requestCodeParam);
List<ExecutableElement> needsPermissionsMethods = element.getNeedsPermissionsMethods();
for (ExecutableElement needsMethod : needsPermissionsMethods) {
String[] needsPermissionParameter = needsMethod.getAnnotation(NeedsPermission.class).value();
if (containsKey(ADD_WITH_CHECK_BODY_MAP,needsPermissionParameter)) {
continue;
}
builder.addCode("case $N:\n", requestCodeFieldName(needsMethod));
// Delegate switch-case generation to implementing classes
addResultCaseBody(builder, needsMethod, element, targetParam, grantResultsParam);
}
// Add the default case
builder
.addCode("default:\n")
.addStatement("break")
.endControlFlow();
return builder.build();
}
AutoValueIgnoreHashEqualsExtension.java 文件源码
项目:auto-value-ignore-hash-equals
阅读 23
收藏 0
点赞 0
评论 0
private static CodeBlock generateHashCodeExpression(ExecutableElement propertyElement) {
String methodName = propertyElement.getSimpleName().toString();
TypeName propertyType = TypeName.get(propertyElement.getReturnType());
Set<String> propertyAnnotations = getAnnotations(propertyElement);
boolean nullable = propertyAnnotations.contains("Nullable");
if (propertyType.equals(TypeName.BYTE) || propertyType.equals(TypeName.SHORT) ||
propertyType.equals(TypeName.CHAR) || propertyType.equals(TypeName.INT)) {
return CodeBlock.of("this.$N()", methodName);
} else if (propertyType.equals(TypeName.LONG)) {
return CodeBlock.of("(this.$N() >>> 32) ^ this.$N()", methodName, methodName);
} else if (propertyType.equals(TypeName.FLOAT)) {
return CodeBlock.of("Float.floatToIntBits(this.$N())", methodName);
} else if (propertyType.equals(TypeName.DOUBLE)) {
return CodeBlock.of(
"(Double.doubleToLongBits(this.$N()) >>> 32) ^ Double.doubleToLongBits(this.$N())",
methodName, methodName);
} else if (propertyType.equals(TypeName.BOOLEAN)) {
return CodeBlock.of("this.$N() ? 1231 : 1237", methodName);
} else if (propertyType instanceof ArrayTypeName) {
return CodeBlock.of("$T.hashCode(this.$N())", Arrays.class, methodName);
} else {
if (nullable) {
return CodeBlock.of("($N() == null) ? 0 : this.$N().hashCode()", methodName, methodName);
} else {
return CodeBlock.of("this.$N().hashCode()", methodName);
}
}
}
AutoValueIgnoreHashEqualsExtension.java 文件源码
项目:auto-value-ignore-hash-equals
阅读 29
收藏 0
点赞 0
评论 0
private static CodeBlock generateEqualsExpression(ExecutableElement propertyElement) {
String methodName = propertyElement.getSimpleName().toString();
TypeName propertyType = TypeName.get(propertyElement.getReturnType());
Set<String> propertyAnnotations = getAnnotations(propertyElement);
boolean nullable = propertyAnnotations.contains("Nullable");
if (propertyType.equals(TypeName.FLOAT)) {
return CodeBlock.of("(Float.floatToIntBits(this.$N()) == Float.floatToIntBits(that.$N()))",
methodName, methodName);
} else if (propertyType.equals(TypeName.DOUBLE)) {
return CodeBlock.of(
"(Double.doubleToLongBits(this.$N()) == Double.doubleToLongBits(that.$N()))", methodName,
methodName);
} else if (propertyType.isPrimitive()) {
return CodeBlock.of("(this.$N() == that.$N())", methodName, methodName);
} else if (propertyType instanceof ArrayTypeName) {
return CodeBlock.of("($T.equals(this.$N(), that.$N()))", Arrays.class, methodName,
methodName);
} else {
if (nullable) {
return CodeBlock.of(
"((this.$N() == null) ? (that.$N() == null) : this.$N().equals(that.$N()))", methodName,
methodName, methodName, methodName);
} else {
return CodeBlock.of("(this.$N().equals(that.$N()))", methodName, methodName);
}
}
}
QueryLoggerGenerator.java 文件源码
项目:Freezer
阅读 25
收藏 0
点赞 0
评论 0
public TypeSpec generate() {
return TypeSpec.interfaceBuilder(Constants.QUERY_LOGGER)
.addModifiers(Modifier.PUBLIC)
.addMethod(MethodSpec.methodBuilder("onQuery")
.addModifiers(Modifier.PUBLIC, Modifier.ABSTRACT)
.addParameter(ClassName.get(String.class), "query")
.addParameter(ArrayTypeName.get(String[].class), "datas")
.build())
.build();
}
TypeElementsTest.java 文件源码
项目:shade
阅读 31
收藏 0
点赞 0
评论 0
@Test
public void findGenericTypesShouldCollectGenericTypesRecursively() throws Exception {
// setup
final TypeElement element = elements.getTypeElement(CustomConverter.class.getCanonicalName());
// exercise
final List<TypeName> actual = TypeElements.findGenericTypes(element, Converter.class.getSimpleName());
// verify
assertThat(actual).hasSize(2);
assertThat(actual.get(0)).isInstanceOf(ArrayTypeName.class);
assertThat(actual.get(0).toString()).isEqualTo("java.lang.String[]");
assertThat(actual.get(1)).isInstanceOf(ClassName.class);
assertThat(actual.get(1).toString()).isEqualTo("java.lang.String");
}
Names.java 文件源码
项目:featured
阅读 24
收藏 0
点赞 0
评论 0
public TypeName getTypeNameByKind(VariableElement param) {
switch (param.asType().getKind()) {
case BOOLEAN:
return TypeName.BOOLEAN;
case BYTE:
return TypeName.BYTE;
case CHAR:
return TypeName.CHAR;
case DOUBLE:
return TypeName.DOUBLE;
case FLOAT:
return TypeName.FLOAT;
case INT:
return TypeName.INT;
case LONG:
return TypeName.LONG;
case SHORT:
return TypeName.SHORT;
case DECLARED:
TypeMirror type = param.asType();
TypeName typeName = ClassName.get(type);
typeName = applyAnnotations(typeName, param);
return typeName;
case ARRAY:
ArrayType arrayType = (ArrayType) param.asType();
TypeName arrayTypeName = ArrayTypeName.get(arrayType);
arrayTypeName = applyAnnotations(arrayTypeName, param);
return arrayTypeName;
default:
throw new IllegalStateException("unsupported kind: " + param.asType().getKind());
}
}
SQLiteDAOClass.java 文件源码
项目:HighLite
阅读 25
收藏 0
点赞 0
评论 0
private MethodSpec buildDeleteByQueryMethod() {
return MethodSpec.methodBuilder("deleteByQuery")
.returns(TypeName.INT)
.addAnnotation(Override.class)
.addModifiers(Modifier.PUBLIC)
.addParameter(CONTEXT, "context", Modifier.FINAL)
.addParameter(STRING, "whereClause", Modifier.FINAL)
.addParameter(ArrayTypeName.of(STRING), "whereArgs", Modifier.FINAL)
.addStatement("return getWritableDatabase($L)"
+ ".delete(\n$S, \nwhereClause, \nwhereArgs)",
"context", getTableName(mElement))
.build();
}