下面列出了怎么用org.eclipse.emf.ecore.impl.EClassImpl的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* resolves any lazy cross references in this resource, adding Issues for unresolvable elements to this resource.
* This resource might still contain resolvable proxies after this method has been called.
*
* @param mon a {@link CancelIndicator} can be used to stop the resolution.
*/
public void resolveLazyCrossReferences(final CancelIndicator mon) {
final CancelIndicator monitor = mon == null ? CancelIndicator.NullImpl : mon;
TreeIterator<Object> iterator = EcoreUtil.getAllContents(this, true);
while (iterator.hasNext()) {
operationCanceledManager.checkCanceled(monitor);
InternalEObject source = (InternalEObject) iterator.next();
EStructuralFeature[] eStructuralFeatures = ((EClassImpl.FeatureSubsetSupplier) source.eClass()
.getEAllStructuralFeatures()).crossReferences();
if (eStructuralFeatures != null) {
for (EStructuralFeature crossRef : eStructuralFeatures) {
operationCanceledManager.checkCanceled(monitor);
resolveLazyCrossReference(source, crossRef);
}
}
}
}
/**
* @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();
}
public void resolveLazyCrossReferences(CancelIndicator monitor) {
TreeIterator<Object> iterator = EcoreUtil.getAllContents(this, true);
while (iterator.hasNext()) {
InternalEObject source = (InternalEObject) iterator.next();
EStructuralFeature[] eStructuralFeatures = ((EClassImpl.FeatureSubsetSupplier) source.eClass()
.getEAllStructuralFeatures()).crossReferences();
if (eStructuralFeatures != null) {
for (EStructuralFeature crossRef : eStructuralFeatures) {
if (monitor.isCanceled()) {
return;
}
resolveLazyCrossReference(source, crossRef, monitor);
}
}
}
}
private void replaceReferencesInGeneratedPackages(final List<EPackage> generatedPackages, final Map<EObject, EObject> eNamedElementMapping) {
final TreeIterator<EObject> packageContentIterator = EcoreUtil.<EObject>getAllContents(generatedPackages);
while (packageContentIterator.hasNext()) {
{
final EObject current = packageContentIterator.next();
EList<EStructuralFeature> _eAllStructuralFeatures = current.eClass().getEAllStructuralFeatures();
final EStructuralFeature[] crossReferenceFeatures = ((EClassImpl.FeatureSubsetSupplier) _eAllStructuralFeatures).crossReferences();
if ((crossReferenceFeatures != null)) {
for (final EStructuralFeature crossReferenceFeature : crossReferenceFeatures) {
boolean _isChangeable = crossReferenceFeature.isChangeable();
if (_isChangeable) {
final EReference reference = ((EReference) crossReferenceFeature);
boolean _isMany = reference.isMany();
if (_isMany) {
Object _eGet = current.eGet(reference);
final List<EObject> values = ((List<EObject>) _eGet);
for (final EObject value : values) {
boolean _containsKey = eNamedElementMapping.containsKey(value);
if (_containsKey) {
EcoreUtil.replace(current, reference, value, eNamedElementMapping.get(value));
}
}
} else {
Object _eGet_1 = current.eGet(reference);
final EObject value_1 = ((EObject) _eGet_1);
boolean _containsKey_1 = eNamedElementMapping.containsKey(value_1);
if (_containsKey_1) {
EcoreUtil.replace(current, reference, value_1, eNamedElementMapping.get(value_1));
}
}
}
}
}
}
}
}
/**
* {@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();
}