diff options
Diffstat (limited to 'scaffolder/src/Text/Edifact/Scaffolder/Segments/Types.hs')
-rw-r--r-- | scaffolder/src/Text/Edifact/Scaffolder/Segments/Types.hs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/scaffolder/src/Text/Edifact/Scaffolder/Segments/Types.hs b/scaffolder/src/Text/Edifact/Scaffolder/Segments/Types.hs new file mode 100644 index 0000000..6a34cbc --- /dev/null +++ b/scaffolder/src/Text/Edifact/Scaffolder/Segments/Types.hs | |||
@@ -0,0 +1,27 @@ | |||
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 | ||