module Drasil.SRS.Sections.Stakeholders (stakeholderIntro, tClientF, tCustomerF) where
import Language.Drasil
import Language.Drasil.Document
import Language.Drasil.Chunk.Concept.NamedCombinators
import qualified Language.Drasil.Sentence.Combinators as S
import qualified Language.Drasil.Development as D
import Drasil.System (ProjectName, projAbrvS)
import Drasil.Metadata.Documentation (client, customer, endUser, interest,
product_, section_, stakeholder)
import qualified Drasil.SRS.Concepts as SRS
stakeholderIntro :: Contents
stakeholderIntro :: Contents
stakeholderIntro = [Sentence] -> Contents
foldlSP [String -> Sentence
S String
"This", IdeaDict -> Sentence
forall n. NamedIdea n => n -> Sentence
phrase IdeaDict
section_,
String -> Sentence
S String
"describes the" Sentence -> Sentence -> Sentence
+: IdeaDict -> Sentence
forall n. NamedIdea n => n -> Sentence
plural IdeaDict
stakeholder, String -> Sentence
S String
"the people who have an",
IdeaDict -> Sentence
forall n. NamedIdea n => n -> Sentence
phrase IdeaDict
interest Sentence -> Sentence -> Sentence
`S.in_` NPStruct -> Sentence
D.toSent (NP -> NPStruct
forall n. NounPhrase n => n -> NPStruct
phraseNP (IdeaDict -> NP
forall t. NamedIdea t => t -> NP
the IdeaDict
product_))]
tClientF :: ProjectName -> Sentence -> Section
tClientF :: ProjectName -> Sentence -> Section
tClientF ProjectName
projNm Sentence
details = [Contents] -> [Section] -> Section
SRS.theClient [ProjectName -> Sentence -> Contents
clientIntro ProjectName
projNm Sentence
details] []
clientIntro :: ProjectName -> Sentence -> Contents
clientIntro :: ProjectName -> Sentence -> Contents
clientIntro ProjectName
projNm Sentence
details = [Sentence] -> Contents
foldlSP [NPStruct -> Sentence
D.toSent (NPStruct -> Sentence) -> NPStruct -> Sentence
forall a b. (a -> b) -> a -> b
$ NP -> NPStruct
forall n. NounPhrase n => n -> NPStruct
atStartNP (NP -> NPStruct) -> NP -> NPStruct
forall a b. (a -> b) -> a -> b
$ IdeaDict -> NP
forall t. NamedIdea t => t -> NP
the IdeaDict
client,
String -> Sentence
S String
"for", ProjectName -> Sentence
projAbrvS ProjectName
projNm, String -> Sentence
S String
"is" Sentence -> Sentence -> Sentence
+:+. Sentence
details,
NPStruct -> Sentence
D.toSent (NPStruct -> Sentence) -> NPStruct -> Sentence
forall a b. (a -> b) -> a -> b
$ NP -> NPStruct
forall n. NounPhrase n => n -> NPStruct
atStartNP (NP -> NPStruct) -> NP -> NPStruct
forall a b. (a -> b) -> a -> b
$ IdeaDict -> NP
forall t. NamedIdea t => t -> NP
the IdeaDict
client, String -> Sentence
S String
"has the final say on acceptance of the",
IdeaDict -> Sentence
forall n. NamedIdea n => n -> Sentence
phrase IdeaDict
product_]
tCustomerF :: ProjectName -> Section
tCustomerF :: ProjectName -> Section
tCustomerF ProjectName
projNm = [Contents] -> [Section] -> Section
SRS.theCustomer [ProjectName -> Contents
customerIntro ProjectName
projNm] []
customerIntro :: ProjectName -> Contents
customerIntro :: ProjectName -> Contents
customerIntro ProjectName
projNm = [Sentence] -> Contents
foldlSP [NPStruct -> Sentence
D.toSent (NPStruct -> Sentence) -> NPStruct -> Sentence
forall a b. (a -> b) -> a -> b
$ NP -> NPStruct
forall n. NounPhrase n => n -> NPStruct
atStartNP' (NP -> NPStruct) -> NP -> NPStruct
forall a b. (a -> b) -> a -> b
$ IdeaDict -> NP
forall t. NamedIdea t => t -> NP
the IdeaDict
customer,
String -> Sentence
S String
"are the", IdeaDict -> Sentence
forall n. NamedIdea n => n -> Sentence
phrase IdeaDict
endUser Sentence -> Sentence -> Sentence
`S.of_` ProjectName -> Sentence
projAbrvS ProjectName
projNm]