modelling-tasks-0.0.0.1
Safe HaskellSafe-Inferred
LanguageHaskell2010

Modelling.CdOd.RepairCd

Synopsis

Documentation

data InValidOption option forInvalidity forValidity Source #

Constructors

InValidOption 

Fields

Instances

Instances details
Generic (InValidOption option forInvalidity forValidity) Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

Associated Types

type Rep (InValidOption option forInvalidity forValidity) :: Type -> Type #

Methods

from :: InValidOption option forInvalidity forValidity -> Rep (InValidOption option forInvalidity forValidity) x #

to :: Rep (InValidOption option forInvalidity forValidity) x -> InValidOption option forInvalidity forValidity #

(Read forInvalidity, Read forValidity, Read option) => Read (InValidOption option forInvalidity forValidity) Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

Methods

readsPrec :: Int -> ReadS (InValidOption option forInvalidity forValidity) #

readList :: ReadS [InValidOption option forInvalidity forValidity] #

readPrec :: ReadPrec (InValidOption option forInvalidity forValidity) #

readListPrec :: ReadPrec [InValidOption option forInvalidity forValidity] #

(Show forInvalidity, Show forValidity, Show option) => Show (InValidOption option forInvalidity forValidity) Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

Methods

showsPrec :: Int -> InValidOption option forInvalidity forValidity -> ShowS #

show :: InValidOption option forInvalidity forValidity -> String #

showList :: [InValidOption option forInvalidity forValidity] -> ShowS #

(Eq forInvalidity, Eq forValidity, Eq option) => Eq (InValidOption option forInvalidity forValidity) Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

Methods

(==) :: InValidOption option forInvalidity forValidity -> InValidOption option forInvalidity forValidity -> Bool #

(/=) :: InValidOption option forInvalidity forValidity -> InValidOption option forInvalidity forValidity -> Bool #

type Rep (InValidOption option forInvalidity forValidity) Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

