use of org.eclipse.xtext.common.types.JvmAnnotationReference in project xtext-xtend by eclipse.
the class XtendHighlightingCalculator method highlightAnnotation.
@Override
protected void highlightAnnotation(XAnnotation annotation, IHighlightedPositionAcceptor acceptor) {
JvmType annotationType = annotation.getAnnotationType();
if (annotationType instanceof JvmAnnotationTarget) {
for (JvmAnnotationReference annotationReference : ((JvmAnnotationTarget) annotationType).getAnnotations()) {
JvmAnnotationType otherAnnotation = annotationReference.getAnnotation();
if (otherAnnotation != null && !otherAnnotation.eIsProxy() && Active.class.getName().equals(otherAnnotation.getIdentifier())) {
highlightAnnotation(annotation, acceptor, ACTIVE_ANNOTATION);
return;
}
}
}
super.highlightAnnotation(annotation, acceptor);
}
use of org.eclipse.xtext.common.types.JvmAnnotationReference in project xtext-xtend by eclipse.
the class JvmAnnotationReferencePrinterTest method assertPrinted.
private void assertPrinted(final String expected, final String xtendCode) {
try {
StringConcatenation _builder = new StringConcatenation();
_builder.append(xtendCode);
_builder.append(" class Foo {}");
_builder.newLineIfNotEmpty();
final XtendFile file = this.parseHelper.parse(_builder, this.resourceSetProvider.get(this.testHelper.getProject()));
final JvmAnnotationReference annoVal = IterableExtensions.<JvmAnnotationReference>head(IterableExtensions.<JvmGenericType>head(Iterables.<JvmGenericType>filter(file.eResource().getContents(), JvmGenericType.class)).getAnnotations());
Assert.assertEquals(expected, this.printer.toHtmlString(annoVal));
} catch (Throwable _e) {
throw Exceptions.sneakyThrow(_e);
}
}
use of org.eclipse.xtext.common.types.JvmAnnotationReference in project xtext-xtend by eclipse.
the class CompilationUnitImpl method translateAnnotationValue.
public Object translateAnnotationValue(final JvmAnnotationValue value, final boolean isArray) {
Pair<List<?>, Class<?>> _switchResult = null;
boolean _matched = false;
if (value instanceof JvmCustomAnnotationValue) {
if ((((JvmCustomAnnotationValue) value).getValues().isEmpty() && isArray)) {
_matched = true;
List<Object> _emptyList = CollectionLiterals.<Object>emptyList();
Class<?> _arrayComponentType = this.toArrayComponentType(this.findExpectedType(value));
_switchResult = Pair.<List<?>, Class<?>>of(_emptyList, _arrayComponentType);
}
}
if (!_matched) {
if (value instanceof JvmCustomAnnotationValue) {
_matched = true;
final JvmTypeReference expectedType = this.findExpectedType(value);
final Function1<XExpression, Object> _function = (XExpression it) -> {
return this.evaluate(it, expectedType);
};
final Object result = IterableExtensions.<Object>head(IterableExtensions.<XExpression, Object>map(Iterables.<XExpression>filter(((JvmCustomAnnotationValue) value).getValues(), XExpression.class), _function));
return this.translateAnnotationValue(result, expectedType, isArray);
}
}
if (!_matched) {
if (value instanceof JvmTypeAnnotationValue) {
_matched = true;
final Function1<JvmTypeReference, TypeReference> _function = (JvmTypeReference it) -> {
return this.toTypeReference(it);
};
List<TypeReference> _map = ListExtensions.<JvmTypeReference, TypeReference>map(((JvmTypeAnnotationValue) value).getValues(), _function);
_switchResult = Pair.<List<?>, Class<?>>of(_map, TypeReference.class);
}
}
if (!_matched) {
if (value instanceof JvmAnnotationAnnotationValue) {
_matched = true;
final Function1<JvmAnnotationReference, AnnotationReference> _function = (JvmAnnotationReference it) -> {
return this.toAnnotationReference(it);
};
List<AnnotationReference> _map = ListExtensions.<JvmAnnotationReference, AnnotationReference>map(((JvmAnnotationAnnotationValue) value).getValues(), _function);
_switchResult = Pair.<List<?>, Class<?>>of(_map, AnnotationReference.class);
}
}
if (!_matched) {
if (value instanceof JvmStringAnnotationValue) {
_matched = true;
EList<String> _values = ((JvmStringAnnotationValue) value).getValues();
_switchResult = Pair.<List<?>, Class<?>>of(_values, String.class);
}
}
if (!_matched) {
if (value instanceof JvmBooleanAnnotationValue) {
_matched = true;
EList<Boolean> _values = ((JvmBooleanAnnotationValue) value).getValues();
_switchResult = Pair.<List<?>, Class<?>>of(_values, boolean.class);
}
}
if (!_matched) {
if (value instanceof JvmIntAnnotationValue) {
_matched = true;
EList<Integer> _values = ((JvmIntAnnotationValue) value).getValues();
_switchResult = Pair.<List<?>, Class<?>>of(_values, int.class);
}
}
if (!_matched) {
if (value instanceof JvmByteAnnotationValue) {
_matched = true;
EList<Byte> _values = ((JvmByteAnnotationValue) value).getValues();
_switchResult = Pair.<List<?>, Class<?>>of(_values, byte.class);
}
}
if (!_matched) {
if (value instanceof JvmCharAnnotationValue) {
_matched = true;
EList<Character> _values = ((JvmCharAnnotationValue) value).getValues();
_switchResult = Pair.<List<?>, Class<?>>of(_values, char.class);
}
}
if (!_matched) {
if (value instanceof JvmDoubleAnnotationValue) {
_matched = true;
EList<Double> _values = ((JvmDoubleAnnotationValue) value).getValues();
_switchResult = Pair.<List<?>, Class<?>>of(_values, double.class);
}
}
if (!_matched) {
if (value instanceof JvmEnumAnnotationValue) {
_matched = true;
final Function1<JvmEnumerationLiteral, NamedElement> _function = (JvmEnumerationLiteral it) -> {
return this.toNamedElement(it);
};
List<NamedElement> _map = ListExtensions.<JvmEnumerationLiteral, NamedElement>map(((JvmEnumAnnotationValue) value).getValues(), _function);
_switchResult = Pair.<List<?>, Class<?>>of(_map, EnumerationValueDeclaration.class);
}
}
if (!_matched) {
if (value instanceof JvmFloatAnnotationValue) {
_matched = true;
EList<Float> _values = ((JvmFloatAnnotationValue) value).getValues();
_switchResult = Pair.<List<?>, Class<?>>of(_values, float.class);
}
}
if (!_matched) {
if (value instanceof JvmLongAnnotationValue) {
_matched = true;
EList<Long> _values = ((JvmLongAnnotationValue) value).getValues();
_switchResult = Pair.<List<?>, Class<?>>of(_values, long.class);
}
}
if (!_matched) {
if (value instanceof JvmShortAnnotationValue) {
_matched = true;
EList<Short> _values = ((JvmShortAnnotationValue) value).getValues();
_switchResult = Pair.<List<?>, Class<?>>of(_values, short.class);
}
}
if (!_matched) {
List<Object> _emptyList = CollectionLiterals.<Object>emptyList();
_switchResult = Pair.<List<?>, Class<?>>of(_emptyList, Object.class);
}
final Pair<List<?>, Class<?>> result = _switchResult;
if (isArray) {
return this.toArrayOfType(result.getKey(), result.getValue());
} else {
return IterableExtensions.head(result.getKey());
}
}
use of org.eclipse.xtext.common.types.JvmAnnotationReference in project xtext-xtend by eclipse.
the class CompilationUnitImpl method toAnnotationReference.
public AnnotationReference toAnnotationReference(final JvmAnnotationReference delegate) {
final Function1<JvmAnnotationReference, JvmAnnotationReferenceImpl> _function = (JvmAnnotationReference it) -> {
JvmAnnotationReferenceImpl _jvmAnnotationReferenceImpl = new JvmAnnotationReferenceImpl();
final Procedure1<JvmAnnotationReferenceImpl> _function_1 = (JvmAnnotationReferenceImpl it_1) -> {
it_1.setDelegate(delegate);
it_1.setCompilationUnit(this);
};
return ObjectExtensions.<JvmAnnotationReferenceImpl>operator_doubleArrow(_jvmAnnotationReferenceImpl, _function_1);
};
return this.<JvmAnnotationReference, JvmAnnotationReferenceImpl>getOrCreate(delegate, _function);
}
use of org.eclipse.xtext.common.types.JvmAnnotationReference in project xtext-eclipse by eclipse.
the class AbstractTypeProviderTest method doTestAnnotation_01.
private void doTestAnnotation_01(JvmAnnotationTarget target) {
JvmAnnotationType annotationType = (JvmAnnotationType) getTypeProvider().findTypeByName(TestAnnotation.class.getName());
assertEquals(1, target.getAnnotations().size());
JvmAnnotationReference annotationReference = target.getAnnotations().get(0);
assertSame(annotationType, annotationReference.getAnnotation());
if (isDefaultValueSupported())
assertEquals(14, annotationReference.getExplicitValues().size());
assertEquals(15, annotationReference.getValues().size());
}
Aggregations