类org.eclipse.emf.ecore.impl.EClassImpl源码实例Demo

下面列出了怎么用org.eclipse.emf.ecore.impl.EClassImpl的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: xtext-core   文件: LazyLinkingResource.java
/**
 * 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);
			}
		}
	}
}
 
源代码2 项目: xtext-core   文件: EcoreUtil2.java
/**
 * @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();
}
 
源代码3 项目: statecharts   文件: AbstractSCTResource.java
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);
			}
		}
	}
}
 
源代码4 项目: xtext-core   文件: EMFGeneratorFragment2.java
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));
              }
            }
          }
        }
      }
    }
  }
}
 
源代码5 项目: bonita-studio   文件: InstanceImpl.java
/**
 * {@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();
}
 
源代码6 项目: bonita-studio   文件: InstanceImpl.java
/**
 * {@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();
}
 
 类所在包
 类方法
 同包方法