Search in sources :

Example 71 with JvmFormalParameter

use of org.eclipse.xtext.common.types.JvmFormalParameter in project xtext-eclipse by eclipse.

the class AbstractTypeProviderTest method test_twoListParamsNoResult_03.

@Test
public void test_twoListParamsNoResult_03() {
    JvmOperation twoListParamsNoResult = getMethodFromParameterizedMethods("twoListParamsNoResult(java.util.List,java.util.List)");
    JvmFormalParameter firstParam = twoListParamsNoResult.getParameters().get(0);
    JvmTypeReference paramType = firstParam.getParameterType();
    JvmParameterizedTypeReference parameterized = (JvmParameterizedTypeReference) paramType;
    assertEquals(1, parameterized.getArguments().size());
    JvmTypeReference typeParameter = parameterized.getArguments().get(0);
    JvmType referencedType = typeParameter.getType();
    assertFalse(referencedType.eIsProxy());
    assertTrue(referencedType instanceof JvmTypeParameter);
    JvmTypeParameter typeVar = (JvmTypeParameter) referencedType;
    assertEquals("T", typeVar.getName());
    assertSame(twoListParamsNoResult, typeVar.getDeclarator());
}
Also used : JvmOperation(org.eclipse.xtext.common.types.JvmOperation) JvmFormalParameter(org.eclipse.xtext.common.types.JvmFormalParameter) JvmTypeReference(org.eclipse.xtext.common.types.JvmTypeReference) JvmTypeParameter(org.eclipse.xtext.common.types.JvmTypeParameter) JvmType(org.eclipse.xtext.common.types.JvmType) JvmParameterizedTypeReference(org.eclipse.xtext.common.types.JvmParameterizedTypeReference) Test(org.junit.Test)

Example 72 with JvmFormalParameter

use of org.eclipse.xtext.common.types.JvmFormalParameter in project xtext-eclipse by eclipse.

the class AbstractTypeProviderTest method test_twoListWildcardsNoResult_02.

@Test
public void test_twoListWildcardsNoResult_02() {
    JvmOperation twoListWildcardsNoResult = getMethodFromParameterizedMethods("twoListWildcardsNoResult(java.util.List,java.util.List)");
    JvmFormalParameter firstParam = twoListWildcardsNoResult.getParameters().get(0);
    JvmTypeReference paramType = firstParam.getParameterType();
    assertNotNull(paramType);
    assertEquals("java.util.List<? extends java.lang.Object>", paramType.getIdentifier());
    assertTrue(paramType instanceof JvmParameterizedTypeReference);
    JvmParameterizedTypeReference parameterized = (JvmParameterizedTypeReference) paramType;
    JvmType rawType = parameterized.getType();
    assertFalse(rawType.eIsProxy());
    assertEquals("java.util.List", rawType.getIdentifier());
}
Also used : JvmOperation(org.eclipse.xtext.common.types.JvmOperation) JvmFormalParameter(org.eclipse.xtext.common.types.JvmFormalParameter) JvmTypeReference(org.eclipse.xtext.common.types.JvmTypeReference) JvmType(org.eclipse.xtext.common.types.JvmType) JvmParameterizedTypeReference(org.eclipse.xtext.common.types.JvmParameterizedTypeReference) Test(org.junit.Test)

Example 73 with JvmFormalParameter

use of org.eclipse.xtext.common.types.JvmFormalParameter in project xtext-eclipse by eclipse.

the class AbstractTypeProviderTest method doTestInnerType_WrappedIterator_02.

protected void doTestInnerType_WrappedIterator_02(JvmGenericType wrappedIterator) {
    assertEquals(3, Iterables.size(wrappedIterator.getDeclaredConstructors()));
    JvmConstructor constructor = (JvmConstructor) Iterables.find(wrappedIterator.getMembers(), new Predicate<JvmMember>() {

        @Override
        public boolean apply(JvmMember input) {
            return (input instanceof JvmConstructor) && input.getSimpleName().equals("WrappedIterator") && ((JvmConstructor) input).getParameters().size() == 3;
        }
    });
    assertNotNull(constructor);
    JvmFormalParameter firstParameter = constructor.getParameters().get(0);
    assertEquals(1, firstParameter.getAnnotations().size());
    assertEquals("java.lang.String", firstParameter.getParameterType().getIdentifier());
    assertEquals(TestAnnotationWithDefaults.class.getName(), firstParameter.getAnnotations().get(0).getAnnotation().getQualifiedName());
    JvmFormalParameter secondParameter = constructor.getParameters().get(1);
    assertEquals(0, secondParameter.getAnnotations().size());
    assertEquals("int", secondParameter.getParameterType().getIdentifier());
    JvmFormalParameter thirdParameter = constructor.getParameters().get(2);
    assertEquals(1, thirdParameter.getAnnotations().size());
    assertEquals("java.util.Iterator<V>", thirdParameter.getParameterType().getIdentifier());
    assertEquals(TestAnnotation.NestedAnnotation.class.getName(), thirdParameter.getAnnotations().get(0).getAnnotation().getQualifiedName());
}
Also used : TestAnnotationWithDefaults(org.eclipse.xtext.common.types.testSetups.TestAnnotationWithDefaults) JvmFormalParameter(org.eclipse.xtext.common.types.JvmFormalParameter) JvmConstructor(org.eclipse.xtext.common.types.JvmConstructor) JvmMember(org.eclipse.xtext.common.types.JvmMember) Predicate(com.google.common.base.Predicate)

