Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Modelling.CdOd.CdAndChanges.Instance
Synopsis
- data AnnotatedChangeAndCd annotation className relationshipName = AnnotatedChangeAndCd {
- annotatedRelationshipChange :: !(Annotation annotation (Change (AnyRelationship className relationshipName)))
- annotatedChangeClassDiagram :: !(AnyClassDiagram className relationshipName)
- data ChangeAndCd className relationshipName = ChangeAndCd {
- relationshipChange :: !(Change (AnyRelationship className relationshipName))
- changeClassDiagram :: !(AnyClassDiagram className relationshipName)
- type ClassDiagramInstance = GenericClassDiagramInstance String String
- data GenericClassDiagramInstance className relationshipName = ClassDiagramInstance {
- instanceClassDiagram :: !(AnyClassDiagram className relationshipName)
- instanceRelationshipNames :: [relationshipName]
- instanceChangesAndCds :: [ChangeAndCd className relationshipName]
- data ReadObjectDiagramFromAlloyException
- newtype UnexpectedRelation = SingleMemberExpected Relation
- fromInstance :: MonadThrow m => AlloyInstance -> m ClassDiagramInstance
- fromInstanceWithNameOverlap :: MonadThrow m => AlloyInstance -> m ClassDiagramInstance
- fromInstanceWithPredefinedNames :: MonadThrow m => AlloyInstance -> m (GenericClassDiagramInstance String String)
- nameClassDiagramInstance :: (MonadThrow m, Ord className, Ord relationshipName) => GenericClassDiagramInstance className relationshipName -> m (GenericClassDiagramInstance String String)
- uniformlyAnnotateChangeAndCd :: annotation -> ChangeAndCd className relationshipName -> AnnotatedChangeAndCd annotation className relationshipName
- validChangeClassDiagram :: (Eq className, MonadThrow m, Show className, Show relationshipName, Typeable className, Typeable relationshipName) => ChangeAndCd className relationshipName -> m (ClassDiagram className relationshipName)
Documentation
data AnnotatedChangeAndCd annotation className relationshipName Source #
Constructors
AnnotatedChangeAndCd | |
Fields
|
Instances
(Read className, Read relationshipName, Read annotation) => Read (AnnotatedChangeAndCd annotation className relationshipName) Source # | |
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 # | |
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
Bifoldable ChangeAndCd Source # | |
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 # | |
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 # | |
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 # | |
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 # | |
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 # | |
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
data ReadObjectDiagramFromAlloyException Source #
Constructors
MissingObject | |
MissingLimit | |
UnknownLimit !String |
Instances
newtype UnexpectedRelation Source #
Constructors
SingleMemberExpected Relation |
Instances
Exception UnexpectedRelation Source # | |
Defined in Modelling.CdOd.CdAndChanges.Instance Methods toException :: UnexpectedRelation -> SomeException # fromException :: SomeException -> Maybe UnexpectedRelation # | |
Show UnexpectedRelation Source # | |
Defined in Modelling.CdOd.CdAndChanges.Instance Methods showsPrec :: Int -> UnexpectedRelation -> ShowS # show :: UnexpectedRelation -> String # showList :: [UnexpectedRelation] -> 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 #