org.eclipse.viatra.query.patternlanguage.emf.scoping

## Interface IMetamodelProvider

- All Known Subinterfaces:
    IMetamodelProviderInstance
  All Known Implementing Classes:
    BaseMetamodelProviderService, CompoundMetamodelProviderService, GenModelMetamodelProviderService, MetamodelProviderService, ResourceSetMetamodelProviderService, TargetPlatformMetamodelProviderService

      public interface IMetamodelProvider

  No Implement:
    This interface is not intended to be implemented by clients.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `org.eclipse.xtext.scoping.IScope` | `getAllMetamodelObjects(org.eclipse.xtext.scoping.IScope delegateScope, org.eclipse.emf.ecore.EObject context)` Returns a set of all available EPackages wrapped into `IEObjectDescription` for the use of scoping.
    `java.lang.String` | `getModelPluginId(org.eclipse.emf.ecore.EPackage ePackage, org.eclipse.emf.ecore.resource.ResourceSet set)` Returns the identifier of the plugin that contains the generated model code.
    `java.lang.String` | `getQualifiedClassName(org.eclipse.emf.ecore.EClassifier classifier, org.eclipse.emf.ecore.EObject context)`
    `boolean` | `isGeneratedCodeAvailable(org.eclipse.emf.ecore.EPackage ePackage, org.eclipse.emf.ecore.resource.ResourceSet set)` Returns true if the generated code is available for the given EPackage, the code uses the given resource set as context.
    `org.eclipse.emf.ecore.EPackage` | `loadEPackage(java.lang.String uri, org.eclipse.emf.ecore.resource.ResourceSet resourceSet)` Loads an EMF package from the nsURI or resource URI of the model, and uses the resource set given as the second parameter.

- - ### Method Detail

    - #### getAllMetamodelObjects

          org.eclipse.xtext.scoping.IScope getAllMetamodelObjects(org.eclipse.xtext.scoping.IScope delegateScope,
                                                                  org.eclipse.emf.ecore.EObject context)

      Returns a set of all available EPackages wrapped into `IEObjectDescription` for the use of scoping. It uses the `IEObjectDescription`s from the delegate scope provider too, this way the `EPackage`s from the XText index will be available too.
      Parameters:
        `delegateScope` - the delegate scope
        `context` - the context object for the scoping

    - #### loadEPackage

          org.eclipse.emf.ecore.EPackage loadEPackage(java.lang.String uri,
                                                      org.eclipse.emf.ecore.resource.ResourceSet resourceSet)

      Loads an EMF package from the nsURI or resource URI of the model, and uses the resource set given as the second parameter.
      Parameters:
        `uri` -
        `resourceSet` -
      Returns:
        the loaded EMF EPackage

    - #### isGeneratedCodeAvailable

          boolean isGeneratedCodeAvailable(org.eclipse.emf.ecore.EPackage ePackage,
                                           org.eclipse.emf.ecore.resource.ResourceSet set)

      Returns true if the generated code is available for the given EPackage, the code uses the given resource set as context.
      Parameters:
        `ePackage` - for which the availability of generated code is checked
        `set` - used for context in the checking
      Returns:
        true, if the generated code for the EPackage is available

    - #### getModelPluginId

          java.lang.String getModelPluginId(org.eclipse.emf.ecore.EPackage ePackage,
                                            org.eclipse.emf.ecore.resource.ResourceSet set)

      Returns the identifier of the plugin that contains the generated model code.
      Parameters:
        `ePackage` - for which the model plugin ID is requested
        `set` - used for context in the searching
      Returns:
        the model plugin ID or null if it cannot be found
      Since:
        1.5

    - #### getQualifiedClassName

          java.lang.String getQualifiedClassName(org.eclipse.emf.ecore.EClassifier classifier,
                                                 org.eclipse.emf.ecore.EObject context)