protected XtendFeatureNode createNodeForFeature( IOutlineNode parentNode, final JvmDeclaredType inferredType, JvmFeature jvmFeature, EObject semanticFeature, int inheritanceDepth) { final boolean synthetic = typeExtensions.isSynthetic(jvmFeature); Object text = getText(synthetic ? jvmFeature : semanticFeature); ImageDescriptor image = getImageDescriptor(synthetic ? jvmFeature : semanticFeature); if (jvmFeature.getDeclaringType() != inferredType) { if (getCurrentMode() == SHOW_INHERITED_MODE) { StyledString label = (text instanceof StyledString) ? (StyledString) text : new StyledString(text.toString()); label.append( new StyledString( " - " + jvmFeature.getDeclaringType().getIdentifier(), StyledString.COUNTER_STYLER)); return factory.createXtendFeatureNode( parentNode, jvmFeature, image, label, true, synthetic, inheritanceDepth); } return null; } else { return factory.createXtendFeatureNode( parentNode, semanticFeature, image, text, true, synthetic, inheritanceDepth); } }
public void testOverriddenExtensionMethods_02() throws Exception { XbaseScopeProvider provider = get(XbaseScopeProvider.class); XExpression expression = expression("(null as java.util.Collection<String>).map(null)", true); IScope scope = provider.getScope(expression, XbasePackage.Literals.XABSTRACT_FEATURE_CALL__FEATURE); Iterable<IEObjectDescription> elements = scope.getElements(QualifiedName.create("map")); assertEquals(elements.toString(), 1, size(elements)); IEObjectDescription description = elements.iterator().next(); JvmFeature feature = (JvmFeature) description.getEObjectOrProxy(); assertEquals( IterableExtensions.class.getCanonicalName(), feature.getDeclaringType().getIdentifier()); }