Search in sources :

Example 66 with JvmFormalParameter

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

the class AbstractTypeProviderTest method doTestInnerType_WrappedIterator_01.

private void doTestInnerType_WrappedIterator_01(JvmGenericType wrappedIterator) {
    assertEquals(2, Iterables.size(wrappedIterator.getDeclaredConstructors()));
    // default constructor
    assertTrue(Iterables.any(wrappedIterator.getMembers(), new Predicate<JvmMember>() {

        @Override
        public boolean apply(JvmMember input) {
            return (input instanceof JvmConstructor) && input.getSimpleName().equals("Iter") && ((JvmConstructor) input).getParameters().size() == 0;
        }
    }));
    // second constructor
    JvmConstructor secondConstructor = (JvmConstructor) Iterables.find(wrappedIterator.getMembers(), new Predicate<JvmMember>() {

        @Override
        public boolean apply(JvmMember input) {
            return (input instanceof JvmConstructor) && input.getSimpleName().equals("Iter") && ((JvmConstructor) input).getParameters().size() == 1;
        }
    });
    assertNotNull(secondConstructor);
    JvmFormalParameter firstParameter = secondConstructor.getParameters().get(0);
    assertEquals("java.util.Iterator<V>", firstParameter.getParameterType().getIdentifier());
}
Also used : 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 67 with JvmFormalParameter

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

the class AbstractTypeProviderTest method doTestInnerType_WrappedIterator_03.

protected void doTestInnerType_WrappedIterator_03(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() == 4;
        }
    });
    assertNotNull(constructor);
    JvmFormalParameter firstParameter = constructor.getParameters().get(0);
    assertEquals(0, firstParameter.getAnnotations().size());
    assertEquals("int", firstParameter.getParameterType().getIdentifier());
    JvmFormalParameter secondParameter = constructor.getParameters().get(1);
    assertEquals(1, secondParameter.getAnnotations().size());
    assertEquals("java.lang.String", secondParameter.getParameterType().getIdentifier());
    assertEquals(TestAnnotationWithDefaults.class.getName(), secondParameter.getAnnotations().get(0).getAnnotation().getQualifiedName());
    JvmFormalParameter thirdParameter = constructor.getParameters().get(2);
    assertEquals(0, thirdParameter.getAnnotations().size());
    assertEquals("int", thirdParameter.getParameterType().getIdentifier());
    JvmFormalParameter forthParameter = constructor.getParameters().get(3);
    assertEquals(1, forthParameter.getAnnotations().size());
    assertEquals("java.lang.String", forthParameter.getParameterType().getIdentifier());
    assertEquals(TestAnnotation.NestedAnnotation.class.getName(), forthParameter.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 68 with JvmFormalParameter

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

the class AbstractTypeProviderTest method recomputeAndCheckIdentifiers.

protected void recomputeAndCheckIdentifiers(Resource resource) {
    Iterator<JvmMember> iter = Iterators.filter(EcoreUtil.getAllContents(resource, false), JvmMember.class);
    while (iter.hasNext()) {
        JvmMember member = iter.next();
        String identifier = member.getIdentifier();
        member.internalSetIdentifier(null);
        String computed = member.getIdentifier();
        assertNotNull(String.valueOf(member), computed);
        assertEquals(identifier, computed);
        checkDeprecatedBitSet(member);
    }
    Iterator<JvmFormalParameter> params = Iterators.filter(EcoreUtil.getAllContents(resource, false), JvmFormalParameter.class);
    while (params.hasNext()) {
        JvmFormalParameter parameter = params.next();
        assertNotNull(parameter.eContainer().toString(), parameter.getName());
    }
}
Also used : JvmFormalParameter(org.eclipse.xtext.common.types.JvmFormalParameter) JvmMember(org.eclipse.xtext.common.types.JvmMember)

Example 69 with JvmFormalParameter

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

the class AbstractTypeProviderTest method test_twoListWildcardsNoResult_03.

@Test
public void test_twoListWildcardsNoResult_03() {
    JvmOperation twoListWildcardsNoResult = getMethodFromParameterizedMethods("twoListWildcardsNoResult(java.util.List,java.util.List)");
    JvmFormalParameter firstParam = twoListWildcardsNoResult.getParameters().get(0);
    JvmTypeReference paramType = firstParam.getParameterType();
    JvmParameterizedTypeReference parameterized = (JvmParameterizedTypeReference) paramType;
    assertEquals(1, parameterized.getArguments().size());
    JvmTypeReference typeParameter = parameterized.getArguments().get(0);
    assertTrue(typeParameter instanceof JvmWildcardTypeReference);
    JvmWildcardTypeReference wildcard = (JvmWildcardTypeReference) typeParameter;
    assertEquals(1, wildcard.getConstraints().size());
    assertTrue(wildcard.getConstraints().get(0) instanceof JvmUpperBound);
    JvmUpperBound upperBound = (JvmUpperBound) wildcard.getConstraints().get(0);
    assertNotNull(upperBound.getTypeReference());
    JvmType upperBoundType = upperBound.getTypeReference().getType();
    assertFalse(upperBoundType.eIsProxy());
    assertEquals("java.lang.Object", upperBoundType.getIdentifier());
}
Also used : JvmOperation(org.eclipse.xtext.common.types.JvmOperation) JvmUpperBound(org.eclipse.xtext.common.types.JvmUpperBound) JvmFormalParameter(org.eclipse.xtext.common.types.JvmFormalParameter) JvmWildcardTypeReference(org.eclipse.xtext.common.types.JvmWildcardTypeReference) 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 70 with JvmFormalParameter

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

the class AbstractTypeProviderTest method testEnum_04.

@Test
public void testEnum_04() throws Exception {
    String typeName = TestEnum.class.getName();
    JvmEnumerationType type = (JvmEnumerationType) getTypeProvider().findTypeByName(typeName);
    List<JvmMember> members = type.getMembers();
    boolean constructorFound = false;
    for (JvmMember member : members) {
        if (member instanceof JvmConstructor) {
            assertFalse(constructorFound);
            constructorFound = true;
            List<JvmFormalParameter> parameters = ((JvmConstructor) member).getParameters();
            // synthetic parameters are not returned
            assertEquals(1, parameters.size());
        }
    }
    assertTrue(constructorFound);
}
Also used : JvmFormalParameter(org.eclipse.xtext.common.types.JvmFormalParameter) JvmConstructor(org.eclipse.xtext.common.types.JvmConstructor) JvmMember(org.eclipse.xtext.common.types.JvmMember) JvmEnumerationType(org.eclipse.xtext.common.types.JvmEnumerationType) Test(org.junit.Test)

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