javax.lang.model.type.MirroredTypesException#getTypeMirrors ( )源码实例Demo

下面列出了javax.lang.model.type.MirroredTypesException#getTypeMirrors ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: aircon   文件: LibraryConfigAnnotationParser.java
private List<? extends TypeMirror> getJsonGenericTypes() {
	try {
		((JsonConfig) mConfigAnnotation).genericTypes();
	} catch (MirroredTypesException e) {
		return e.getTypeMirrors();
	}

	return null;
}
 
源代码2 项目: WMRouter   文件: ServiceAnnotationProcessor.java
private static List<? extends TypeMirror> getInterface(RouterService service) {
    try {
        service.interfaces();
    } catch (MirroredTypesException mte) {
        return mte.getTypeMirrors();
    }
    return null;
}
 
源代码3 项目: WMRouter   文件: PageAnnotationProcessor.java
private static List<? extends TypeMirror> getInterceptors(RouterPage page) {
    try {
        page.interceptors();
    } catch (MirroredTypesException mte) {
        return mte.getTypeMirrors();
    }
    return null;
}
 
源代码4 项目: WMRouter   文件: UriAnnotationProcessor.java
private static List<? extends TypeMirror> getInterceptors(RouterUri scheme) {
    try {
        scheme.interceptors();
    } catch (MirroredTypesException mte) {
        return mte.getTypeMirrors();
    }
    return null;
}
 
源代码5 项目: WMRouter   文件: RegexAnnotationProcessor.java
private static List<? extends TypeMirror> getInterceptors(RouterRegex regex) {
    try {
        regex.interceptors();
    } catch (MirroredTypesException mte) {
        return mte.getTypeMirrors();
    }
    return null;
}
 
源代码6 项目: data-mediator   文件: DataBindingParser.java
private boolean parseBindsInternal(DataBindingInfo info, String varName,  int index,String[] props, BindMethod[] methods) {
    final ProcessorPrinter pp = mContext.getProcessorPrinter();
    if(props.length == 0){
        pp.error(TAG, "parseBindsProperty", "props.length must > 0");
        return false;
    }
    if(props.length > methods.length){
        pp.error(TAG, "parseBindsProperty", "props.length can't > methods.length");
        return false;
    }
    //truncate if props.length < methods.length
    if(props.length < methods.length){
        methods = truncate(methods, props.length);
    }
    for(int i =0 ; i < props.length ; i ++){
        final String prop = props[i];
        if(prop == null || prop.isEmpty()){
            continue;
        }
        List<String> types = null;
        //read Class<?> in compile time is wrong. see https://area-51.blog/2009/02/13/getting-class-values-from-annotations-in-an-annotationprocessor/.
        try {
            methods[i].paramTypes();
        }catch (MirroredTypesException mte){
            List<? extends TypeMirror> mirrors = mte.getTypeMirrors();
            types = TypeUtils.convertToClassname(mirrors, null);
        }
        info.addBindInfo(new DataBindingInfo.BindInfo(varName, prop, index, methods[i].value(), types));
    }
    return true;
}
 
源代码7 项目: data-mediator   文件: TypeUtils.java
public static List<String> classesToClassNames(ImportDesc desc){
    List<String> types = null;
    //read Class<?> in compile time is wrong. see https://area-51.blog/2009/02/13/getting-class-values-from-annotations-in-an-annotationprocessor/.
    try {
        desc.classes();
    }catch (MirroredTypesException mte){
        List<? extends TypeMirror> mirrors = mte.getTypeMirrors();
        types = convertToClassname(mirrors, null);
    }
    return types;
}
 
源代码8 项目: Naviganto   文件: RouteProcessor.java
@SuppressWarnings("unchecked") private List<TypeMirror> getParameters(RoutableActivity annotation) {
    try {
        annotation.params(); // TODO get forResult
    } catch (MirroredTypesException e) {
        return (List<TypeMirror>) e.getTypeMirrors();
    }
    return null;
}
 
源代码9 项目: Naviganto   文件: RouteProcessor.java
@SuppressWarnings("unchecked") private List<TypeMirror> getParameters(RoutableView annotation) {
    try {
        annotation.params(); // TODO get forResult
    } catch (MirroredTypesException e) {
        return (List<TypeMirror>) e.getTypeMirrors();
    }
    return null;
}
 
源代码10 项目: Akatsuki   文件: ProcessorUtils.java
@SuppressWarnings("unchecked")
public List<DeclaredType> getClassArrayFromAnnotationMethod(Supplier<Class<?>[]> supplier) {
	// JDK suggested way of getting type mirrors, do not waste time here,
	// just move on
	try {
		supplier.get();
	} catch (MirroredTypesException e) {
		// types WILL be declared
		return (List<DeclaredType>) e.getTypeMirrors();
	}
	return Collections.emptyList();
}
 
