for(JvmTypeConstraint constraint: constraints) { if (constraint instanceof JvmUpperBound) { JvmTypeReference rawType = visit(constraint.getTypeReference(), resource); if (result == null) { if (rawType != null && rawType.eContainer() != null) { return result; return createObjectReference(resource);
@Override public JvmTypeReference doVisitParameterizedTypeReference(JvmParameterizedTypeReference reference, Resource resource) { JvmType type = reference.getType(); if (type != null && !type.eIsProxy()) { if (type instanceof JvmTypeParameterDeclarator) { if (!((JvmTypeParameterDeclarator) type).getTypeParameters().isEmpty()) { JvmParameterizedTypeReference result = factory.createJvmParameterizedTypeReference(); result.setType(type); return result; } } else if (type instanceof JvmTypeParameter) { return getRawTypeFromConstraints(((JvmTypeParameter) type).getConstraints(), resource); } } return reference; }
protected String getRawTypeIdentifier(JvmTypeReference reference) { if (reference instanceof JvmParameterizedTypeReference) { JvmType typeOrProxy = (JvmType) reference.eGet(TypesPackage.Literals.JVM_PARAMETERIZED_TYPE_REFERENCE__TYPE, false); if (typeOrProxy.eIsProxy()) { URI uri = ((InternalEObject)typeOrProxy).eProxyURI(); if (URIHelperConstants.PROTOCOL.equals(uri.scheme())) { if (URIHelperConstants.PRIMITIVES.regionMatches(1, uri.segment(0), 0, URIHelperConstants.PRIMITIVES.length() - 1)) { String fragment = uri.fragment(); return fragment; } else if (URIHelperConstants.OBJECTS.regionMatches(1, uri.segment(0), 0, URIHelperConstants.OBJECTS.length() - 2)) { String fragment = uri.fragment(); if (fragment.lastIndexOf('/') == -1) return fragment; } } } } RawTypeReferenceImplementation strategy = new RawTypeReferenceImplementation(TypesFactory.eINSTANCE); JvmTypeReference result = strategy.getRawTypeReference(reference, eResource()); if (result == null) return null; JvmType rawResult = result.getType(); return rawResult == null ? null : rawResult.getIdentifier(); }
for (JvmTypeConstraint constraint : constraints) { if (constraint instanceof JvmUpperBound) { JvmTypeReference rawType = visit(constraint.getTypeReference(), resource); if (result == null) { if (rawType != null && rawType.eContainer() != null) { return result; return createObjectReference(resource);
@Override public JvmTypeReference doVisitCompoundTypeReference(JvmCompoundTypeReference reference, Resource resource) { JvmCompoundTypeReference result = null; List<JvmTypeReference> components = reference.getReferences(); int recent = -1; for(int i = 0; i < components.size(); i++) { JvmTypeReference component = components.get(i); JvmTypeReference rawType = visit(component, resource); if (rawType != null && component != rawType) { if (result == null) { result = (JvmCompoundTypeReference) EcoreUtil.create(reference.eClass()); } for(int j = recent + 1; j < i; j++) { result.getReferences().add(components.get(j)); } result.getReferences().add(rawType); recent = i; } } if (result != null) return result; return reference; }
@Override public JvmTypeReference doVisitCompoundTypeReference(JvmCompoundTypeReference reference, Resource resource) { JvmCompoundTypeReference result = null; List<JvmTypeReference> components = reference.getReferences(); int recent = -1; for (int i = 0; i < components.size(); i++) { JvmTypeReference component = components.get(i); JvmTypeReference rawType = visit(component, resource); if (rawType != null && component != rawType) { if (result == null) { result = (JvmCompoundTypeReference) EcoreUtil.create(reference.eClass()); } for (int j = recent + 1; j < i; j++) { result.getReferences().add(components.get(j)); } result.getReferences().add(rawType); recent = i; } } if (result != null) return result; return reference; }
@Override public JvmTypeReference doVisitParameterizedTypeReference(JvmParameterizedTypeReference reference, Resource resource) { JvmType type = reference.getType(); if (type != null && !type.eIsProxy()) { if (type instanceof JvmTypeParameterDeclarator) { if (!((JvmTypeParameterDeclarator) type).getTypeParameters().isEmpty()) { JvmParameterizedTypeReference result = factory.createJvmParameterizedTypeReference(); result.setType(type); return result; } } else if (type instanceof JvmTypeParameter) { return getRawTypeFromConstraints(((JvmTypeParameter) type).getConstraints(), resource); } } return reference; }
@Override public JvmTypeReference doVisitWildcardTypeReference(JvmWildcardTypeReference reference, Resource resource) { return getRawTypeFromConstraints(reference.getConstraints(), resource); }
public JvmTypeReference getRawTypeReference(JvmTypeReference reference, Resource resource) { JvmTypeReference result = visit(reference, resource); return result; }
public JvmTypeReference getRawTypeReference(JvmTypeReference reference, Resource resource) { JvmTypeReference result = typeReferenceImplementation.getRawTypeReference(reference, resource); return result; } }
@Override public JvmTypeReference doVisitGenericArrayTypeReference(JvmGenericArrayTypeReference reference, Resource resource) { JvmTypeReference componentType = reference.getComponentType(); JvmTypeReference rawComponentType = visit(componentType, resource); if (componentType != rawComponentType) { JvmGenericArrayTypeReference result = factory.createJvmGenericArrayTypeReference(); result.setComponentType(rawComponentType); return result; } return reference; }
@Override public JvmTypeReference getRawTypeReference(JvmTypeReference reference, Resource resource) { JvmTypeReference result = typeReferenceImplementation.getRawTypeReference(reference, resource); return result; } }
@Override public JvmTypeReference doVisitGenericArrayTypeReference(JvmGenericArrayTypeReference reference, Resource resource) { JvmTypeReference componentType = reference.getComponentType(); JvmTypeReference rawComponentType = visit(componentType, resource); if (componentType != rawComponentType) { JvmGenericArrayTypeReference result = factory.createJvmGenericArrayTypeReference(); result.setComponentType(rawComponentType); return result; } return reference; }
protected JvmType getRawType(JvmTypeReference reference) { RawTypeReferenceImplementation strategy = new RawTypeReferenceImplementation(TypesFactory.eINSTANCE); JvmTypeReference result = strategy.getRawTypeReference(reference, eResource()); return result == null ? null : result.getType(); }
@Override public JvmTypeReference doVisitWildcardTypeReference(JvmWildcardTypeReference reference, Resource resource) { return getRawTypeFromConstraints(reference.getConstraints(), resource); }
public JvmTypeReference getRawTypeReference(JvmTypeReference reference, Resource resource) { JvmTypeReference result = visit(reference, resource); return result; }