@Override public TypeReference visitType(final TypeReference t, final Boolean recurse) { if (t.isGenericType()) { return new RawType(t); } return t; }
@Override public TypeDefinition resolve() { return getUnderlyingType().resolve(); } }
@Override public Boolean visitRawType(final RawType t, final TypeReference s) { return s.getSimpleType() == JvmType.Object && !s.isGenericType() && StringUtilities.equals(t.getInternalName(), s.getInternalName()); }
@Override public Boolean visitRawType(final RawType t, final TypeReference s) { return s.getSimpleType() == JvmType.Object && !s.isGenericType() && StringUtilities.equals(t.getInternalName(), s.getInternalName()); }
@Override public TypeReference visitType(final TypeReference t, final Boolean recurse) { if (t.isGenericType()) { return new RawType(t); } return t; }
@Override public TypeDefinition resolve() { return getUnderlyingType().resolve(); } }
@Override public Boolean visitRawType(final RawType t, final TypeReference s) { return s.getSimpleType() == JvmType.Object && !s.isGenericType() && StringUtilities.equals(t.getInternalName(), s.getInternalName()); }
@Override public TypeReference visitType(final TypeReference t, final Boolean recurse) { if (t.isGenericType()) { return new RawType(t); } return t; }
@Override public TypeDefinition resolve() { return getUnderlyingType().resolve(); } }
@Override public TypeReference getRawType() { if (isGenericType()) { if (_rawType == null) { synchronized (this) { if (_rawType == null) { _rawType = new RawType(this); } } } return _rawType; } return this; }
@Override public TypeReference visitRawType(final RawType t, final Void ignored) { TypeReference genericDefinition = t.getUnderlyingType(); if (!genericDefinition.isGenericDefinition()) { final TypeDefinition resolved = genericDefinition.resolve(); if (resolved == null || !resolved.isGenericDefinition()) { return BuiltinTypes.Object; } genericDefinition = resolved; } final TypeReference baseType = getBaseType(genericDefinition); return baseType != null && baseType.isGenericType() ? eraseRecursive(baseType) : baseType; }
@Override public TypeReference getRawType() { if (isGenericType()) { if (_rawType == null) { synchronized (this) { if (_rawType == null) { _rawType = new RawType(this); } } } return _rawType; } return this; }
@Override public TypeReference visitRawType(final RawType t, final Void ignored) { TypeReference genericDefinition = t.getUnderlyingType(); if (!genericDefinition.isGenericDefinition()) { final TypeDefinition resolved = genericDefinition.resolve(); if (resolved == null || !resolved.isGenericDefinition()) { return BuiltinTypes.Object; } genericDefinition = resolved; } final TypeReference baseType = getBaseType(genericDefinition); return baseType != null && baseType.isGenericType() ? eraseRecursive(baseType) : baseType; }
@Override public TypeReference getRawType() { if (isGenericType()) { if (_rawType == null) { synchronized (this) { if (_rawType == null) { _rawType = new RawType(this); } } } return _rawType; } return this; }
@Override public TypeReference visitRawType(final RawType t, final Void ignored) { TypeReference genericDefinition = t.getUnderlyingType(); if (!genericDefinition.isGenericDefinition()) { final TypeDefinition resolved = genericDefinition.resolve(); if (resolved == null || !resolved.isGenericDefinition()) { return BuiltinTypes.Object; } genericDefinition = resolved; } final TypeReference baseType = getBaseType(genericDefinition); return baseType != null && baseType.isGenericType() ? eraseRecursive(baseType) : baseType; }
private TypeReference typeWithMoreInformation(final TypeReference leftPreferred, final TypeReference rightPreferred) { final int left = getInformationAmount(leftPreferred); final int right = getInformationAmount(rightPreferred); if (left < right) { return rightPreferred; } if (left > right) { return leftPreferred; } if (leftPreferred != null && rightPreferred != null) { return MetadataHelper.findCommonSuperType( leftPreferred.isGenericDefinition() ? new RawType(leftPreferred) : leftPreferred, rightPreferred.isGenericDefinition() ? new RawType(rightPreferred) : rightPreferred ); } return leftPreferred; }
private TypeReference typeWithMoreInformation(final TypeReference leftPreferred, final TypeReference rightPreferred) { final int left = getInformationAmount(leftPreferred); final int right = getInformationAmount(rightPreferred); if (left < right) { return rightPreferred; } if (left > right) { return leftPreferred; } if (leftPreferred != null && rightPreferred != null) { return MetadataHelper.findCommonSuperType( leftPreferred.isGenericDefinition() ? new RawType(leftPreferred) : leftPreferred, rightPreferred.isGenericDefinition() ? new RawType(rightPreferred) : rightPreferred ); } return leftPreferred; }