type Rep (InValidOption option forInvalidity forValidity) = D1 ('MetaData "InValidOption" "Modelling.CdOd.RepairCd" "modelling-tasks-0.0.0.1-5lkaY76HE6k79qLVIy6Ku2" 'False) (C1 ('MetaCons "InValidOption" 'PrefixI 'True) (S1 ('MetaSel ('Just "hint") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Either forInvalidity forValidity)) :*: S1 ('MetaSel ('Just "option") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 option)))

data RepairCdConfig Source #

Instances

Instances details
Generic RepairCdConfig Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

Associated Types

type Rep RepairCdConfig :: Type -> Type #

Read RepairCdConfig Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

Show RepairCdConfig Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

type Rep RepairCdConfig Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

type Rep RepairCdConfig = D1 ('MetaData "RepairCdConfig" "Modelling.CdOd.RepairCd" "modelling-tasks-0.0.0.1-5lkaY76HE6k79qLVIy6Ku2" 'False) (C1 ('MetaCons "RepairCdConfig" 'PrefixI 'True) (((S1 ('MetaSel ('Just "allowedCdMutations") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 [CdMutation]) :*: (S1 ('MetaSel ('Just "allowedProperties") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 AllowedProperties) :*: S1 ('MetaSel ('Just "articleToUse") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ArticlePreference))) :*: (S1 ('MetaSel ('Just "cdConstraints") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 CdConstraints) :*: (S1 ('MetaSel ('Just "classConfig") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ClassConfig) :*: S1 ('MetaSel ('Just "drawSettings") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 CdDrawSettings)))) :*: ((S1 ('MetaSel ('Just "maxInstances") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Integer)) :*: (S1 ('MetaSel ('Just "objectProperties") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 ObjectProperties) :*: S1 ('MetaSel ('Just "printExtendedFeedback") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool))) :*: ((S1 ('MetaSel ('Just "printSolution") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "timeout") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe Int))) :*: (S1 ('MetaSel ('Just "useNames") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Bool) :*: S1 ('MetaSel ('Just "extraText") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Maybe (Map Language String))))))))

data RepairCdInstance Source #

Constructors

RepairCdInstance 

Fields

Instances

Instances details
Generic RepairCdInstance Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

Associated Types

type Rep RepairCdInstance :: Type -> Type #

Read RepairCdInstance Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

Show RepairCdInstance Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

Eq RepairCdInstance Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

Randomise RepairCdInstance Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

RandomiseLayout RepairCdInstance Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

RandomiseNames RepairCdInstance Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

type Rep RepairCdInstance Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

data RepairCdTaskTextElement Source #

Instances

Instances details
Bounded RepairCdTaskTextElement Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

Enum RepairCdTaskTextElement Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

Generic RepairCdTaskTextElement Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

Associated Types

type Rep RepairCdTaskTextElement :: Type -> Type #

Read RepairCdTaskTextElement Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

Show RepairCdTaskTextElement Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

Eq RepairCdTaskTextElement Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

Ord RepairCdTaskTextElement Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

type Rep RepairCdTaskTextElement Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

type Rep RepairCdTaskTextElement = D1 ('MetaData "RepairCdTaskTextElement" "Modelling.CdOd.RepairCd" "modelling-tasks-0.0.0.1-5lkaY76HE6k79qLVIy6Ku2" 'False) (C1 ('MetaCons "IncorrectCd" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PotentialFixes" 'PrefixI 'False) (U1 :: Type -> Type))

data WeakeningKind Source #

This datatype specifies what kind of structural weakening to choose.

Constructors

AnyStructuralWeakening

a weakening resulting in a valid or an invalid class diagram candidate

IllegalStructuralWeakening

a weakening resulting in an invalid class diagram candidate

LegalStructuralWeakening

a weakening resulting in a valid class diagram

Instances

Instances details
Generic WeakeningKind Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

Associated Types

type Rep WeakeningKind :: Type -> Type #

Read WeakeningKind Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

Show WeakeningKind Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

type Rep WeakeningKind Source # 
Instance details

Defined in Modelling.CdOd.RepairCd

type Rep WeakeningKind = D1 ('MetaData "WeakeningKind" "Modelling.CdOd.RepairCd" "modelling-tasks-0.0.0.1-5lkaY76HE6k79qLVIy6Ku2" 'False) (C1 ('MetaCons "AnyStructuralWeakening" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "IllegalStructuralWeakening" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "LegalStructuralWeakening" 'PrefixI 'False) (U1 :: Type -> Type)))

generateSetOfCds Source #

Arguments

:: (MonadAlloy m, MonadCatch m, RandomGen g) 
=> WeakeningKind

to be used for the base class diagram

-> AllowedProperties

potentially to be chosen for all class diagrams

-> ClassConfig

to adhere to by all class diagrams

-> CdConstraints

also for all class diagrams

-> [CdMutation]

possible mutations to choose from in order to use for the changes (and thus use to derive the four different class diagram candidate)

-> ObjectProperties

properties all object diagram witnesses need to satisfy

-> ArticlePreference

how to refer to relationships

-> Maybe Integer

number of instances to generate for both, class diagrams and object diagrams

-> Maybe Int

when to abort any Alloy call early, destroys reproducibility when set (to Just)

-> RandT g m (AnyCd, [CdChangeAndCd]) 

Generate one base class diagram candidate and four (one step) changes, resulting in four class diagram candidates based on the base candidate together with changes to repair invalid class diagram candidates and object diagrams witnessing correct class diagrams.

mapInValidOption :: (a -> b) -> (c -> d) -> (e -> f) -> InValidOption a c e -> InValidOption b d f Source #

mapInValidOptionM :: Applicative m => (a -> m b) -> (c -> m d) -> (e -> m f) -> InValidOption a c e -> m (InValidOption b d f) Source #

repairCd :: (MonadAlloy m, MonadCatch m) => RepairCdConfig -> Int -> Int -> m RepairCdInstance Source #

repairCdEvaluation :: (Alternative m, MonadCache m, MonadDiagrams m, MonadGraphviz m, OutputCapable m) => FilePath -> RepairCdInstance -> [Int] -> Rated m Source #

repairCdSyntax :: OutputCapable m => RepairCdInstance -> [Int] -> LangM m Source #

repairCdTask :: (MonadCache m, MonadDiagrams m, MonadGraphviz m, OutputCapable m) => FilePath -> RepairCdInstance -> LangM m Source #