@SuppressWarnings({"checkstyle:booleanexpressioncomplexity", "checkstyle:cyclomaticcomplexity"}) private boolean isEqualityTestValidField(JvmTypeReference reference) { for (final Class<?> type : EQUALITY_TEST_TYPES) { if (this.typeReferences.is(reference, type)) { return true; } } return false; }
public boolean isInstanceOf(JvmTypeReference reference, Class<?> clazz) { if (isNullOrProxy(reference)) return false; if (is(reference, clazz)) { return true; } Set<JvmTypeReference> types = superTypeCollector.collectSuperTypes(reference); for (JvmTypeReference jvmTypeReference : types) { if (is(jvmTypeReference, clazz)) return true; } return false; }
@Override public Boolean apply(final JvmTypeReference it) { return Boolean.valueOf(EMFPatternLanguageJvmModelInferrerUtil.this._typeReferences.is(it, clazz)); } };
public boolean is(final JvmTypeReference reference, final Class<?> clazz) { if (isNullOrProxy(reference)) return false; boolean result = is(reference.getType(), clazz); return result; }
public boolean isWrapperType(JvmType type) { if (typeReferences.is(type, Byte.class)) { return true; } else if (typeReferences.is(type, Short.class)) { return true; } else if (typeReferences.is(type, Character.class)) { return true; } else if (typeReferences.is(type, Integer.class)) { return true; } else if (typeReferences.is(type, Long.class)) { return true; } else if (typeReferences.is(type, Float.class)) { return true; } else if (typeReferences.is(type, Double.class)) { return true; } else if (typeReferences.is(type, Boolean.class)) { return true; } else if (typeReferences.is(type, Void.class)) { return true;
public boolean is(final JvmTypeReference reference, final Class<?> clazz) { if (isNullOrProxy(reference)) return false; boolean result = is(reference.getType(), clazz); return result; }
public boolean isWrapperType(JvmType type) { if (typeReferences.is(type, Byte.class)) { return true; } else if (typeReferences.is(type, Short.class)) { return true; } else if (typeReferences.is(type, Character.class)) { return true; } else if (typeReferences.is(type, Integer.class)) { return true; } else if (typeReferences.is(type, Long.class)) { return true; } else if (typeReferences.is(type, Float.class)) { return true; } else if (typeReferences.is(type, Double.class)) { return true; } else if (typeReferences.is(type, Boolean.class)) { return true; } else if (typeReferences.is(type, Void.class)) { return true;
@Override public TypeConformanceResult doVisitGenericArrayTypeReference(JvmParameterizedTypeReference left, JvmGenericArrayTypeReference right, TypeConformanceComputationArgument.Internal<JvmParameterizedTypeReference> param) { if (conformanceComputer.getTypeReferences().is(left, Object.class)) return TypeConformanceResult.SUBTYPE; if (conformanceComputer.getTypeReferences().is(left, Serializable.class)) return TypeConformanceResult.SUBTYPE; if (conformanceComputer.getTypeReferences().is(left, Cloneable.class)) return TypeConformanceResult.SUBTYPE; return TypeConformanceResult.FAILED; }
public boolean isCompatibleWith(final JvmType type, final Class<?> clazz) { return (this._typeReferences.is(type, clazz) || ((type instanceof JvmDeclaredType) && IterableExtensions.<JvmTypeReference>exists(((JvmDeclaredType) type).getSuperTypes(), ((Function1<JvmTypeReference, Boolean>) (JvmTypeReference it) -> { return Boolean.valueOf(this._typeReferences.is(it, clazz)); })))); }
public JvmType getPrimitiveTypeIfWrapper(JvmDeclaredType type) { if (typeReferences.is(type, Byte.class)) { return typeReferences.findDeclaredType(Byte.TYPE, type); } else if (typeReferences.is(type, Short.class)) { return typeReferences.findDeclaredType(Short.TYPE, type); } else if (typeReferences.is(type, Character.class)) { return typeReferences.findDeclaredType(Character.TYPE, type); } else if (typeReferences.is(type, Integer.class)) { return typeReferences.findDeclaredType(Integer.TYPE, type); } else if (typeReferences.is(type, Long.class)) { return typeReferences.findDeclaredType(Long.TYPE, type); } else if (typeReferences.is(type, Float.class)) { return typeReferences.findDeclaredType(Float.TYPE, type); } else if (typeReferences.is(type, Double.class)) { return typeReferences.findDeclaredType(Double.TYPE, type); } else if (typeReferences.is(type, Boolean.class)) { return typeReferences.findDeclaredType(Boolean.TYPE, type); } else if (typeReferences.is(type, Void.class)) { return typeReferences.findDeclaredType(Void.TYPE, type); } return null; }
public JvmType getPrimitiveTypeIfWrapper(JvmDeclaredType type) { if (typeReferences.is(type, Byte.class)) { return typeReferences.findDeclaredType(Byte.TYPE, type); } else if (typeReferences.is(type, Short.class)) { return typeReferences.findDeclaredType(Short.TYPE, type); } else if (typeReferences.is(type, Character.class)) { return typeReferences.findDeclaredType(Character.TYPE, type); } else if (typeReferences.is(type, Integer.class)) { return typeReferences.findDeclaredType(Integer.TYPE, type); } else if (typeReferences.is(type, Long.class)) { return typeReferences.findDeclaredType(Long.TYPE, type); } else if (typeReferences.is(type, Float.class)) { return typeReferences.findDeclaredType(Float.TYPE, type); } else if (typeReferences.is(type, Double.class)) { return typeReferences.findDeclaredType(Double.TYPE, type); } else if (typeReferences.is(type, Boolean.class)) { return typeReferences.findDeclaredType(Boolean.TYPE, type); } else if (typeReferences.is(type, Void.class)) { return typeReferences.findDeclaredType(Void.TYPE, type); } return null; }
public boolean isCompatibleWith(final JvmType type, final Class<?> clazz) { boolean _or = false; boolean _is = this._typeReferences.is(type, clazz); if (_is) { _or = true; } else { boolean _and = false; if (!(type instanceof JvmDeclaredType)) { _and = false; } else { EList<JvmTypeReference> _superTypes = ((JvmDeclaredType) type).getSuperTypes(); final Function1<JvmTypeReference, Boolean> _function = new Function1<JvmTypeReference, Boolean>() { @Override public Boolean apply(final JvmTypeReference it) { return Boolean.valueOf(EMFPatternLanguageJvmModelInferrerUtil.this._typeReferences.is(it, clazz)); } }; boolean _exists = IterableExtensions.<JvmTypeReference>exists(_superTypes, _function); _and = _exists; } _or = _and; } return _or; }
protected boolean _isConstant(final XCastedExpression expression) { return (this._primitives.isPrimitive(expression.getType()) || this._typeReferences.is(expression.getType(), String.class)); }
@Check public void checkJvmFormalParameterNotPrimitiveVoid(JvmFormalParameter param) { if (typeReferences.is(param.getParameterType(), Void.TYPE)) { error("The primitive 'void' cannot be the type of a parameter", param.getParameterType(), null, IssueCodes.INVALID_USE_OF_TYPE); } }
protected int getMaxDistanceToObject(JvmTypeReference type) { type = primitives.asWrapperTypeIfPrimitive(type); if (typeRefs.is(type, Object.class)) return 0; JvmType jvmType = type.getType(); int maxDistance = 1; if (jvmType instanceof JvmDeclaredType) { EList<JvmTypeReference> list = ((JvmDeclaredType) jvmType).getSuperTypes(); for (JvmTypeReference jvmTypeReference : list) { int result = 1 + getMaxDistanceToObject(jvmTypeReference); if (result > maxDistance) maxDistance = result; } } return maxDistance; } }
JvmTypeReference parameterType = parameters.get(i).getParameterType(); JvmTypeReference argumentType = argumentTypes.get(i); if (argumentType != null && parameterType != null && !typeReferences.is(argumentType, Void.TYPE)) { resolveAgainstActualType(parameterType, argumentType, result, true, i);
if (!conformanceComputer.getTypeReferences().is(leftUpperBound, Object.class)) return TypeConformanceResult.FAILED; if (!conformanceComputer.getTypeReferences().is(leftUpperBound, Object.class)) return TypeConformanceResult.FAILED; for(JvmTypeConstraint rightConstraint: rightConstraints) { if (rightConstraint instanceof JvmUpperBound) { if (!conformanceComputer.getTypeReferences().is(rightConstraint.getTypeReference(), Object.class)) return TypeConformanceResult.FAILED; } else if (rightConstraint instanceof JvmLowerBound) {
final Class<IAggregatorFactory> clazz = IAggregatorFactory.class; if (aggregator != null && !aggregator.eIsProxy()) { if (typeReferences.is(aggregator, clazz)) { return; if (Iterators.all(it, input -> input == null || input.eIsProxy() || !typeReferences.is(input, clazz))) { error(String.format("%s is not an aggregator definition.", aggregator.getSimpleName()), PatternLanguagePackage.Literals.AGGREGATED_VALUE__AGGREGATOR, IssueCodes.INVALID_AGGREGATOR);
public boolean accept(JvmTypeReference superType, int distance) { JvmTypeReference arraySuperType = references.createArrayType(superType); boolean result = !outerCollecting[0]; if (!outerCollecting[0] || (result = original.accept(arraySuperType, distance))) { outerCollecting[0] = true; } if (references.is(superType, Object.class)) { outerCollecting[0] = true; result = original.accept(superType, distance + 1) || result; result = original.accept(references.getTypeForName(Serializable.class, superType.getType()), distance + 1) || result; result = original.accept(references.getTypeForName(Cloneable.class, superType.getType()), distance + 1) || result; } return result; } };
protected void generateActualDispatchCall(JvmOperation dispatchOperation, JvmOperation actualOperationToCall, ITreeAppendable a, ITypeReferenceOwner owner) { a.append(actualOperationToCall.getSimpleName()).append("("); Iterator<JvmFormalParameter> iter1 = dispatchOperation.getParameters().iterator(); for (Iterator<JvmFormalParameter> iter2 = actualOperationToCall.getParameters().iterator(); iter2.hasNext();) { JvmFormalParameter p1 = iter1.next(); JvmFormalParameter p2 = iter2.next(); LightweightTypeReference type1 = owner.toLightweightTypeReference(p1.getParameterType()); LightweightTypeReference type2 = owner.toLightweightTypeReference(p2.getParameterType()); if (!type2.isAssignableFrom(type1, new TypeConformanceComputationArgument(true, false, true, true, false, false))) { a.append("(").append(type2.getWrapperTypeIfPrimitive()).append(")"); } if (typeReferences.is(p2.getParameterType(), Void.class)) { a.append("null"); } else { a.append(getVarName(p1, a)); } if (iter2.hasNext()) { a.append(", "); } } a.append(")"); }