@Override public boolean isPrimitive() { return type.eClass() == TypesPackage.Literals.JVM_PRIMITIVE_TYPE; }
@Override /* @Nullable */ public Primitive getPrimitiveKindIfWrapperType() { if (type.eClass() == TypesPackage.Literals.JVM_GENERIC_TYPE) { JvmGenericType casted = (JvmGenericType) type; return getPrimitiveKind(casted); } else if (type.eClass() == TypesPackage.Literals.JVM_TYPE_PARAMETER) { JvmTypeParameter typeParameter = (JvmTypeParameter) type; return getPrimitiveKind(typeParameter, null); } return null; }
@Override public boolean isAnonymous() { return type.eClass() == TypesPackage.Literals.JVM_GENERIC_TYPE && ((JvmGenericType) type).isAnonymous(); }
@Override public List<JvmType> getRawTypes() { if (type.eClass() != TypesPackage.Literals.JVM_TYPE_PARAMETER) { return Collections.singletonList(type); } // TODO optimize return super.getRawTypes(); }
@Override public boolean isWrapper() { if (type.eClass() == TypesPackage.Literals.JVM_GENERIC_TYPE) { JvmGenericType casted = (JvmGenericType) type; return isWrapper(casted); } else if (type.eClass() == TypesPackage.Literals.JVM_TYPE_PARAMETER) { JvmTypeParameter typeParameter = (JvmTypeParameter) type; return isWrapper(typeParameter, null); } return false; }
@Override public boolean isType(Class<?> clazz) { return type.eClass() != TypesPackage.Literals.JVM_TYPE_PARAMETER && clazz.getName().equals(type.getIdentifier()); }
@Override public boolean isPrimitiveVoid() { return type.eClass() == TypesPackage.Literals.JVM_VOID && !type.eIsProxy(); }
@Override public boolean isInterfaceType() { return type.eClass() == TypesPackage.Literals.JVM_GENERIC_TYPE && ((JvmGenericType) type).isInterface(); }
@Override public LightweightTypeReference getRawTypeReference() { if (typeArguments == null && type.eClass() != TypesPackage.Literals.JVM_TYPE_PARAMETER) { return this; } if (type.eClass() != TypesPackage.Literals.JVM_TYPE_PARAMETER) { return getOwner().newParameterizedTypeReference(type); } // TODO optimize return super.getRawTypeReference(); }
@Override public boolean apply(JvmTypeReference typeReference) { JvmType type = typeReference.getType(); if (type != null && type.eClass() == TypesPackage.Literals.JVM_GENERIC_TYPE) { return ((JvmGenericType) type).isInterface(); } return false; } });
protected LightweightTypeReference getTypeParametersForSuperType( final Multimap<JvmType, LightweightTypeReference> all, JvmType rawType, ITypeReferenceOwner owner, List<LightweightTypeReference> types) { EClass rawTypeClass = rawType.eClass(); if (rawTypeClass == TypesPackage.Literals.JVM_GENERIC_TYPE) { return doGetTypeParametersForSuperType(all, (JvmGenericType) rawType, owner, types); } else if (rawTypeClass == TypesPackage.Literals.JVM_ARRAY_TYPE) { return doGetTypeParametersForSuperType(all, (JvmArrayType) rawType, owner, types); } return null; }
protected boolean isInner(JvmType type) { if (type != null && type.eClass() == TypesPackage.Literals.JVM_GENERIC_TYPE) { if (type.eContainer() instanceof JvmDeclaredType) { return !((JvmGenericType) type).isStatic(); } } return false; }
protected boolean isInner(JvmType type) { if (type.eClass() == TypesPackage.Literals.JVM_GENERIC_TYPE) { if (type.eContainer() instanceof JvmDeclaredType) { return !((JvmGenericType) type).isStatic(); } } return false; }
@Override protected void doVisitParameterizedTypeReference(ParameterizedTypeReference reference) { JvmType rawType = reference.getType(); if (rawType.eClass() == TypesPackage.Literals.JVM_GENERIC_TYPE) { List<JvmTypeParameter> typeParameters = ((JvmTypeParameterDeclarator) rawType).getTypeParameters(); for(int i = 0, size = typeParameters.size(); i < size; i++) { JvmTypeParameter typeParameter = typeParameters.get(i); reference.addTypeArgument(owner.newParameterizedTypeReference(typeParameter)); } } } });
protected boolean isClass(JvmType type) { EClass eClass = type.eClass(); if (eClass == TypesPackage.Literals.JVM_ARRAY_TYPE) return isClass(((JvmArrayType) type).getComponentType()); return eClass == TypesPackage.Literals.JVM_GENERIC_TYPE && !((JvmGenericType) type).isInterface(); }
private ITypeComputationState addEnumImportsIfNecessary(ITypeComputationState state, LightweightTypeReference expectedType, JvmType enumTypeCandidate) { ITypeComputationState expectationState = state.withExpectation(expectedType); if (enumTypeCandidate != null && enumTypeCandidate.eClass() == TypesPackage.Literals.JVM_ENUMERATION_TYPE) { expectationState.addImports(new EnumLiteralImporter((JvmDeclaredType) enumTypeCandidate)); } return expectationState; }
@Override public boolean isRawType() { EClass typeClass = type.eClass(); if (typeClass == TypesPackage.Literals.JVM_GENERIC_TYPE && typeArguments == null) { return ((InternalEObject)type).eIsSet(TypesPackage.JVM_GENERIC_TYPE__TYPE_PARAMETERS); } else if (typeClass == TypesPackage.Literals.JVM_TYPE_PARAMETER) { JvmTypeParameter typeParameter = (JvmTypeParameter) type; return isRawType(typeParameter, new RecursionGuard<JvmTypeParameter>()); } return false; }
public LightweightTypeReference toPlainTypeReference(JvmType type) { if (type.eClass() == TypesPackage.Literals.JVM_ARRAY_TYPE) { JvmComponentType componentType = ((JvmArrayType) type).getComponentType(); LightweightTypeReference componentTypeReference = toPlainTypeReference(componentType); return owner.newArrayTypeReference(componentTypeReference); } return owner.newParameterizedTypeReference(type); }
@Override public LightweightTypeReference getRawTypeReference() { if (isRawType()) { return this; } LightweightTypeReference rawOuter = outer.getRawTypeReference(); JvmType type = getType(); if (type.eClass() != TypesPackage.Literals.JVM_TYPE_PARAMETER) { return getOwner().newParameterizedTypeReference(rawOuter, type); } return getServices().getRawTypeHelper().getRawTypeReference(this, getOwner().getContextResourceSet()); }
@Override public LightweightTypeReference getRawTypeReference() { if (isRawType()) { return this; } LightweightTypeReference rawOuter = outer.getRawTypeReference(); JvmType type = getType(); if (type.eClass() != TypesPackage.Literals.JVM_TYPE_PARAMETER) { return getOwner().newParameterizedTypeReference(rawOuter, type); } return getServices().getRawTypeHelper().getRawTypeReference(this, getOwner().getContextResourceSet()); }