modelling-tasks-0.0.0.1
Safe HaskellSafe-Inferred
LanguageHaskell2010

Modelling.CdOd.CdAndChanges.Instance

Synopsis

Documentation

data AnnotatedChangeAndCd annotation className relationshipName Source #

Constructors

AnnotatedChangeAndCd 

Fields

Instances

Instances details
(Read className, Read relationshipName, Read annotation) => Read (AnnotatedChangeAndCd annotation className relationshipName) Source # 
Instance details

Defined in Modelling.CdOd.CdAndChanges.Instance

Methods

readsPrec :: Int -> ReadS (AnnotatedChangeAndCd annotation className relationshipName) #

readList :: ReadS [AnnotatedChangeAndCd annotation className relationshipName] #

readPrec :: ReadPrec (AnnotatedChangeAndCd annotation className relationshipName) #

readListPrec :: ReadPrec [AnnotatedChangeAndCd annotation className relationshipName] #

(Show className, Show relationshipName, Show annotation) => Show (AnnotatedChangeAndCd annotation className relationshipName) Source # 
Instance details

Defined in Modelling.CdOd.CdAndChanges.Instance

Methods

showsPrec :: Int -> AnnotatedChangeAndCd annotation className relationshipName -> ShowS #

show :: AnnotatedChangeAndCd annotation className relationshipName -> String #

showList :: [AnnotatedChangeAndCd annotation className relationshipName] -> ShowS #

data ChangeAndCd className relationshipName Source #

Constructors

ChangeAndCd 

Fields

Instances

Instances details
Bifoldable ChangeAndCd Source # 
Instance details

Defined in Modelling.CdOd.CdAndChanges.Instance

Methods

bifold :: Monoid m => ChangeAndCd m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> ChangeAndCd a b -> m #

bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> ChangeAndCd a b -> c #

bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> ChangeAndCd a b -> c #

Bifunctor ChangeAndCd Source # 
Instance details

Defined in Modelling.CdOd.CdAndChanges.Instance

Methods

bimap :: (a -> b) -> (c -> d) -> ChangeAndCd a c -> ChangeAndCd b d #

first :: (a -> b) -> ChangeAndCd a c -> ChangeAndCd b c #

second :: (b -> c) -> ChangeAndCd a b -> ChangeAndCd a c #

Bitraversable ChangeAndCd Source # 
Instance details

Defined in Modelling.CdOd.CdAndChanges.Instance

Methods

bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> ChangeAndCd a b -> f (ChangeAndCd c d) #

Functor (ChangeAndCd className) Source # 
Instance details

Defined in Modelling.CdOd.CdAndChanges.Instance

Methods

fmap :: (a -> b) -> ChangeAndCd className a -> ChangeAndCd className b #

(<$) :: a -> ChangeAndCd className b -> ChangeAndCd className a #

(Read className, Read relationshipName) => Read (ChangeAndCd className relationshipName) Source # 
Instance details

Defined in Modelling.CdOd.CdAndChanges.Instance

Methods

readsPrec :: Int -> ReadS (ChangeAndCd className relationshipName) #

readList :: ReadS [ChangeAndCd className relationshipName] #

readPrec :: ReadPrec (ChangeAndCd className relationshipName) #

readListPrec :: ReadPrec [ChangeAndCd className relationshipName] #

(Show className, Show relationshipName) => Show (ChangeAndCd className relationshipName) Source # 
Instance details

Defined in Modelling.CdOd.CdAndChanges.Instance

Methods

showsPrec :: Int -> ChangeAndCd className relationshipName -> ShowS #

show :: ChangeAndCd className relationshipName -> String #

showList :: [ChangeAndCd className relationshipName] -> ShowS #

data GenericClassDiagramInstance className relationshipName Source #

Constructors

ClassDiagramInstance 

Fields

Instances

Instances details
Bifoldable GenericClassDiagramInstance Source # 
Instance details

Defined in Modelling.CdOd.CdAndChanges.Instance

Methods

bifold :: Monoid m => GenericClassDiagramInstance m m -> m #

bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> GenericClassDiagramInstance a b -> m #

bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> GenericClassDiagramInstance a b -> c #

bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> GenericClassDiagramInstance a b -> c #

Bifunctor GenericClassDiagramInstance Source # 
Instance details

Defined in Modelling.CdOd.CdAndChanges.Instance

Bitraversable GenericClassDiagramInstance Source # 
Instance details

Defined in Modelling.CdOd.CdAndChanges.Instance

Methods

bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> GenericClassDiagramInstance a b -> f (GenericClassDiagramInstance c d) #

Functor (GenericClassDiagramInstance className) Source # 
Instance details

Defined in Modelling.CdOd.CdAndChanges.Instance

Methods

fmap :: (a -> b) -> GenericClassDiagramInstance className a -> GenericClassDiagramInstance className b #

(<$) :: a -> GenericClassDiagramInstance className b -> GenericClassDiagramInstance className a #

(Read className, Read relationshipName) => Read (GenericClassDiagramInstance className relationshipName) Source # 
Instance details

Defined in Modelling.CdOd.CdAndChanges.Instance

Methods

readsPrec :: Int -> ReadS (GenericClassDiagramInstance className relationshipName) #

readList :: ReadS [GenericClassDiagramInstance className relationshipName] #

readPrec :: ReadPrec (GenericClassDiagramInstance className relationshipName) #

readListPrec :: ReadPrec [GenericClassDiagramInstance className relationshipName] #

(Show className, Show relationshipName) => Show (GenericClassDiagramInstance className relationshipName) Source # 
Instance details

Defined in Modelling.CdOd.CdAndChanges.Instance

Methods

showsPrec :: Int -> GenericClassDiagramInstance className relationshipName -> ShowS #

show :: GenericClassDiagramInstance className relationshipName -> String #

showList :: [GenericClassDiagramInstance className relationshipName] -> ShowS #

fromInstance :: MonadThrow m => AlloyInstance -> m ClassDiagramInstance Source #

Parses an class diagram instance from Alloy consisting of a base CD, relationship names and changes with CDs derived from the base CD.

fromInstanceWithNameOverlap :: MonadThrow m => AlloyInstance -> m ClassDiagramInstance Source #

This version deliberately reuses names when changes to class diagrams have been applied, i.e. in the resulting class diagram the added relationship is named exactly as the removed one. This is especially required for the MatchCdOd task type where the overlap on resulting ODs is intended. Beware that this overlap is reflected in the class diagram only, but NOT in the change itself.

fromInstanceWithPredefinedNames :: MonadThrow m => AlloyInstance -> m (GenericClassDiagramInstance String String) Source #

Retrieve the instance with predefined class diagram component names. This only makes sense if a class diagram with names was already provided to Alloy beforehand.

This is achieved by relying on usePredefinedClassDiagramInstanceNames; be sure to check its restrictions!

nameClassDiagramInstance :: (MonadThrow m, Ord className, Ord relationshipName) => GenericClassDiagramInstance className relationshipName -> m (GenericClassDiagramInstance String String) Source #

Define fresh names for each class diagram component. Capital letters beginning from A are used for class names. Small letters beginning from z backwards are used for relationship names.

uniformlyAnnotateChangeAndCd :: annotation -> ChangeAndCd className relationshipName -> AnnotatedChangeAndCd annotation className relationshipName Source #

validChangeClassDiagram :: (Eq className, MonadThrow m, Show className, Show relationshipName, Typeable className, Typeable relationshipName) => ChangeAndCd className relationshipName -> m (ClassDiagram className relationshipName) Source #