com.squareup.javawriter.JavaWriter.compressType()方法的使用及代码示例

x33g5p2x  于2022-01-22 转载在 其他  
字(14.4k)|赞(0)|评价(0)|浏览(91)

本文整理了Java中com.squareup.javawriter.JavaWriter.compressType()方法的一些代码示例,展示了JavaWriter.compressType()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。JavaWriter.compressType()方法的具体详情如下:
包路径:com.squareup.javawriter.JavaWriter
类名称:JavaWriter
方法名:compressType

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
}

相关文章