@Override protected List<JvmFeature> findAllFeaturesByName(JvmType type, String simpleName, IResolvedFeatures.Provider resolvedFeaturesProvider) { IResolvedFeatures resolvedFeatures = resolvedFeaturesProvider.getResolvedFeatures(type).getParameterizedView(receiverType); return resolvedFeatures.getAllFeatures(simpleName); }
protected Set<JvmFeature> getAllFeatures(LightweightTypeReference extensionType, IResolvedFeatures.Provider resolvedFeaturesProvider) { Set<JvmFeature> allFeatures = Sets.newLinkedHashSet(); List<JvmType> types = extensionType.getRawTypes(); for (JvmType type : types) { if (type instanceof JvmDeclaredType) { IResolvedFeatures resolvedFeatures = resolvedFeaturesProvider.getResolvedFeatures(type).getParameterizedView(extensionType); List<JvmFeature> features = resolvedFeatures.getAllFeatures(); allFeatures.addAll(features); } } return allFeatures; }
@Override public void accept(String simpleName, int order) { for(JvmType type: types) { if (type instanceof JvmDeclaredType) { IResolvedFeatures resolvedFeatures = bucket.getResolvedFeaturesProvider().getResolvedFeatures(type).getParameterizedView(extensionType); List<JvmFeature> features = resolvedFeatures.getAllFeatures(simpleName); if (order == 1) { allFeatures.addAll(features); } else { for(int i = 0, size = features.size(); i < size; i++) { JvmFeature feature = features.get(i); if (feature.eClass() == TypesPackage.Literals.JVM_OPERATION) { allFeatures.add(feature); } } } } } } });