@Override protected List<JvmFeature> findAllFeaturesByName(JvmType type, String simpleName, IResolvedFeatures.Provider resolvedFeaturesProvider) { IResolvedFeatures resolvedFeatures = resolvedFeaturesProvider.getResolvedFeatures(type).getParameterizedView(receiverType); return resolvedFeatures.getAllFeatures(simpleName); }
protected ResolvedOperationInHierarchy createResolvedOperationInHierarchy(JvmOperation candidate, IOverrideCheckResult checkResult) { ResolvedOperationInHierarchy result = new ResolvedOperationInHierarchy(candidate, getBottom()); result.setCheckResult(checkResult); return result; }
protected boolean isOverridden(JvmOperation operation, Collection<AbstractResolvedOperation> processedOperations) { for(AbstractResolvedOperation processed: processedOperations) { if (overrideTester.isSubsignature(processed, operation, false).isOverridingOrImplementing()) { return true; } } return false; }
@Override public IResolvedOperation getOverriddenMethod() { if (!getDeclaration().isAbstract() && getDeclaration().getVisibility() != JvmVisibility.PRIVATE) { List<IResolvedOperation> overriddenAndImplemented = getOverriddenAndImplementedMethods(); for(IResolvedOperation candidate: overriddenAndImplemented) { if (!candidate.getDeclaration().isAbstract()) { return candidate; } } } return null; }
@Override public IOverrideCheckResult isOverridingOrImplementing(final JvmOperation operation) { return getOverrideTester().isSubsignature(this, operation, true); }
@Override protected boolean isRawTypeInheritance() { if (getDeclaration().isStatic()) { return false; } return super.isRawTypeInheritance(); }
@Override protected Map<JvmTypeParameter, LightweightMergedBoundTypeArgument> getContextTypeParameterMapping() { return getBottom().getContextTypeParameterMapping(); }
protected List<JvmFeature> findAllFeaturesByName(JvmType type, String simpleName, IResolvedFeatures.Provider resolvedFeaturesProvider) { IResolvedFeatures resolvedFeatures = resolvedFeaturesProvider.getResolvedFeatures(type); return resolvedFeatures.getAllFeatures(simpleName); }
@Override public List<JvmTypeParameter> getResolvedTypeParameters() { return getBottom().getTypeParameters(); }
/** * Allows to refuse a certain type parameter to be substituted. * @param typeParameter the type parameter that should be substituted. * @return <code>false</code> if the parameter may be substituted. <code>true</code> if it should be preserved. */ protected boolean isResolvedTypeParameter(JvmTypeParameter typeParameter) { return isResolvedTypeParameter(getContextType(), typeParameter); }
protected OverrideTester getOverrideTester() { return getBottom().getOverrideTester(); }
protected EnumSet<OverrideCheckDetails> getComputedDetails() { return thisOperation.getOverrideTester().getAllDetails(thisOperation, givenOperation, primaryDetail); }
protected RawResolvedFeatures(JvmDeclaredType type, CommonTypeComputationServices services) { this(createTypeReference(type, services), new OverrideTester()); }
@Override protected boolean isResolvedTypeParameter(JvmTypeParameter typeParameter) { if (getResolvedTypeParameters().contains(typeParameter)) { return true; } return super.isResolvedTypeParameter(typeParameter); }
/** * Returns the resolved features that are defined in the given <code>context type</code> and its supertypes. * Considers private methods of super types, too. * @return the resolved features. */ public ResolvedFeatures getResolvedFeatures(LightweightTypeReference contextType) { return new ResolvedFeatures(contextType, overrideTester); }
public List<IResolvedOperation> getAllOperations() { if (allOperations != null) { return allOperations; } return allOperations = computeAllOperations(); }
@Override public EnumSet<OverrideCheckDetails> getDetails() { if (details != null) { return details; } return details = getComputedDetails(); }
public List<IResolvedField> getDeclaredFields() { if (declaredFields != null) { return declaredFields; } return declaredFields = computeDeclaredFields(); }
public List<IResolvedOperation> getDeclaredOperations() { if (declaredOperations != null) { return declaredOperations; } return declaredOperations = computeDeclaredOperations(); }
/** * Returns the resolved features targeting a specific Java version in order to support new language features. */ public ResolvedFeatures getResolvedFeatures(LightweightTypeReference contextType, JavaVersion targetVersion) { return new ResolvedFeatures(contextType, overrideTester, targetVersion); }