module Data.JLD.Model.TermDefinition (TermDefinition (..), newTermDefinition) where import Data.JLD.Prelude import Data.JLD.Model.Direction (Direction) import Data.JLD.Model.Language (Language) import Data.Aeson (Value) import Text.URI (URI) data TermDefinition = TermDefinition { termDefinitionIriMapping :: Maybe Text , termDefinitionPrefixFlag :: Bool , termDefinitionProtectedFlag :: Bool , termDefinitionReversePropertyFlag :: Bool , termDefinitionBaseUrl :: Maybe URI , termDefinitionLocalContext :: Maybe Value , termDefinitionContainerMapping :: Set Text , termDefinitionIndexMapping :: Maybe Text , termDefinitionNestValue :: Maybe Text , termDefinitionTypeMapping :: Maybe Text , termDefinitionDirectionMapping :: Maybe Direction , termDefinitionLanguageMapping :: Maybe Language } deriving (Show, Eq) newTermDefinition :: Bool -> (TermDefinition -> TermDefinition) -> TermDefinition newTermDefinition protectedFlag fn = fn TermDefinition { termDefinitionIriMapping = Nothing , termDefinitionPrefixFlag = False , termDefinitionProtectedFlag = protectedFlag , termDefinitionReversePropertyFlag = False , termDefinitionBaseUrl = Nothing , termDefinitionLocalContext = Nothing , termDefinitionContainerMapping = mempty , termDefinitionIndexMapping = Nothing , termDefinitionNestValue = Nothing , termDefinitionTypeMapping = Nothing , termDefinitionDirectionMapping = Nothing , termDefinitionLanguageMapping = Nothing }