]> git.immae.eu Git - github/fretlink/edi-parser.git/blob - scaffolder/src/Text/Edifact/Scaffolder/Segments/Types.hs
Release code as open source
[github/fretlink/edi-parser.git] / scaffolder / src / Text / Edifact / Scaffolder / Segments / Types.hs
1 module Text.Edifact.Scaffolder.Segments.Types where
2
3 import Text.Edifact.Scaffolder.Commons
4
5 data Dependency = Dependency { dependencyPosition :: Position
6 , dependencyElement :: Element
7 } deriving Show
8
9 data Element = Composite CompositeCode Text Presence
10 | Simple SimpleCode Text Presence SimpleType SimpleLength
11 deriving (Show, Eq, Ord)
12
13 data SimpleType = Alphanumeric | Alphabetic | Numeric deriving (Show, Eq, Ord)
14
15 data SimpleLength = Exactly Text | UpTo Text deriving (Show, Eq, Ord)
16
17 getCode :: Element -> String
18 getCode (Simple (SimpleCode c) _ _ _ _) = c
19 getCode (Composite (CompositeCode c) _ _) = c
20
21 getSimple :: Element -> Maybe SimpleCode
22 getSimple (Simple c _ _ _ _) = Just c
23 getSimple _ = Nothing
24
25 getComposite :: Element -> Maybe CompositeCode
26 getComposite (Composite c _ _) = Just c
27 getComposite _ = Nothing