java.lang.Object
org.palladiosimulator.simulizar.reconfiguration.qvto.util.QVToModelCache

public class QVToModelCache extends Object
This cache implementation is used to store models (e.g., PCM models or runtime measurement models) that can be parameters of QVTo transformations. To store a model in the cache, its corresponding EPackage (its meta-model) is used as tag.
  • Constructor Details

    • QVToModelCache

      public QVToModelCache(PCMPartitionManager pcmPartitonManager)
      Initializes a new instance of the QVToModelCache class.
      Parameters:
      modelAccess - An IModelAccess implementation that is used to access the globally available models such as the PCM models.
      Throws:
      NullPointerException - In case modelAccess == null.
      See Also:
      • IModelAccess#getBlackboard()
      • IModelAccess#getGlobalPCMModel()
  • Method Details

    • storeModel

      public void storeModel(EObject modelInstance)
      Stores the given model in the cache. If a model of the same type (denoted by the meta-model, i.e., the EPackage that corresponds to the model) is already present, it will be overwritten.
      In case null is passed, this method does nothing.
      Parameters:
      modelInstance - An EObject representing a model.
    • storeModelFromBlackboardPartition

      public final void storeModelFromBlackboardPartition(String partitionId)
      Stores the model found in the partition of the blackboard that is identified by the given id. If a model of the same type (denoted by the meta-model, i.e., the EPackage that corresponds to the model) is already present, it will be overwritten.
      If the given id does not identify a partition, or the requested partition is empty, nothing happens.
      Parameters:
      partitionId - A String which identifies a ResourceSetPartition of the the global MDSDBlackboard.
      Throws:
      NullPointerException - In case partitionId == null.
      See Also:
    • removeModelOfType

      public void removeModelOfType(EPackage metaModel)
      Removes all of the currently stored models which are instances of the meta-model represented by the given ePackage.
      In case null is passed, this method does nothing.
      Parameters:
      ePackage - An EPackage that describes a meta-model.
    • removeModel

      public void removeModel(EObject model)
      Removes the given model from the cache, if present.
      This method does nothing, if null is passed or the given model is not cached.
      Parameters:
      model - The EObject to remove from the cache.
    • clear

      public void clear()
      Clears the cache, that is, all models are removed.
    • snapshot

      public QVToModelCache snapshot()
      Creates a snapshot of the current state of the cache.
      More precisely, this method creates an instance that contains the same models as this one.
      Returns:
      A QVToModelCache which is a snapshot of the current state of this instance.
    • getModelsByType

      public Collection<EObject> getModelsByType(EPackage ePackage)
      Gets the currently stored model that is an instance of the meta-model represented by the given ePackage.
      Parameters:
      ePackage - An EPackage that describes a meta-model.
      Returns:
      The model, contained in an Optional and represented as an EObject, that is an instance of the given meta-model, or an empty Optional if none could be found.
      Throws:
      NullPointerException - In case ePackage == null.
    • containsModelOfType

      public boolean containsModelOfType(EPackage ePackage)
      Gets whether a model of the meta-model represented by the given ePackage is currently in store.
      Parameters:
      ePackage - An EPackage that describes a meta-model.
      Returns:
      true if a model of the given type is stored, false otherwise.
      Throws:
      NullPointerException - In case ePackage == null.
      See Also: