Exemplo n.º 1
0
    def outDependencies(self, targetMetamodel=None, metamodelDependency=None):
        #type: (Optional[Metamodel]) -> List[ModelDependency]
        """
        Returns the dependencies starting from this
        dependency filtered either by targetMetamodel,
        or by metamodelDependency.
        """

        # select all out dependencies from self
        from modelscripts.megamodels import Megamodel
        all_deps=Megamodel.modelDependencies(source=self)
        if targetMetamodel is None:
            deps=all_deps
        else:
            deps=[
                dep for dep in all_deps
                    if (
                        dep.targetModel.metamodel
                        == targetMetamodel)
            ]
        if metamodelDependency is None:
            return deps
        else:
            return [
                dep for dep in deps
                    # could raise ValueError, but should not
                    if (dep.metamodelDependency
                        == metamodelDependency)
            ]
Exemplo n.º 2
0
 def modelDependencies(self):
     # type: (MetamodelDependency) -> List(ModelDependency)
     """
     Model dependencies based on this metamodel dependency.
     This could raise a ValueError.
     """
     # could raise a ValueError
     from modelscripts.megamodels import Megamodel
     return Megamodel.modelDependencies(
         metamodelDependency=self)
Exemplo n.º 3
0
 def inDependencies(self, sourceMetamodel=None):
     #type: (Optional[Metamodel]) -> List[ModelDependency]
     """
     Returns the dependencies towards from this
     dependency filtered either by targetMetamodel,
     or by metamodelDependency.
     """
     from modelscripts.megamodels import Megamodel
     deps=Megamodel.modelDependencies(target=self)
     if sourceMetamodel is None:
         return deps
     return [
         dep for dep in deps
             if (dep.sourceModel.metamodel
                 == sourceMetamodel)
     ]