1 module Text.Edifact.Scaffolder.Segments.Types where
3 import Text.Edifact.Scaffolder.Commons
5 data Dependency = Dependency { dependencyPosition :: Position
6 , dependencyElement :: Element
9 data Element = Composite CompositeCode Text Presence
10 | Simple SimpleCode Text Presence SimpleType SimpleLength
11 deriving (Show, Eq, Ord)
13 data SimpleType = Alphanumeric | Alphabetic | Numeric deriving (Show, Eq, Ord)
15 data SimpleLength = Exactly Text | UpTo Text deriving (Show, Eq, Ord)
17 getCode :: Element -> String
18 getCode (Simple (SimpleCode c) _ _ _ _) = c
19 getCode (Composite (CompositeCode c) _ _) = c
21 getSimple :: Element -> Maybe SimpleCode
22 getSimple (Simple c _ _ _ _) = Just c
25 getComposite :: Element -> Maybe CompositeCode
26 getComposite (Composite c _ _) = Just c
27 getComposite _ = Nothing