Example 74 with JvmFormalParameter

use of org.eclipse.xtext.common.types.JvmFormalParameter in project xtext-eclipse by eclipse.

the class AbstractTypeProviderTest method testFindTypeByName_AbstractMultimap_02.

@Test
public void testFindTypeByName_AbstractMultimap_02() {
    String typeName = "com.google.common.collect.AbstractMultimap";
    JvmGenericType type = (JvmGenericType) getTypeProvider().findTypeByName(typeName);
    JvmOperation containsValue = (JvmOperation) Iterables.getOnlyElement(type.findAllFeaturesByName("containsValue"));
    assertNotNull(containsValue);
    JvmFormalParameter firstParam = containsValue.getParameters().get(0);
    assertEquals(0, firstParam.getAnnotations().size());
}
Also used : JvmOperation(org.eclipse.xtext.common.types.JvmOperation) JvmFormalParameter(org.eclipse.xtext.common.types.JvmFormalParameter) JvmGenericType(org.eclipse.xtext.common.types.JvmGenericType) Test(org.junit.Test)

Example 75 with JvmFormalParameter

use of org.eclipse.xtext.common.types.JvmFormalParameter in project xtext-eclipse by eclipse.

the class AbstractTypeProviderPerformanceTest method loadAndResolve.

protected JvmDeclaredType loadAndResolve(String name, boolean accessMembers, boolean accessAnnotations, boolean accessTypeParams, boolean accessParameter, boolean accessParameterNames) {
    JvmDeclaredType type = (JvmDeclaredType) getTypeProvider().findTypeByName(name);
    EcoreUtil.resolveAll(type.eResource());
    EcoreUtil.resolveAll(type.eResource().getResourceSet());
    Assert.assertNotNull(name, type);
    if (accessAnnotations) {
        type.getAnnotations();
    }
    if (accessMembers) {
        EList<JvmMember> members = type.getMembers();
        for (JvmMember member : members) {
            if (accessAnnotations) {
                member.getAnnotations();
            }
            if (member instanceof JvmExecutable) {
                JvmExecutable operation = (JvmExecutable) member;
                if (accessParameter) {
                    EList<JvmFormalParameter> parameters = operation.getParameters();
                    for (JvmFormalParameter jvmFormalParameter : parameters) {
                        if (accessAnnotations) {
                            jvmFormalParameter.getAnnotations();
                        }
                        if (accessParameterNames) {
                            jvmFormalParameter.getName();
                        }
                    }
                }
            }
        }
    }
    return type;
}
Also used : JvmExecutable(org.eclipse.xtext.common.types.JvmExecutable) JvmFormalParameter(org.eclipse.xtext.common.types.JvmFormalParameter) JvmDeclaredType(org.eclipse.xtext.common.types.JvmDeclaredType) JvmMember(org.eclipse.xtext.common.types.JvmMember)

Aggregations

JvmFormalParameter (org.eclipse.xtext.common.types.JvmFormalParameter)84 JvmOperation (org.eclipse.xtext.common.types.JvmOperation)37 Test (org.junit.Test)30 LightweightTypeReference (org.eclipse.xtext.xbase.typesystem.references.LightweightTypeReference)20 XtendFunction (org.eclipse.xtend.core.xtend.XtendFunction)16 StringConcatenation (org.eclipse.xtend2.lib.StringConcatenation)15 JvmGenericType (org.eclipse.xtext.common.types.JvmGenericType)15 JvmTypeReference (org.eclipse.xtext.common.types.JvmTypeReference)14 JvmType (org.eclipse.xtext.common.types.JvmType)13 EObject (org.eclipse.emf.ecore.EObject)12 XtendClass (org.eclipse.xtend.core.xtend.XtendClass)11 XExpression (org.eclipse.xtext.xbase.XExpression)11 JvmConstructor (org.eclipse.xtext.common.types.JvmConstructor)10 XClosure (org.eclipse.xtext.xbase.XClosure)10 XtendFile (org.eclipse.xtend.core.xtend.XtendFile)9 IResolvedTypes (org.eclipse.xtext.xbase.typesystem.IResolvedTypes)9 JvmMember (org.eclipse.xtext.common.types.JvmMember)8 JvmIdentifiableElement (org.eclipse.xtext.common.types.JvmIdentifiableElement)7 JvmParameterizedTypeReference (org.eclipse.xtext.common.types.JvmParameterizedTypeReference)7 XBlockExpression (org.eclipse.xtext.xbase.XBlockExpression)7