org.eclipse.viatra.transformation.runtime.emf.modelmanipulation

## Interface IEcoreReadOperations<RootContainer,ModelObject>

- Type Parameters:
    `RootContainer` - the type of root containers in which model elements may reside (e.g. a `Resource`)
    `ModelObject` - the type representing a model element; can be simply an `EObject` or a surrogate key
  All Known Subinterfaces:
    IModelReadOperations
  All Known Implementing Classes:
    AbstractModelManipulations, IndexHostManipulations, ModelManipulationWithEditingDomain, SimpleModelManipulations

      public interface IEcoreReadOperations<RootContainer,ModelObject>

  Interface for commands that read some representation of an instance of an Ecore metamodel. `IModelReadOperations` is provided as the default case where the instance model is simply an EMF model.

  Note that not all representations may support / preserve ordered collections.

  Since:
    2.1
  No Extend:
    This interface is not intended to be implemented by clients.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `count(ModelObject container, org.eclipse.emf.ecore.EStructuralFeature feature)` Retrieves the number of values in a given feature slot of a given container model element.
    `org.eclipse.emf.ecore.EClass` | `eClass(ModelObject element)` Queries the exact type of the given object.
    `boolean` | `isSetTo(ModelObject container, org.eclipse.emf.ecore.EStructuralFeature feature, java.lang.Object value)` Returns whether the given value is listed among the values in a given feature slot of a given container model element.
    `java.util.stream.Stream<? extends java.lang.Object>` | `stream(ModelObject container, org.eclipse.emf.ecore.EStructuralFeature feature)` Retrieves all values in a given feature slot of a given container model element.

- - ### Method Detail

    - #### eClass

          org.eclipse.emf.ecore.EClass eClass(ModelObject element)
                                       throws ModelManipulationException

      Queries the exact type of the given object.
      Throws:
        `ModelManipulationException`

    - #### count

          int count(ModelObject container,
                    org.eclipse.emf.ecore.EStructuralFeature feature)
             throws ModelManipulationException

      Retrieves the number of values in a given feature slot of a given container model element.
      Throws:
        `ModelManipulationException`

    - #### stream

          java.util.stream.Stream<? extends java.lang.Object> stream(ModelObject container,
                                                                     org.eclipse.emf.ecore.EStructuralFeature feature)
                                                              throws ModelManipulationException

      Retrieves all values in a given feature slot of a given container model element.
      Throws:
        `ModelManipulationException`

    - #### isSetTo

          boolean isSetTo(ModelObject container,
                          org.eclipse.emf.ecore.EStructuralFeature feature,
                          java.lang.Object value)
                   throws ModelManipulationException

      Returns whether the given value is listed among the values in a given feature slot of a given container model element.
      Throws:
        `ModelManipulationException`