本文整理了Java中com.squareup.javawriter.JavaWriter.compressType()
方法的一些代码示例,展示了JavaWriter.compressType()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。JavaWriter.compressType()
方法的具体详情如下:
包路径:com.squareup.javawriter.JavaWriter
类名称:JavaWriter
方法名:compressType
[英]Try to compress a fully-qualified class name to only the class name.
[中]尝试将完全限定的类名压缩为只有类名。
代码示例来源:origin: com.squareup/javawriter
/**
* Emits a name like {@code java.lang.String} or {@code java.util.List<java.lang.String>},
* compressing it with imports if possible. Type compression will only be enabled if
* {@link #isCompressingTypes} is true.
*/
private JavaWriter emitCompressedType(String type) throws IOException {
if (isCompressingTypes) {
out.write(compressType(type));
} else {
out.write(type);
}
return this;
}
代码示例来源:origin: mkarneim/pojobuilder
private void emitValidatorField(ValidatorM validator) throws IOException {
String validatorTypeDeclaration = writer.compressType(validator.getType().getGenericType());
String initialization = String.format("new %s()", validatorTypeDeclaration);
writer.emitField(validatorTypeDeclaration, validator.getFieldName(), EnumSet.of(PROTECTED), initialization);
}
代码示例来源:origin: net.karneim/pojobuilder
private void emitValidatorField(ValidatorM validator) throws IOException {
String validatorTypeDeclaration = writer.compressType(validator.getType().getGenericType());
String initialization = String.format("new %s()", validatorTypeDeclaration);
writer.emitField(validatorTypeDeclaration, validator.getFieldName(), EnumSet.of(PROTECTED), initialization);
}
代码示例来源:origin: net.karneim/pojobuilder
private void emitConstructor(TypeM builderType, TypeM selfType, Visibility visibility) throws IOException {
String selfTypeStr = writer.compressType(selfType.getGenericType());
String builderTypeName = writer.compressType(builderType.getName());
Modifier modifier = visibility.asModifier();
// @formatter:off
writer
.emitEmptyLine()
.emitJavadoc("Creates a new {@link %s}.", builderTypeName).beginConstructor(modifier==null?EnumSet.noneOf(Modifier.class):EnumSet.of(modifier))
.emitStatement("self = (%s)this", selfTypeStr).endConstructor();
// @formatter:on
}
代码示例来源:origin: com.stanfy.helium/helium
private String getJavaType(final Type type, final JavaWriter writer) {
String name = resolveJavaTypeName(type, writer);
if (type instanceof Sequence) {
return getOptions().getSequenceTypeName(name);
}
if (type instanceof DataType) {
return writer.compressType(name);
}
return name;
}
代码示例来源:origin: mkarneim/pojobuilder
private void emitConstructor(TypeM builderType, TypeM selfType, Visibility visibility) throws IOException {
String selfTypeStr = writer.compressType(selfType.getGenericType());
String builderTypeName = writer.compressType(builderType.getName());
Modifier modifier = visibility.asModifier();
// @formatter:off
writer
.emitEmptyLine()
.emitJavadoc("Creates a new {@link %s}.", builderTypeName).beginConstructor(modifier==null?EnumSet.noneOf(Modifier.class):EnumSet.of(modifier))
.emitStatement("self = (%s)this", selfTypeStr).endConstructor();
// @formatter:on
}
代码示例来源:origin: mkarneim/pojobuilder
private void emitConstructor(TypeM builderType, Visibility visibility) throws IOException {
String builderTypeName = writer.compressType(builderType.getName());
Modifier modifier = visibility.asModifier();
// @formatter:off
writer
.emitEmptyLine()
.emitJavadoc("Creates a new {@link %s}.", builderTypeName).beginConstructor(modifier==null?EnumSet.noneOf(Modifier.class):EnumSet.of(modifier))
.endConstructor();
// @formatter:on
}
代码示例来源:origin: net.karneim/pojobuilder
private void emitConstructor(TypeM builderType, Visibility visibility) throws IOException {
String builderTypeName = writer.compressType(builderType.getName());
Modifier modifier = visibility.asModifier();
// @formatter:off
writer
.emitEmptyLine()
.emitJavadoc("Creates a new {@link %s}.", builderTypeName).beginConstructor(modifier==null?EnumSet.noneOf(Modifier.class):EnumSet.of(modifier))
.endConstructor();
// @formatter:on
}
代码示例来源:origin: com.stanfy.helium/helium
public String getJavaTypeName(final Type type, final boolean sequence, final JavaWriter writer) {
final String typeName;
if (type instanceof Message) {
if (sequence) {
typeName = writer.compressType(getSequenceTypeName(type.getCanonicalName()));
} else {
typeName = type.getCanonicalName();
}
} else if (type.isPrimitive()) {
if (isEnumDeclaration(type)) {
return Names.capitalize(type.getCanonicalName());
}
Class<?> clazz = getJavaClass(type);
if (sequence) {
String itemClassName = getSequenceItemClassName(clazz);
typeName = writer.compressType(getSequenceTypeName(itemClassName));
} else {
typeName = writer.compressType(clazz.getCanonicalName());
}
} else {
throw new UnsupportedOperationException("Cannot resolve Java type for " + type + ", sequence: " + sequence);
}
return typeName;
}
代码示例来源:origin: com.workday/postman-processor
public void generateParceler() throws IOException {
JavaFileObject sourceFile = processingEnv.getFiler().createSourceFile(parcelerName);
JavaWriter writer = new JavaWriter(sourceFile.openWriter());
writer.emitPackage(processingEnv.getElementUtils().getPackageOf(
elementToParcel).getQualifiedName().toString());
writer.emitImports(getImports());
writer.emitEmptyLine();
elementCompressedName = writer.compressType(elementToParcel.getQualifiedName().toString());
writer.beginType(parcelerName, "class", EnumSet.of(Modifier.PUBLIC, Modifier.FINAL), null,
JavaWriter.type(Parceler.class, elementCompressedName));
writer.emitEmptyLine();
writeWriteToParcelMethod(writer);
writer.emitEmptyLine();
writeReadFromParcelMethod(writer);
writer.emitEmptyLine();
writeNewArrayMethod(writer);
writer.emitEmptyLine();
writer.endType();
writer.close();
}
代码示例来源:origin: Workday/postman
public void generateParceler() throws IOException {
JavaFileObject sourceFile = processingEnv.getFiler().createSourceFile(parcelerName);
JavaWriter writer = new JavaWriter(sourceFile.openWriter());
writer.emitPackage(processingEnv.getElementUtils().getPackageOf(
elementToParcel).getQualifiedName().toString());
writer.emitImports(getImports());
writer.emitEmptyLine();
elementCompressedName = writer.compressType(elementToParcel.getQualifiedName().toString());
writer.beginType(parcelerName, "class", EnumSet.of(Modifier.PUBLIC, Modifier.FINAL), null,
JavaWriter.type(Parceler.class, elementCompressedName));
writer.emitEmptyLine();
writeWriteToParcelMethod(writer);
writer.emitEmptyLine();
writeReadFromParcelMethod(writer);
writer.emitEmptyLine();
writeNewArrayMethod(writer);
writer.emitEmptyLine();
writer.endType();
writer.close();
}
代码示例来源:origin: mkarneim/pojobuilder
static void emitStaticFactoryMethod(TypeM selfType, StaticFactoryMethodM method, JavaWriter writer)
throws IOException {
String builderTypeDeclaration = writer.compressType(selfType.getGenericType());
String returnTypeDecl;
if (selfType.isGeneric()) {
String typeParameters = "<" + writer.compressType(selfType.getTypeParameters().toParameterString()) + ">";
returnTypeDecl = typeParameters + " " + builderTypeDeclaration;
} else {
returnTypeDecl = builderTypeDeclaration;
}
// @formatter:off
writer
.emitEmptyLine()
.emitJavadoc(
"Factory Method to construct a %s\n\n@return a new %s", builderTypeDeclaration, builderTypeDeclaration
)
.beginMethod(returnTypeDecl, method.getName(), method.getModifiers())
.emitStatement("return new %s()", builderTypeDeclaration)
.endMethod();
// @formatter:on
}
代码示例来源:origin: net.karneim/pojobuilder
static void emitStaticFactoryMethod(TypeM selfType, StaticFactoryMethodM method, JavaWriter writer)
throws IOException {
String builderTypeDeclaration = writer.compressType(selfType.getGenericType());
String returnTypeDecl;
if (selfType.isGeneric()) {
String typeParameters = "<" + writer.compressType(selfType.getTypeParameters().toParameterString()) + ">";
returnTypeDecl = typeParameters + " " + builderTypeDeclaration;
} else {
returnTypeDecl = builderTypeDeclaration;
}
// @formatter:off
writer
.emitEmptyLine()
.emitJavadoc(
"Factory Method to construct a %s\n\n@return a new %s", builderTypeDeclaration, builderTypeDeclaration
)
.beginMethod(returnTypeDecl, method.getName(), method.getModifiers())
.emitStatement("return new %s()", builderTypeDeclaration)
.endMethod();
// @formatter:on
}
代码示例来源:origin: mkarneim/pojobuilder
private void emitButMethod(TypeM selfType) throws IOException {
String builderTypeStr = writer.compressType(selfType.getGenericType());
// @formatter:off
writer
.emitEmptyLine()
.emitJavadoc(
"Returns a clone of this builder.\n\n"
+ "@return the clone");
if ( selfType.isGeneric()) {
writer
.emitAnnotation(SuppressWarnings.class, JavaWriter.stringLiteral("unchecked"));
}
writer
.emitAnnotation(GwtIncompatible.class)
.beginMethod(builderTypeStr, "but", EnumSet.of(PUBLIC))
.emitStatement("return (%s)clone()", builderTypeStr)
.endMethod();
// @formatter:on
}
代码示例来源:origin: net.karneim/pojobuilder
private void emitButMethod(TypeM selfType) throws IOException {
String builderTypeStr = writer.compressType(selfType.getGenericType());
// @formatter:off
writer
.emitEmptyLine()
.emitJavadoc(
"Returns a clone of this builder.\n\n"
+ "@return the clone");
if ( selfType.isGeneric()) {
writer
.emitAnnotation(SuppressWarnings.class, JavaWriter.stringLiteral("unchecked"));
}
writer
.emitAnnotation(GwtIncompatible.class)
.beginMethod(builderTypeStr, "but", EnumSet.of(PUBLIC))
.emitStatement("return (%s)clone()", builderTypeStr)
.endMethod();
// @formatter:on
}
代码示例来源:origin: com.stanfy.helium/helium
private String resolveJavaTypeName(final Type type, final JavaWriter writer) {
Type imported = type;
boolean sequence = false;
if (imported instanceof FileType) {
return "retrofit.mime.TypedFile";
}
if (imported instanceof DataType) {
return "retrofit.mime.TypedOutput";
}
if (imported instanceof MultipartType) {
return "java.util.Map";
}
if (imported instanceof Sequence) {
sequence = true;
imported = ((Sequence) imported).getItemsType();
}
if (imported instanceof FormType) {
imported = ((FormType) type).getBase();
}
String javaType = getOptions().getJavaTypeName(imported, sequence, writer);
String entitiesPackage = getOptions().getEntitiesPackage();
if (!type.isPrimitive() && entitiesPackage != null && !entitiesPackage.equals(getOptions().getPackageName())) {
javaType = entitiesPackage + "." + javaType;
}
return writer.compressType(javaType);
}
代码示例来源:origin: com.stanfy.helium/helium
private static void readParcelable(final Field field, final String fieldName, final JavaWriter output,
final String className, final String classLoader) throws IOException {
String shortClassName = output.compressType(className);
if (field.isSequence()) {
output.emitStatement("Parcelable[] %1$sParcelables = source.readParcelableArray(%2$s)",
fieldName,
classLoader);
output.beginControlFlow("if (" + fieldName + "Parcelables != null)");
output.emitStatement("this.%1$s = new %2$s[%1$sParcelables.length]", fieldName, shortClassName);
output.beginControlFlow("for (int i = 0; i < " + fieldName + "Parcelables.length; i++)");
output.emitStatement("this.%1$s[i] = (%2$s) %1$sParcelables[i]", fieldName, shortClassName);
output.endControlFlow();
output.endControlFlow();
} else {
output.emitStatement("this.%1$s = (%2$s) source.readParcelable(%3$s)",
fieldName,
shortClassName,
classLoader);
}
}
代码示例来源:origin: mkarneim/pojobuilder
private void emitWithMethodUsingBuilderInterface(TypeM builderType, TypeM selfType, TypeM interfaceType,
TypeM pojoType, PropertyM prop, OptionalM optional) throws IOException {
String withMethodName = prop.getWithMethodName();
String pojoTypeStr = writer.compressType(pojoType.getName());
String parameterTypeStr = prop.getParameterizedBuilderInterfaceType(interfaceType, optional).getGenericType();
String propertyLink = prop.isAccessibleViaFieldAccess()
? String.format("{@link %s#%s}", pojoTypeStr, prop.getPropertyName())
: prop.getPropertyName();
writer.emitEmptyLine();
writer.emitJavadoc("Sets the default builder for the %s property.\n\n"//
+ "@param builder the default builder\n"//
+ "@return this builder"//
, propertyLink);
writer.beginMethod(selfType.getGenericType(), withMethodName, EnumSet.of(PUBLIC), parameterTypeStr, "builder");
writer.emitStatement("this.%s = builder", prop.getBuilderFieldName());
if (optional == null) {
writer.emitStatement("this.%s = false", prop.getIsSetFieldName());
} else {
writer.emitStatement("this.%s = %s", prop.getValueFieldName(), optional.absent());
}
writer.emitStatement("return self").endMethod();
}
代码示例来源:origin: net.karneim/pojobuilder
private void emitWithMethodUsingBuilderInterface(TypeM builderType, TypeM selfType, TypeM interfaceType,
TypeM pojoType, PropertyM prop, OptionalM optional) throws IOException {
String withMethodName = prop.getWithMethodName();
String pojoTypeStr = writer.compressType(pojoType.getName());
String parameterTypeStr = prop.getParameterizedBuilderInterfaceType(interfaceType, optional).getGenericType();
String propertyLink = prop.isAccessibleViaFieldAccess()
? String.format("{@link %s#%s}", pojoTypeStr, prop.getPropertyName())
: prop.getPropertyName();
writer.emitEmptyLine();
writer.emitJavadoc("Sets the default builder for the %s property.\n\n"//
+ "@param builder the default builder\n"//
+ "@return this builder"//
, propertyLink);
writer.beginMethod(selfType.getGenericType(), withMethodName, EnumSet.of(PUBLIC), parameterTypeStr, "builder");
writer.emitStatement("this.%s = builder", prop.getBuilderFieldName());
if (optional == null) {
writer.emitStatement("this.%s = false", prop.getIsSetFieldName());
} else {
writer.emitStatement("this.%s = %s", prop.getValueFieldName(), optional.absent());
}
writer.emitStatement("return self").endMethod();
}
代码示例来源:origin: mkarneim/pojobuilder
private void emitCloneMethod(TypeM selfType, CloneMethodM cloneMethod) throws IOException {
String builderTypeStr = writer.compressType(selfType.getGenericType());
// @formatter:off
writer
.emitEmptyLine()
.emitJavadoc(
"Returns a clone of this builder.\n\n"
+ "@return the clone")
.emitAnnotation(Override.class)
.emitAnnotation(GwtIncompatible.class)
.beginMethod("Object", "clone", EnumSet.of(PUBLIC));
if ( cloneMethod.shouldCatchCloneNotSupportedException()) {
writer.beginControlFlow("try");
}
if ( selfType.isGeneric()) {
writer
.emitAnnotation(SuppressWarnings.class, JavaWriter.stringLiteral("unchecked"));
}
writer
.emitStatement("%s result = (%s)super.clone()", builderTypeStr, builderTypeStr)
.emitStatement("result.self = result")
.emitStatement("return result");
if ( cloneMethod.shouldCatchCloneNotSupportedException()) {
writer.nextControlFlow("catch (CloneNotSupportedException e)")
.emitStatement("throw new InternalError(e.getMessage())")
.endControlFlow();
}
writer.endMethod();
// @formatter:on
}
内容来源于网络,如有侵权,请联系作者删除!