下面列出了怎么用org.eclipse.emf.ecore.util.EContentsEList的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* @since 2.6
*/
public static Iterator<EObject> getNonDerivedContents(EObject eObject) {
EClassImpl.FeatureSubsetSupplier featureSupplier = (EClassImpl.FeatureSubsetSupplier) eObject.eClass().getEAllStructuralFeatures();
EStructuralFeature[] eStructuralFeatures = featureSupplier.containments();
return (eStructuralFeatures == null
? EContentsEList.<EObject> emptyContentsEList()
: new EContentsEList<EObject>(eObject, eStructuralFeatures) {
@Override
protected ListIterator<EObject> newResolvingListIterator() {
return new ResolvingFeatureIteratorImpl<EObject>(eObject, eStructuralFeatures) {
@Override
protected boolean isIncluded(EStructuralFeature eStructuralFeature) {
return !eStructuralFeature.isDerived();
}
};
}
}).iterator();
}
@Override
protected void setTarget(EObject target) {
super.setTarget(target);
for (EContentsEList.FeatureIterator<EObject> featureIterator = (EContentsEList.FeatureIterator<EObject>) target
.eCrossReferences().iterator(); featureIterator.hasNext();) {
Notifier notifier = featureIterator.next();
EStructuralFeature feature = featureIterator.feature();
if (shouldAdapt(feature)) {
addAdapter(notifier);
}
}
}
@Override
protected void unsetTarget(EObject target) {
super.unsetTarget(target);
for (EContentsEList.FeatureIterator<EObject> featureIterator = (EContentsEList.FeatureIterator<EObject>) target
.eCrossReferences().iterator(); featureIterator.hasNext();) {
Notifier notifier = featureIterator.next();
EStructuralFeature feature = featureIterator.feature();
if (shouldAdapt(feature)) {
removeAdapter(notifier);
}
}
}
/**
* {@inheritDoc}
*/
@Override
public EList<EObject> eContents() {
if (getType().getModel().isReflection()) {
final EStructuralFeature[] features = ((EClassImpl.FeatureSubsetSupplier) getEClass()
.getEAllStructuralFeatures()).containments();
return new EContentsEList<EObject>(this, features);
}
return super.eContents();
}
/**
* {@inheritDoc}
*/
@Override
public EList<EObject> eCrossReferences() {
if (getType().getModel().isReflection()) {
final EStructuralFeature[] features = ((EClassImpl.FeatureSubsetSupplier) getEClass()
.getEAllStructuralFeatures()).crossReferences();
return new EContentsEList<EObject>(this, features);
}
return super.eCrossReferences();
}