packages feed

concrete-haskell-0.1.0.5: src/Cluster_Types.hs

{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -fno-warn-missing-fields #-}
{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-----------------------------------------------------------------
-- Autogenerated by Thrift Compiler (0.10.0)                      --
--                                                             --
-- DO NOT EDIT UNLESS YOU ARE SURE YOU KNOW WHAT YOU ARE DOING --
-----------------------------------------------------------------

module Cluster_Types where
import Prelude (($), (.), (>>=), (==), (++))
import qualified Prelude as P
import qualified Control.Exception as X
import qualified Control.Monad as M ( liftM, ap, when )
import Data.Functor ( (<$>) )
import qualified Data.ByteString.Lazy as LBS
import qualified Data.Hashable as H
import qualified Data.Int as I
import qualified Data.Maybe as M (catMaybes)
import qualified Data.Text.Lazy.Encoding as E ( decodeUtf8, encodeUtf8 )
import qualified Data.Text.Lazy as LT
import qualified GHC.Generics as G (Generic)
import qualified Data.Typeable as TY ( Typeable )
import qualified Data.HashMap.Strict as Map
import qualified Data.HashSet as Set
import qualified Data.Vector as Vector
import qualified Test.QuickCheck.Arbitrary as QC ( Arbitrary(..) )
import qualified Test.QuickCheck as QC ( elements )

import qualified Thrift as T
import qualified Thrift.Types as T
import qualified Thrift.Arbitraries as T

import qualified Uuid_Types
import qualified Metadata_Types


data ClusterMember = ClusterMember  { clusterMember_communicationId :: Uuid_Types.UUID
  , clusterMember_setId :: Uuid_Types.UUID
  , clusterMember_elementId :: Uuid_Types.UUID
  } deriving (P.Show,P.Eq,G.Generic,TY.Typeable)
instance H.Hashable ClusterMember where
  hashWithSalt salt record = salt   `H.hashWithSalt` clusterMember_communicationId record   `H.hashWithSalt` clusterMember_setId record   `H.hashWithSalt` clusterMember_elementId record  
instance QC.Arbitrary ClusterMember where 
  arbitrary = M.liftM ClusterMember (QC.arbitrary)
          `M.ap`(QC.arbitrary)
          `M.ap`(QC.arbitrary)
  shrink obj | obj == default_ClusterMember = []
             | P.otherwise = M.catMaybes
    [ if obj == default_ClusterMember{clusterMember_communicationId = clusterMember_communicationId obj} then P.Nothing else P.Just $ default_ClusterMember{clusterMember_communicationId = clusterMember_communicationId obj}
    , if obj == default_ClusterMember{clusterMember_setId = clusterMember_setId obj} then P.Nothing else P.Just $ default_ClusterMember{clusterMember_setId = clusterMember_setId obj}
    , if obj == default_ClusterMember{clusterMember_elementId = clusterMember_elementId obj} then P.Nothing else P.Just $ default_ClusterMember{clusterMember_elementId = clusterMember_elementId obj}
    ]
from_ClusterMember :: ClusterMember -> T.ThriftVal
from_ClusterMember record = T.TStruct $ Map.fromList $ M.catMaybes
  [ (\_v2 -> P.Just (1, ("communicationId",Uuid_Types.from_UUID _v2))) $ clusterMember_communicationId record
  , (\_v2 -> P.Just (2, ("setId",Uuid_Types.from_UUID _v2))) $ clusterMember_setId record
  , (\_v2 -> P.Just (3, ("elementId",Uuid_Types.from_UUID _v2))) $ clusterMember_elementId record
  ]
write_ClusterMember :: (T.Protocol p, T.Transport t) => p t -> ClusterMember -> P.IO ()
write_ClusterMember oprot record = T.writeVal oprot $ from_ClusterMember record
encode_ClusterMember :: (T.Protocol p, T.Transport t) => p t -> ClusterMember -> LBS.ByteString
encode_ClusterMember oprot record = T.serializeVal oprot $ from_ClusterMember record
to_ClusterMember :: T.ThriftVal -> ClusterMember
to_ClusterMember (T.TStruct fields) = ClusterMember{
  clusterMember_communicationId = P.maybe (P.error "Missing required field: communicationId") (\(_,_val4) -> (case _val4 of {T.TStruct _val5 -> (Uuid_Types.to_UUID (T.TStruct _val5)); _ -> P.error "wrong type"})) (Map.lookup (1) fields),
  clusterMember_setId = P.maybe (P.error "Missing required field: setId") (\(_,_val4) -> (case _val4 of {T.TStruct _val6 -> (Uuid_Types.to_UUID (T.TStruct _val6)); _ -> P.error "wrong type"})) (Map.lookup (2) fields),
  clusterMember_elementId = P.maybe (P.error "Missing required field: elementId") (\(_,_val4) -> (case _val4 of {T.TStruct _val7 -> (Uuid_Types.to_UUID (T.TStruct _val7)); _ -> P.error "wrong type"})) (Map.lookup (3) fields)
  }
to_ClusterMember _ = P.error "not a struct"
read_ClusterMember :: (T.Transport t, T.Protocol p) => p t -> P.IO ClusterMember
read_ClusterMember iprot = to_ClusterMember <$> T.readVal iprot (T.T_STRUCT typemap_ClusterMember)
decode_ClusterMember :: (T.Protocol p, T.Transport t) => p t -> LBS.ByteString -> ClusterMember
decode_ClusterMember iprot bs = to_ClusterMember $ T.deserializeVal iprot (T.T_STRUCT typemap_ClusterMember) bs
typemap_ClusterMember :: T.TypeMap
typemap_ClusterMember = Map.fromList [(1,("communicationId",(T.T_STRUCT Uuid_Types.typemap_UUID))),(2,("setId",(T.T_STRUCT Uuid_Types.typemap_UUID))),(3,("elementId",(T.T_STRUCT Uuid_Types.typemap_UUID)))]
default_ClusterMember :: ClusterMember
default_ClusterMember = ClusterMember{
  clusterMember_communicationId = Uuid_Types.default_UUID,
  clusterMember_setId = Uuid_Types.default_UUID,
  clusterMember_elementId = Uuid_Types.default_UUID}
data Cluster = Cluster  { cluster_clusterMemberIndexList :: P.Maybe (Vector.Vector I.Int32)
  , cluster_confidenceList :: P.Maybe (Vector.Vector P.Double)
  , cluster_childIndexList :: P.Maybe (Vector.Vector I.Int32)
  } deriving (P.Show,P.Eq,G.Generic,TY.Typeable)
instance H.Hashable Cluster where
  hashWithSalt salt record = salt   `H.hashWithSalt` cluster_clusterMemberIndexList record   `H.hashWithSalt` cluster_confidenceList record   `H.hashWithSalt` cluster_childIndexList record  
instance QC.Arbitrary Cluster where 
  arbitrary = M.liftM Cluster (M.liftM P.Just QC.arbitrary)
          `M.ap`(M.liftM P.Just QC.arbitrary)
          `M.ap`(M.liftM P.Just QC.arbitrary)
  shrink obj | obj == default_Cluster = []
             | P.otherwise = M.catMaybes
    [ if obj == default_Cluster{cluster_clusterMemberIndexList = cluster_clusterMemberIndexList obj} then P.Nothing else P.Just $ default_Cluster{cluster_clusterMemberIndexList = cluster_clusterMemberIndexList obj}
    , if obj == default_Cluster{cluster_confidenceList = cluster_confidenceList obj} then P.Nothing else P.Just $ default_Cluster{cluster_confidenceList = cluster_confidenceList obj}
    , if obj == default_Cluster{cluster_childIndexList = cluster_childIndexList obj} then P.Nothing else P.Just $ default_Cluster{cluster_childIndexList = cluster_childIndexList obj}
    ]
from_Cluster :: Cluster -> T.ThriftVal
from_Cluster record = T.TStruct $ Map.fromList $ M.catMaybes
  [ (\_v10 -> (1, ("clusterMemberIndexList",T.TList T.T_I32 $ P.map (\_v12 -> T.TI32 _v12) $ Vector.toList _v10))) <$> cluster_clusterMemberIndexList record
  , (\_v10 -> (2, ("confidenceList",T.TList T.T_DOUBLE $ P.map (\_v14 -> T.TDouble _v14) $ Vector.toList _v10))) <$> cluster_confidenceList record
  , (\_v10 -> (3, ("childIndexList",T.TList T.T_I32 $ P.map (\_v16 -> T.TI32 _v16) $ Vector.toList _v10))) <$> cluster_childIndexList record
  ]
write_Cluster :: (T.Protocol p, T.Transport t) => p t -> Cluster -> P.IO ()
write_Cluster oprot record = T.writeVal oprot $ from_Cluster record
encode_Cluster :: (T.Protocol p, T.Transport t) => p t -> Cluster -> LBS.ByteString
encode_Cluster oprot record = T.serializeVal oprot $ from_Cluster record
to_Cluster :: T.ThriftVal -> Cluster
to_Cluster (T.TStruct fields) = Cluster{
  cluster_clusterMemberIndexList = P.maybe (P.Nothing) (\(_,_val18) -> P.Just (case _val18 of {T.TList _ _val19 -> (Vector.fromList $ P.map (\_v20 -> (case _v20 of {T.TI32 _val21 -> _val21; _ -> P.error "wrong type"})) _val19); _ -> P.error "wrong type"})) (Map.lookup (1) fields),
  cluster_confidenceList = P.maybe (P.Nothing) (\(_,_val18) -> P.Just (case _val18 of {T.TList _ _val22 -> (Vector.fromList $ P.map (\_v23 -> (case _v23 of {T.TDouble _val24 -> _val24; _ -> P.error "wrong type"})) _val22); _ -> P.error "wrong type"})) (Map.lookup (2) fields),
  cluster_childIndexList = P.maybe (P.Nothing) (\(_,_val18) -> P.Just (case _val18 of {T.TList _ _val25 -> (Vector.fromList $ P.map (\_v26 -> (case _v26 of {T.TI32 _val27 -> _val27; _ -> P.error "wrong type"})) _val25); _ -> P.error "wrong type"})) (Map.lookup (3) fields)
  }
to_Cluster _ = P.error "not a struct"
read_Cluster :: (T.Transport t, T.Protocol p) => p t -> P.IO Cluster
read_Cluster iprot = to_Cluster <$> T.readVal iprot (T.T_STRUCT typemap_Cluster)
decode_Cluster :: (T.Protocol p, T.Transport t) => p t -> LBS.ByteString -> Cluster
decode_Cluster iprot bs = to_Cluster $ T.deserializeVal iprot (T.T_STRUCT typemap_Cluster) bs
typemap_Cluster :: T.TypeMap
typemap_Cluster = Map.fromList [(1,("clusterMemberIndexList",(T.T_LIST T.T_I32))),(2,("confidenceList",(T.T_LIST T.T_DOUBLE))),(3,("childIndexList",(T.T_LIST T.T_I32)))]
default_Cluster :: Cluster
default_Cluster = Cluster{
  cluster_clusterMemberIndexList = P.Nothing,
  cluster_confidenceList = P.Nothing,
  cluster_childIndexList = P.Nothing}
data Clustering = Clustering  { clustering_uuid :: Uuid_Types.UUID
  , clustering_metadata :: Metadata_Types.AnnotationMetadata
  , clustering_clusterMemberList :: P.Maybe (Vector.Vector ClusterMember)
  , clustering_clusterList :: P.Maybe (Vector.Vector Cluster)
  , clustering_rootClusterIndexList :: P.Maybe (Vector.Vector I.Int32)
  } deriving (P.Show,P.Eq,G.Generic,TY.Typeable)
instance H.Hashable Clustering where
  hashWithSalt salt record = salt   `H.hashWithSalt` clustering_uuid record   `H.hashWithSalt` clustering_metadata record   `H.hashWithSalt` clustering_clusterMemberList record   `H.hashWithSalt` clustering_clusterList record   `H.hashWithSalt` clustering_rootClusterIndexList record  
instance QC.Arbitrary Clustering where 
  arbitrary = M.liftM Clustering (QC.arbitrary)
          `M.ap`(QC.arbitrary)
          `M.ap`(M.liftM P.Just QC.arbitrary)
          `M.ap`(M.liftM P.Just QC.arbitrary)
          `M.ap`(M.liftM P.Just QC.arbitrary)
  shrink obj | obj == default_Clustering = []
             | P.otherwise = M.catMaybes
    [ if obj == default_Clustering{clustering_uuid = clustering_uuid obj} then P.Nothing else P.Just $ default_Clustering{clustering_uuid = clustering_uuid obj}
    , if obj == default_Clustering{clustering_metadata = clustering_metadata obj} then P.Nothing else P.Just $ default_Clustering{clustering_metadata = clustering_metadata obj}
    , if obj == default_Clustering{clustering_clusterMemberList = clustering_clusterMemberList obj} then P.Nothing else P.Just $ default_Clustering{clustering_clusterMemberList = clustering_clusterMemberList obj}
    , if obj == default_Clustering{clustering_clusterList = clustering_clusterList obj} then P.Nothing else P.Just $ default_Clustering{clustering_clusterList = clustering_clusterList obj}
    , if obj == default_Clustering{clustering_rootClusterIndexList = clustering_rootClusterIndexList obj} then P.Nothing else P.Just $ default_Clustering{clustering_rootClusterIndexList = clustering_rootClusterIndexList obj}
    ]
from_Clustering :: Clustering -> T.ThriftVal
from_Clustering record = T.TStruct $ Map.fromList $ M.catMaybes
  [ (\_v30 -> P.Just (1, ("uuid",Uuid_Types.from_UUID _v30))) $ clustering_uuid record
  , (\_v30 -> P.Just (2, ("metadata",Metadata_Types.from_AnnotationMetadata _v30))) $ clustering_metadata record
  , (\_v30 -> (3, ("clusterMemberList",T.TList (T.T_STRUCT typemap_ClusterMember) $ P.map (\_v32 -> from_ClusterMember _v32) $ Vector.toList _v30))) <$> clustering_clusterMemberList record
  , (\_v30 -> (4, ("clusterList",T.TList (T.T_STRUCT typemap_Cluster) $ P.map (\_v34 -> from_Cluster _v34) $ Vector.toList _v30))) <$> clustering_clusterList record
  , (\_v30 -> (5, ("rootClusterIndexList",T.TList T.T_I32 $ P.map (\_v36 -> T.TI32 _v36) $ Vector.toList _v30))) <$> clustering_rootClusterIndexList record
  ]
write_Clustering :: (T.Protocol p, T.Transport t) => p t -> Clustering -> P.IO ()
write_Clustering oprot record = T.writeVal oprot $ from_Clustering record
encode_Clustering :: (T.Protocol p, T.Transport t) => p t -> Clustering -> LBS.ByteString
encode_Clustering oprot record = T.serializeVal oprot $ from_Clustering record
to_Clustering :: T.ThriftVal -> Clustering
to_Clustering (T.TStruct fields) = Clustering{
  clustering_uuid = P.maybe (P.error "Missing required field: uuid") (\(_,_val38) -> (case _val38 of {T.TStruct _val39 -> (Uuid_Types.to_UUID (T.TStruct _val39)); _ -> P.error "wrong type"})) (Map.lookup (1) fields),
  clustering_metadata = P.maybe (P.error "Missing required field: metadata") (\(_,_val38) -> (case _val38 of {T.TStruct _val40 -> (Metadata_Types.to_AnnotationMetadata (T.TStruct _val40)); _ -> P.error "wrong type"})) (Map.lookup (2) fields),
  clustering_clusterMemberList = P.maybe (P.Nothing) (\(_,_val38) -> P.Just (case _val38 of {T.TList _ _val41 -> (Vector.fromList $ P.map (\_v42 -> (case _v42 of {T.TStruct _val43 -> (to_ClusterMember (T.TStruct _val43)); _ -> P.error "wrong type"})) _val41); _ -> P.error "wrong type"})) (Map.lookup (3) fields),
  clustering_clusterList = P.maybe (P.Nothing) (\(_,_val38) -> P.Just (case _val38 of {T.TList _ _val44 -> (Vector.fromList $ P.map (\_v45 -> (case _v45 of {T.TStruct _val46 -> (to_Cluster (T.TStruct _val46)); _ -> P.error "wrong type"})) _val44); _ -> P.error "wrong type"})) (Map.lookup (4) fields),
  clustering_rootClusterIndexList = P.maybe (P.Nothing) (\(_,_val38) -> P.Just (case _val38 of {T.TList _ _val47 -> (Vector.fromList $ P.map (\_v48 -> (case _v48 of {T.TI32 _val49 -> _val49; _ -> P.error "wrong type"})) _val47); _ -> P.error "wrong type"})) (Map.lookup (5) fields)
  }
to_Clustering _ = P.error "not a struct"
read_Clustering :: (T.Transport t, T.Protocol p) => p t -> P.IO Clustering
read_Clustering iprot = to_Clustering <$> T.readVal iprot (T.T_STRUCT typemap_Clustering)
decode_Clustering :: (T.Protocol p, T.Transport t) => p t -> LBS.ByteString -> Clustering
decode_Clustering iprot bs = to_Clustering $ T.deserializeVal iprot (T.T_STRUCT typemap_Clustering) bs
typemap_Clustering :: T.TypeMap
typemap_Clustering = Map.fromList [(1,("uuid",(T.T_STRUCT Uuid_Types.typemap_UUID))),(2,("metadata",(T.T_STRUCT Metadata_Types.typemap_AnnotationMetadata))),(3,("clusterMemberList",(T.T_LIST (T.T_STRUCT typemap_ClusterMember)))),(4,("clusterList",(T.T_LIST (T.T_STRUCT typemap_Cluster)))),(5,("rootClusterIndexList",(T.T_LIST T.T_I32)))]
default_Clustering :: Clustering
default_Clustering = Clustering{
  clustering_uuid = Uuid_Types.default_UUID,
  clustering_metadata = Metadata_Types.default_AnnotationMetadata,
  clustering_clusterMemberList = P.Nothing,
  clustering_clusterList = P.Nothing,
  clustering_rootClusterIndexList = P.Nothing}