public TypeMirror getClassValue(Annotation a, String name) { try { a.annotationType().getMethod(name).invoke(a); assert false; throw new IllegalStateException("should throw a MirroredTypeException"); } catch (IllegalAccessException e) { throw new IllegalAccessError(e.getMessage()); } catch (InvocationTargetException e) { if( e.getCause() instanceof MirroredTypeException ) { MirroredTypeException me = (MirroredTypeException)e.getCause(); return me.getTypeMirror(); } // impossible throw new RuntimeException(e); } catch (NoSuchMethodException e) { throw new NoSuchMethodError(e.getMessage()); } }
throw new MirroredTypeException((TypeMirror) value);
public TypeMirror getClassValue(Annotation a, String name) { try { a.annotationType().getMethod(name).invoke(a); assert false; throw new IllegalStateException("should throw a MirroredTypeException"); } catch (IllegalAccessException e) { throw new IllegalAccessError(e.getMessage()); } catch (InvocationTargetException e) { if( e.getCause() instanceof MirroredTypeException ) { MirroredTypeException me = (MirroredTypeException)e.getCause(); return me.getTypeMirror(); } // impossible throw new RuntimeException(e); } catch (NoSuchMethodException e) { throw new NoSuchMethodError(e.getMessage()); } }
/** * The enum base class. * * @return The enum base class. */ public TypeMirror getEnumBaseClass() { try { Class enumClass = xmlEnum == null ? String.class : xmlEnum.value(); return getEnumBaseClass(enumClass); } catch (MirroredTypeException e) { return e.getTypeMirror(); } }
/** * The scope of the local element. * * @return The scope of the local element. */ public TypeDeclaration getElementScope() { TypeDeclaration declaration = null; try { if (elementDecl.scope() != XmlElementDecl.GLOBAL.class) { Class typeClass = elementDecl.scope(); declaration = getEnv().getTypeDeclaration(typeClass.getName()); } } catch (MirroredTypeException e) { //This exception implies the ref is within the source base. TypeMirror typeMirror = e.getTypeMirror(); if (typeMirror instanceof DeclaredType) { declaration = ((DeclaredType) typeMirror).getDeclaration(); } } return declaration; }
TypeMirror adaptedType = e.getTypeMirror(); if (!(adaptedType instanceof DeclaredType)) { throw new ValidationException(pckg.getPosition(), "Unadaptable type: " + adaptedType);
/** * The enum type containing the known qnames for this qname enum accessor, or null is this accessor doesn't reference a known qname type. * * @return The enum type containing the known qnames for this qname enum accessor. */ public TypeMirror getQNameEnumRef() { XmlQNameEnumRef enumRef = getAnnotation(XmlQNameEnumRef.class); TypeMirror qnameEnumType = null; if (enumRef != null) { AnnotationProcessorEnvironment env = Context.getCurrentEnvironment(); try { TypeDeclaration decl = env.getTypeDeclaration(enumRef.value().getName()); qnameEnumType = env.getTypeUtils().getDeclaredType(decl); } catch (MirroredTypeException e) { qnameEnumType = e.getTypeMirror(); } } return qnameEnumType; }
TypeMirror adaptedType = e.getTypeMirror(); if (!(adaptedType instanceof DeclaredType)) { throw new ValidationException(pckg.getPosition(), "Package " + pckg.getSimpleName() + ": unadaptable type: " + adaptedType);
/** * The type of an element accessor can be specified by an annotation. * * @return The accessor type. */ @Override public TypeMirror getAccessorType() { try { if ((xmlElementRef != null) && (xmlElementRef.type() != XmlElementRef.DEFAULT.class)) { Class clazz = xmlElementRef.type(); return getAccessorType(clazz); } } catch (MirroredTypeException e) { // The mirrored type exception implies that the specified type is within the source base. return TypeMirrorDecorator.decorate(e.getTypeMirror()); } return super.getAccessorType(); }
@Override public XmlType getBaseType() { XmlType xmlType = KnownXmlType.STRING; if (xmlEnum != null) { try { try { Class enumClass = xmlEnum.value(); xmlType = XmlTypeFactory.getXmlType(enumClass); } catch (MirroredTypeException e) { xmlType = XmlTypeFactory.getXmlType(e.getTypeMirror()); } } catch (XmlTypeException e) { throw new ValidationException(getPosition(), e.getMessage()); } } return xmlType; }
TypeMirror explicitTypeMirror = e.getTypeMirror(); if (!(explicitTypeMirror instanceof DeclaredType)) { throw new ValidationException(pckg.getPosition(), "Only a declared type can be adapted. Offending type: " + explicitTypeMirror);
TypeMirror explicitTypeMirror = e.getTypeMirror(); if (!(explicitTypeMirror instanceof DeclaredType)) { throw new ValidationException(pckg.getPosition(), pckg.getQualifiedName() + ": only a declared type can be adapted. Offending type: " + explicitTypeMirror);
@Override public XmlType getBaseType() { XmlType xmlType = KnownXmlType.STRING; if (xmlEnum != null) { try { try { Class enumClass = xmlEnum.value(); xmlType = XmlTypeFactory.getXmlType(enumClass); } catch (MirroredTypeException e) { xmlType = XmlTypeFactory.getXmlType(e.getTypeMirror()); } } catch (XmlTypeException e) { throw new ValidationException(getPosition(), getQualifiedName() + ": " + e.getMessage()); } } return xmlType; }
TypeMirror typeMirror = e.getTypeMirror(); elementDeclaration = typeMirror.toString(); if (typeMirror instanceof DeclaredType) {
DecoratedTypeMirror typeMirror = (DecoratedTypeMirror) TypeMirrorDecorator.decorate(e.getTypeMirror()); if (typeMirror.isDeclared()) { if (typeMirror.isInstanceOf(ResourceMethodSignature.class.getName() + ".NONE")) {
TypeMirror typeMirror = e.getTypeMirror(); if (!(typeMirror instanceof DeclaredType)) { result.addError(typeDef, "Unsupported factory class: " + typeMirror);
/** * The base type of an element accessor can be specified by an annotation. * * @return The base type. */ @Override public XmlType getBaseType() { if (xmlElement != null) { Class typeClass = null; TypeMirror typeMirror = null; try { typeClass = xmlElement.type(); } catch (MirroredTypeException e) { typeMirror = e.getTypeMirror(); } try { if (typeClass == null) { return XmlTypeFactory.getXmlType(typeMirror); } else if (typeClass != XmlElement.DEFAULT.class) { return XmlTypeFactory.getXmlType(typeClass); } } catch (XmlTypeException e) { throw new ValidationException(getPosition(), e.getMessage()); } } return super.getBaseType(); }
/** * Loads the explicit output payload. * * @param signatureOverride The method signature override. * @return The output payload (explicit in the signature override. */ protected ResourceRepresentationMetadata loadOutputPayload(ResourceMethodSignature signatureOverride) { DecoratedTypeMirror returnType = (DecoratedTypeMirror) getReturnType(); try { Class<?> outputType = signatureOverride.output(); if (outputType != ResourceMethodSignature.NONE.class) { AnnotationProcessorEnvironment env = net.sf.jelly.apt.Context.getCurrentEnvironment(); TypeDeclaration type = env.getTypeDeclaration(outputType.getName()); return new ResourceRepresentationMetadata(env.getTypeUtils().getDeclaredType(type), returnType.getDocValue()); } } catch (MirroredTypeException e) { DecoratedTypeMirror typeMirror = (DecoratedTypeMirror) TypeMirrorDecorator.decorate(e.getTypeMirror()); if (typeMirror.isDeclared()) { if (typeMirror.isInstanceOf(ResourceMethodSignature.class.getName() + ".NONE")) { return null; } return new ResourceRepresentationMetadata(typeMirror, returnType.getDocValue()); } else { throw new ValidationException(getPosition(), "Illegal output type (must be a declared type): " + typeMirror); } } return null; }
TypeMirror typeMirror = e.getTypeMirror(); if (!(typeMirror instanceof DeclaredType)) { result.addError(typeDef.getPosition(), "Unsupported factory class: " + typeMirror);
adapterTypeMirror = (ClassType) e.getTypeMirror();