/** * Checks if the given AnnotatedType is sensible, otherwise provides warnings. */ private static void checkSensibility(AnnotatedType<?> type) { // check if it has a constructor if (type.getConstructors().isEmpty() && !type.getJavaClass().isInterface()) { MetadataLogger.LOG.noConstructor(type); } Set<Class<?>> hierarchy = new HashSet<Class<?>>(); for (Class<?> clazz = type.getJavaClass(); clazz != null; clazz = clazz.getSuperclass()) { hierarchy.add(clazz); hierarchy.addAll(Reflections.getInterfaceClosure(clazz)); } checkMembersBelongToHierarchy(type.getConstructors(), hierarchy, type); checkMembersBelongToHierarchy(type.getMethods(), hierarchy, type); checkMembersBelongToHierarchy(type.getFields(), hierarchy, type); }
public static void validateAnnotatedType(AnnotatedType<?> type) { validateAnnotated(type); checkNotNull(type.getJavaClass(), "getJavaClass()", type); checkNotNull(type.getFields(), "getFields()", type); checkNotNull(type.getConstructors(), "getConstructors()", type); checkNotNull(type.getMethods(), "getMethods()", type); checkSensibility(type); }
@Override public FieldInjectionPointAttributes<?, ?> createInjectionPoint(AnnotatedField<?> field) { AnnotatedTypeValidator.validateAnnotatedMember(field); return validateInjectionPoint(createFieldInjectionPoint(field)); }
public static void validateAnnotatedMember(AnnotatedMember<?> member) { validateAnnotated(member); checkNotNull(member.getJavaMember(), "getJavaMember()", member); checkNotNull(member.getDeclaringType(), "getDeclaringType()", member); }
private void replaceAnnotatedType(AnnotatedType<X> type) { if (!this.originalAnnotatedType.getJavaClass().equals(type.getJavaClass())) { throw BootstrapLogger.LOG.annotatedTypeJavaClassMismatch(this.annotatedType.getJavaClass(), type.getJavaClass()); } AnnotatedTypeValidator.validateAnnotatedType(type); this.annotatedType = type; }
@Override public ParameterInjectionPointAttributes<?, ?> createInjectionPoint(AnnotatedParameter<?> parameter) { AnnotatedTypeValidator.validateAnnotatedParameter(parameter); EnhancedAnnotatedParameter<?, ?> enhancedParameter = services.get(MemberTransformer.class).loadEnhancedParameter(parameter, getId()); return validateInjectionPoint(InferringParameterInjectionPointAttributes.of(enhancedParameter, null, parameter.getDeclaringCallable().getDeclaringType().getJavaClass(), this)); }
@Override public <T> Producer<T> createProducer(Bean<T> bean) { if (getDeclaringBean() == null && !getAnnotatedMember().isStatic()) { throw BeanManagerLogger.LOG.nullDeclaringBean(getAnnotatedMember()); } AnnotatedTypeValidator.validateAnnotatedMember(getAnnotatedMember()); try { Producer<T> producer = createProducer(getDeclaringBean(), bean, null); getManager().getServices().get(InjectionTargetService.class).validateProducer(producer); return producer; } catch (Throwable e) { throw new IllegalArgumentException(e); } } }
public static void validateAnnotatedParameter(AnnotatedParameter<?> parameter) { validateAnnotated(parameter); if (parameter.getPosition() < 0) { throw MetadataLogger.LOG.invalidParameterPosition(parameter.getPosition(), parameter); } checkNotNull(parameter.getDeclaringCallable(), "getDeclaringCallable()", parameter); }
public static void validateAnnotated(Annotated annotated) { checkNotNull(annotated.getAnnotations(), "getAnnotations()", annotated); checkNotNull(annotated.getBaseType(), "getBaseType()", annotated); checkNotNull(annotated.getTypeClosure(), "getTypeClosure()", annotated); }
private void replaceAnnotatedType(AnnotatedType<X> type) { if (!this.originalAnnotatedType.getJavaClass().equals(type.getJavaClass())) { throw BootstrapLogger.LOG.annotatedTypeJavaClassMismatch(this.annotatedType.getJavaClass(), type.getJavaClass()); } AnnotatedTypeValidator.validateAnnotatedType(type); this.annotatedType = type; }
@Override public ParameterInjectionPointAttributes<?, ?> createInjectionPoint(AnnotatedParameter<?> parameter) { AnnotatedTypeValidator.validateAnnotatedParameter(parameter); EnhancedAnnotatedParameter<?, ?> enhancedParameter = services.get(MemberTransformer.class).loadEnhancedParameter(parameter, getId()); return validateInjectionPoint(InferringParameterInjectionPointAttributes.of(enhancedParameter, null, parameter.getDeclaringCallable().getDeclaringType().getJavaClass(), this)); }
public static void validateAnnotatedMember(AnnotatedMember<?> member) { validateAnnotated(member); checkNotNull(member.getJavaMember(), "getJavaMember()", member); checkNotNull(member.getDeclaringType(), "getDeclaringType()", member); }
@Override public <T> Producer<T> createProducer(Bean<T> bean) { if (getDeclaringBean() == null && !getAnnotatedMember().isStatic()) { throw BeanManagerLogger.LOG.nullDeclaringBean(getAnnotatedMember()); } AnnotatedTypeValidator.validateAnnotatedMember(getAnnotatedMember()); try { Producer<T> producer = createProducer(getDeclaringBean(), bean, null); getManager().getServices().get(InjectionTargetService.class).validateProducer(producer); return producer; } catch (Throwable e) { throw new IllegalArgumentException(e); } } }
public static void validateAnnotatedParameter(AnnotatedParameter<?> parameter) { validateAnnotated(parameter); if (parameter.getPosition() < 0) { throw MetadataLogger.LOG.invalidParameterPosition(parameter.getPosition(), parameter); } checkNotNull(parameter.getDeclaringCallable(), "getDeclaringCallable()", parameter); }
public static void validateAnnotated(Annotated annotated) { checkNotNull(annotated.getAnnotations(), "getAnnotations()", annotated); checkNotNull(annotated.getBaseType(), "getBaseType()", annotated); checkNotNull(annotated.getTypeClosure(), "getTypeClosure()", annotated); }
public static void validateAnnotatedType(AnnotatedType<?> type) { validateAnnotated(type); checkNotNull(type.getJavaClass(), "getJavaClass()", type); checkNotNull(type.getFields(), "getFields()", type); checkNotNull(type.getConstructors(), "getConstructors()", type); checkNotNull(type.getMethods(), "getMethods()", type); checkSensibility(type); }
/** * Checks if the given AnnotatedType is sensible, otherwise provides warnings. */ private static void checkSensibility(AnnotatedType<?> type) { // check if it has a constructor if (type.getConstructors().isEmpty() && !type.getJavaClass().isInterface()) { MetadataLogger.LOG.noConstructor(type); } Set<Class<?>> hierarchy = new HashSet<Class<?>>(); for (Class<?> clazz = type.getJavaClass(); clazz != null; clazz = clazz.getSuperclass()) { hierarchy.add(clazz); hierarchy.addAll(Reflections.getInterfaceClosure(clazz)); } checkMembersBelongToHierarchy(type.getConstructors(), hierarchy, type); checkMembersBelongToHierarchy(type.getMethods(), hierarchy, type); checkMembersBelongToHierarchy(type.getFields(), hierarchy, type); }
private void replaceAnnotatedType(AnnotatedType<X> type) { if (!this.originalAnnotatedType.getJavaClass().equals(type.getJavaClass())) { throw BootstrapLogger.LOG.annotatedTypeJavaClassMismatch(this.annotatedType.getJavaClass(), type.getJavaClass()); } AnnotatedTypeValidator.validateAnnotatedType(type); this.annotatedType = type; }
@Override public ParameterInjectionPointAttributes<?, ?> createInjectionPoint(AnnotatedParameter<?> parameter) { AnnotatedTypeValidator.validateAnnotatedParameter(parameter); EnhancedAnnotatedParameter<?, ?> enhancedParameter = services.get(MemberTransformer.class).loadEnhancedParameter(parameter, getId()); return validateInjectionPoint(InferringParameterInjectionPointAttributes.of(enhancedParameter, null, parameter.getDeclaringCallable().getDeclaringType().getJavaClass(), this)); }
public static void validateAnnotatedMember(AnnotatedMember<?> member) { validateAnnotated(member); checkNotNull(member.getJavaMember(), "getJavaMember()", member); checkNotNull(member.getDeclaringType(), "getDeclaringType()", member); }