@NonNullByDefault public class RawResolvedFeatures extends AbstractResolvedFeatures implements org.eclipse.emf.common.notify.Adapter, IResolvedFeatures
RawResolvedFeatures
allow to obtain the actual API of a JvmType
.
This means, it properly applies shadowing semantics and override resolution, especially
if type parameters and type arguments are present.
Concrete instances of RawResolvedFeatures
are obtained via
getResolvedFeatures(JvmDeclaredType, CommonTypeComputationServices)
and are cached per JvmType
. They will invalidate themselves on change.
Instances of this class are not expected to be used concurrently.org.eclipse.emf.common.notify.Adapter.Internal
IResolvedFeatures.Provider
NO_FEATURES
Modifier | Constructor and Description |
---|---|
protected |
RawResolvedFeatures(JvmType type,
CommonTypeComputationServices services) |
protected |
RawResolvedFeatures(LightweightTypeReference type,
OverrideTester overrideTester) |
Modifier and Type | Method and Description |
---|---|
protected void |
computeAllFeatures(JvmDeclaredType type,
java.lang.String name,
com.google.common.collect.Multimap<java.lang.String,AbstractResolvedOperation> processedOperations,
java.util.Set<java.lang.String> processedFields,
java.util.List<JvmFeature> result) |
protected java.util.List<JvmFeature> |
computeAllFeatures(java.lang.String simpleName) |
java.util.List<JvmFeature> |
getAllFeatures(java.lang.String simpleName)
Returns all reachable features with the given
simpleName . |
IResolvedFeatures |
getParameterizedView(LightweightTypeReference concrete)
Applies concretely bound type arguments to this instance of
IResolvedFeatures . |
org.eclipse.emf.common.notify.Notifier |
getTarget() |
boolean |
isAdapterForType(java.lang.Object type) |
void |
notifyChanged(org.eclipse.emf.common.notify.Notification notification) |
protected static void |
requestNotificationOnChange(JvmType type,
java.lang.Runnable listener)
Registers the given listener to be notified on type changes, if (and only if) the type
if expected to be changeable.
|
void |
setTarget(org.eclipse.emf.common.notify.Notifier newTarget) |
createResolvedOperation, createResolvedOperation, getRawType, getType, isOverridden
protected RawResolvedFeatures(JvmType type, CommonTypeComputationServices services)
protected RawResolvedFeatures(LightweightTypeReference type, OverrideTester overrideTester)
protected static void requestNotificationOnChange(JvmType type, java.lang.Runnable listener)
IMirrorExtension.isSealed()
public IResolvedFeatures getParameterizedView(LightweightTypeReference concrete)
IResolvedFeatures
IResolvedFeatures
.getParameterizedView
in interface IResolvedFeatures
public java.util.List<JvmFeature> getAllFeatures(java.lang.String simpleName)
IResolvedFeatures
simpleName
.
Bound type parameters are properly considered when the override semantics are applied for
these features.getAllFeatures
in interface IResolvedFeatures
protected java.util.List<JvmFeature> computeAllFeatures(java.lang.String simpleName)
protected void computeAllFeatures(JvmDeclaredType type, java.lang.String name, com.google.common.collect.Multimap<java.lang.String,AbstractResolvedOperation> processedOperations, java.util.Set<java.lang.String> processedFields, java.util.List<JvmFeature> result)
public void notifyChanged(@Nullable org.eclipse.emf.common.notify.Notification notification)
notifyChanged
in interface org.eclipse.emf.common.notify.Adapter
@Nullable public org.eclipse.emf.common.notify.Notifier getTarget()
getTarget
in interface org.eclipse.emf.common.notify.Adapter
public void setTarget(@Nullable org.eclipse.emf.common.notify.Notifier newTarget)
setTarget
in interface org.eclipse.emf.common.notify.Adapter
public boolean isAdapterForType(@Nullable java.lang.Object type)
isAdapterForType
in interface org.eclipse.emf.common.notify.Adapter