源代码11 项目: gama   文件: TypeProcessor.java
@Override
public void createElement(final StringBuilder sb, final ProcessorContext context, final Element e, final type t) {
	List<? extends TypeMirror> types = Collections.EMPTY_LIST;
	// Trick to obtain the names of the classes...
	try {
		t.wraps();
	} catch (final MirroredTypesException ex) {
		try {
			types = ex.getTypeMirrors();
		} catch (final MirroredTypeException ex2) {
			types = Arrays.asList(ex2.getTypeMirror());
		}
	}
	verifyDoc(context, e, "type " + t.name(), t);
	for (final Element m : e.getEnclosedElements()) {
		if (m.getKind() == ElementKind.METHOD && m.getSimpleName().contentEquals("cast")) {
			final ExecutableElement ee = (ExecutableElement) m;
			if (ee.getParameters().size() == 4) {
				verifyDoc(context, m, "the casting operator of " + t.name(), null);
			}
		}
	}
	sb.append(in).append("_type(").append(toJavaString(t.name())).append(",new ")
			.append(rawNameOf(context, e.asType())).append("(),").append(t.id()).append(',').append(t.kind());
	types.stream().map((ty) -> rawNameOf(context, ty)).forEach(s -> {
		sb.append(',').append(toClassObject(s));
		TypeConverter.registerType(s, t.name(), t.id());
	});
	sb.append(");");

}
 
源代码12 项目: bazel   文件: AutoCodecUtil.java
/**
 * Initializes the deserialize method.
 *
 * @param encodedType type being serialized
 */
static MethodSpec.Builder initializeSerializeMethodBuilder(
    TypeElement encodedType, AutoCodec annotation, ProcessingEnvironment env) {
  MethodSpec.Builder builder =
      MethodSpec.methodBuilder("serialize")
          .addModifiers(Modifier.PUBLIC)
          .returns(void.class)
          .addAnnotation(Override.class)
          .addAnnotation(
              AnnotationSpec.builder(ClassName.get(SuppressWarnings.class))
                  .addMember("value", "$S", "unchecked")
                  .build())
          .addException(SerializationException.class)
          .addException(IOException.class)
          .addParameter(SerializationContext.class, "context")
          .addParameter(TypeName.get(env.getTypeUtils().erasure(encodedType.asType())), "input")
          .addParameter(CodedOutputStream.class, "codedOut");
  if (annotation.checkClassExplicitlyAllowed()) {
    builder.addStatement("context.checkClassExplicitlyAllowed(getEncodedClass(), input)");
  }
  List<? extends TypeMirror> explicitlyAllowedClasses;
  try {
    explicitlyAllowedClasses =
        Arrays.stream(annotation.explicitlyAllowClass())
            .map((clazz) -> getType(clazz, env))
            .collect(Collectors.toList());
  } catch (MirroredTypesException e) {
    explicitlyAllowedClasses = e.getTypeMirrors();
  }
  for (TypeMirror explicitlyAllowedClass : explicitlyAllowedClasses) {
    builder.addStatement("context.addExplicitlyAllowedClass($T.class)", explicitlyAllowedClass);
  }
  return builder;
}
 
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
  Set<? extends Element> reactModuleListElements = roundEnv.getElementsAnnotatedWith(
    ReactModuleList.class);
  for (Element reactModuleListElement : reactModuleListElements) {
    if (!(reactModuleListElement instanceof TypeElement)) {
      continue;
    }

    TypeElement typeElement = (TypeElement) reactModuleListElement;
    ReactModuleList reactModuleList = typeElement.getAnnotation(ReactModuleList.class);

    if (reactModuleList == null) {
      continue;
    }

    ClassName className = ClassName.get(typeElement);
    String packageName = ClassName.get(typeElement).packageName();
    String fileName = className.simpleName();

    List<String> nativeModules = new ArrayList<>();
    try {
      reactModuleList.nativeModules(); // throws MirroredTypesException
    } catch (MirroredTypesException mirroredTypesException) {
      List<? extends TypeMirror> typeMirrors = mirroredTypesException.getTypeMirrors();
      for (TypeMirror typeMirror : typeMirrors) {
        nativeModules.add(typeMirror.toString());
      }
    }

    MethodSpec getReactModuleInfosMethod;
    try {
      getReactModuleInfosMethod = MethodSpec.methodBuilder("getReactModuleInfos")
        .addAnnotation(Override.class)
        .addModifiers(PUBLIC)
        .addCode(getCodeBlockForReactModuleInfos(nativeModules))
        .returns(MAP_TYPE)
        .build();
    } catch (ReactModuleSpecException reactModuleSpecException) {
      mMessager.printMessage(ERROR, reactModuleSpecException.mMessage);
      return false;
    }

    TypeSpec reactModulesInfosTypeSpec = TypeSpec.classBuilder(
      fileName + "$$ReactModuleInfoProvider")
      .addModifiers(Modifier.PUBLIC)
      .addMethod(getReactModuleInfosMethod)
      .addSuperinterface(ReactModuleInfoProvider.class)
      .build();

      JavaFile javaFile = JavaFile.builder(packageName, reactModulesInfosTypeSpec)
        .addFileComment("Generated by " + getClass().getName())
        .build();

    try {
      javaFile.writeTo(mFiler);
    } catch (IOException e) {
      e.printStackTrace();
    }
  }

  return true;
}