public JvmAnnotationReference getJvmAnnotationReference(/* @Nullable */ XAnnotation anno) {
		if(anno == null)
			return null;
		JvmAnnotationReference reference = typesFactory.createJvmAnnotationReference();
		final JvmType annotation = (JvmType) anno.eGet(
				XAnnotationsPackage.Literals.XANNOTATION__ANNOTATION_TYPE, false);
		if (annotation.eIsProxy()) {
			JvmAnnotationType copiedProxy = TypesFactory.eINSTANCE.createJvmAnnotationType();
			((InternalEObject)copiedProxy).eSetProxyURI(EcoreUtil.getURI(annotation));
			reference.setAnnotation(copiedProxy);
		} else if (annotation instanceof JvmAnnotationType){
			reference.setAnnotation((JvmAnnotationType) annotation);
		}
		for (XAnnotationElementValuePair val : anno.getElementValuePairs()) {
			XExpression valueExpression = val.getValue();
			JvmAnnotationValue annotationValue = toJvmAnnotationValue(valueExpression);
			if (annotationValue != null) {
				JvmOperation op = (JvmOperation) val.eGet(
						XAnnotationsPackage.Literals.XANNOTATION_ELEMENT_VALUE_PAIR__ELEMENT, false);
				annotationValue.setOperation(op);
				reference.getExplicitValues().add(annotationValue);
			}
		}
		if (anno.getValue() != null) {
			JvmAnnotationValue value = toJvmAnnotationValue(anno.getValue());
			if (value != null) {
				reference.getExplicitValues().add(value);
			}
		}
		associate(anno, reference);
		return reference;
	}
public JvmAnnotationReference getJvmAnnotationReference ( XAnnotation anno ) { if ( anno == null ) return null ; JvmAnnotationReference reference = typesFactory . createJvmAnnotationReference ( ) ; final JvmType annotation = ( JvmType ) anno . eGet ( XAnnotationsPackage . Literals . XANNOTATION__ANNOTATION_TYPE , false ) ; if ( annotation . eIsProxy ( ) ) { JvmAnnotationType copiedProxy = TypesFactory . eINSTANCE . createJvmAnnotationType ( ) ; ( ( InternalEObject ) copiedProxy ) . eSetProxyURI ( EcoreUtil . getURI ( annotation ) ) ; reference . setAnnotation ( copiedProxy ) ; } else if ( annotation instanceof JvmAnnotationType ) { reference . setAnnotation ( ( JvmAnnotationType ) annotation ) ; } for ( XAnnotationElementValuePair val : anno . getElementValuePairs ( ) ) { XExpression valueExpression = val . getValue ( ) ; JvmAnnotationValue annotationValue = toJvmAnnotationValue ( valueExpression ) ; if ( annotationValue != null ) { JvmOperation op = ( JvmOperation ) val . eGet ( XAnnotationsPackage . Literals . XANNOTATION_ELEMENT_VALUE_PAIR__ELEMENT , false ) ; annotationValue . setOperation ( op ) ; reference . getExplicitValues ( ) . add ( annotationValue ) ; } } if ( anno . getValue ( ) != null ) { JvmAnnotationValue value = toJvmAnnotationValue ( anno . getValue ( ) ) ; if ( value != null ) { reference . getExplicitValues ( ) . add ( value ) ; } } associate ( anno , reference ) ; return reference ; }
/* @Nullable