From 26ca22c40d96e7fae3fe54a97c98e096d0cbfc7f Mon Sep 17 00:00:00 2001 From: Michael Orlitzky Date: Fri, 2 Jan 2015 16:23:28 -0500 Subject: [PATCH] Migrate TSN.Team and TSN.XML.MLBBoxScore to fixed-vector-hetero. --- src/TSN/Team.hs | 6 ++-- src/TSN/XML/MLBBoxScore.hs | 63 +++++++++++++++++++------------------- 2 files changed, 35 insertions(+), 34 deletions(-) diff --git a/src/TSN/Team.hs b/src/TSN/Team.hs index 1fef0a3..0708739 100644 --- a/src/TSN/Team.hs +++ b/src/TSN/Team.hs @@ -23,6 +23,7 @@ module TSN.Team ( where -- System imports +import Data.Vector.HFixed ( HVector ) import Database.Groundhog () -- Required for some String instance import Database.Groundhog.Core ( PersistEntity(..) ) import Database.Groundhog.TH ( @@ -32,7 +33,6 @@ import Database.Groundhog.TH ( import qualified GHC.Generics as GHC ( Generic ) -- Local imports -import Generics ( Generic(..) ) import Xml ( Child(..), Db(..) ) @@ -54,9 +54,9 @@ data Team = } deriving (Eq, GHC.Generic, Show) --- | Needed for 'Generics.to_tuple'. +-- | Needed for 'H.convert'. -- -instance Generic Team +instance HVector Team -- * VTeam / HTeam diff --git a/src/TSN/XML/MLBBoxScore.hs b/src/TSN/XML/MLBBoxScore.hs index 97f6a81..68891d3 100644 --- a/src/TSN/XML/MLBBoxScore.hs +++ b/src/TSN/XML/MLBBoxScore.hs @@ -34,6 +34,7 @@ import Data.Data ( Data ) import Data.Maybe ( fromMaybe ) import Data.Time ( UTCTime(..) ) import Data.Tuple.Curry ( uncurryN ) +import qualified Data.Vector.HFixed as H ( HVector, convert ) import Data.Typeable ( Typeable ) import Database.Groundhog ( insert, @@ -60,7 +61,6 @@ import Text.XML.HXT.Core ( xpWrap ) -- Local imports. -import Generics ( Generic(..), to_tuple ) import TSN.Codegen ( tsn_codegen_config ) import TSN.DbImport ( DbImport(..), ImportResult(..), run_dbmigrate ) import TSN.Picklers ( @@ -148,9 +148,9 @@ data Message = deriving (Eq, GHC.Generic, Show) --- | For 'Generics.to_tuple'. +-- | For 'H.convert'. -- -instance Generic Message +instance H.HVector Message instance ToDb Message where -- | The database analogue of a 'Message' is a 'MLBBoxScore'. @@ -206,9 +206,9 @@ data MLBBoxScoreGameBreakdownXml = xml_home_team :: MLBBoxScoreTeamBreakdownXml } deriving (Eq, GHC.Generic, Show) --- | For 'Generics.to_tuple' +-- | For 'H.convert' -- -instance Generic MLBBoxScoreGameBreakdownXml +instance H.HVector MLBBoxScoreGameBreakdownXml data MLBBoxScoreHomerunStatsListingBatter = @@ -219,9 +219,9 @@ data MLBBoxScoreHomerunStatsListingBatter = db_batter_id :: Int } deriving (Data, Eq, GHC.Generic, Show, Typeable) --- | For 'Generics.to_tuple' +-- | For 'H.convert' -- -instance Generic MLBBoxScoreHomerunStatsListingBatter +instance H.HVector MLBBoxScoreHomerunStatsListingBatter data MLBBoxScoreHomerunStatsListing = @@ -237,9 +237,9 @@ data MLBBoxScoreHomerunStatsListingXml = xml_pitchers :: [MLBBoxScoreHomerunStatsListingPitcherXml] } deriving (Eq, GHC.Generic, Show) --- | For 'Generics.to_tuple' +-- | For 'H.convert' -- -instance Generic MLBBoxScoreHomerunStatsListingXml +instance H.HVector MLBBoxScoreHomerunStatsListingXml instance Child MLBBoxScoreHomerunStatsListingXml where -- | Each 'MLBBoxScoreHomerunStatsListingXml' is contained in (i.e. has a @@ -290,9 +290,9 @@ data MLBBoxScoreHomerunStatsListingPitcherXml = xml_pitchers_pitcher_id :: Int } deriving (Eq, GHC.Generic, Show) --- | For 'Generics.to_tuple' +-- | For 'H.convert' -- -instance Generic MLBBoxScoreHomerunStatsListingPitcherXml +instance H.HVector MLBBoxScoreHomerunStatsListingPitcherXml instance Child MLBBoxScoreHomerunStatsListingPitcherXml where -- | Each 'MLBBoxScoreHomerunStatsListingPitcherXml' is contained in @@ -351,8 +351,8 @@ data MLBBoxScoreTeamBreakdownXml = deriving (Eq, GHC.Generic, Show) --- | For 'Generics.to_tuple'. -instance Generic MLBBoxScoreTeamBreakdownXml +-- | For 'H.convert'. +instance H.HVector MLBBoxScoreTeamBreakdownXml instance ToDb MLBBoxScoreTeamBreakdownXml where -- | The database analogue of a 'MLBBoxScoreTeamBreakdownXml' is @@ -406,9 +406,9 @@ data MLBBoxScore_MLBBoxScoreTeamBreakdown = --- | For 'Generics.to_tuple'. +-- | For 'H.convert'. -- -instance Generic MLBBoxScoreRunsByInningsXml +instance H.HVector MLBBoxScoreRunsByInningsXml instance ToDb MLBBoxScoreRunsByInningsXml where @@ -457,9 +457,9 @@ data MLBBoxScoreMiscPitchingStatsXml = deriving (Eq, GHC.Generic, Show) --- | For 'Generics.to_tuple'. +-- | For 'H.convert'. -- -instance Generic MLBBoxScoreMiscPitchingStatsXml +instance H.HVector MLBBoxScoreMiscPitchingStatsXml -- * MLBBoxScoreMiscPitchingStatsIntentionalWalk @@ -483,8 +483,9 @@ data MLBBoxScoreMiscPitchingStatsIntentionalWalkXml = xml_iw_number_of_times_walked :: Int } deriving (Eq, GHC.Generic, Show) --- | For 'Generics.to_tuple'. -instance Generic MLBBoxScoreMiscPitchingStatsIntentionalWalkXml +-- | For 'H.convert'. +-- +instance H.HVector MLBBoxScoreMiscPitchingStatsIntentionalWalkXml instance ToDb MLBBoxScoreMiscPitchingStatsIntentionalWalkXml where @@ -578,9 +579,9 @@ data MLBBoxScoreMiscPitchingStatsHitByPitchXml = deriving (Eq, GHC.Generic, Show) --- | For 'Generics.to_tuple'. +-- | For 'H.convert'. -- -instance Generic MLBBoxScoreMiscPitchingStatsHitByPitchXml +instance H.HVector MLBBoxScoreMiscPitchingStatsHitByPitchXml -- @@ -760,7 +761,7 @@ mkPersist tsn_codegen_config [groundhog| pickle_message :: PU Message pickle_message = xpElem "message" $ - xpWrap (from_tuple, to_tuple) $ + xpWrap (from_tuple, H.convert) $ xp23Tuple (xpElem "XML_File_ID" xpInt) (xpElem "heading" xpText) (xpElem "category" xpText) @@ -798,7 +799,7 @@ pickle_team_summary = pickle_game_breakdown :: PU MLBBoxScoreGameBreakdownXml pickle_game_breakdown = xpElem "Game_Breakdown" $ - xpWrap (from_tuple, to_tuple) $ + xpWrap (from_tuple, H.convert) $ xpPair pickle_away_team pickle_home_team where @@ -808,7 +809,7 @@ pickle_game_breakdown = pickle_runs_by_innings :: PU MLBBoxScoreRunsByInningsXml pickle_runs_by_innings = xpElem "Runs_By_Innings" $ - xpWrap (from_tuple, to_tuple) $ + xpWrap (from_tuple, H.convert) $ xpPair (xpAttr "Inning" xpInt) xpInt where @@ -817,7 +818,7 @@ pickle_runs_by_innings = pickle_team :: PU MLBBoxScoreTeamBreakdownXml pickle_team = - xpWrap (from_tuple, to_tuple) $ + xpWrap (from_tuple, H.convert) $ xp4Tuple (xpList pickle_runs_by_innings) (xpElem "Runs" xpInt) (xpElem "Hits" xpInt) @@ -838,7 +839,7 @@ pickle_home_team = pickle_batter :: PU MLBBoxScoreHomerunStatsListingBatter pickle_batter = xpElem "HRS_Batter_ID" $ - xpWrap (from_tuple, to_tuple) $ + xpWrap (from_tuple, H.convert) $ xp4Tuple (xpAttr "HRS_Batter_FirstName" $ xpText) (xpAttr "HRS_Batter_LastName" $ xpText) (xpAttr "RBIs" $ xpInt) @@ -850,7 +851,7 @@ pickle_batter = pickle_pitcher :: PU MLBBoxScoreHomerunStatsListingPitcherXml pickle_pitcher = xpElem "HRS_Pitcher_ID" $ - xpWrap (from_tuple, to_tuple) $ + xpWrap (from_tuple, H.convert) $ xp4Tuple (xpAttr "HRS_Homeruns_Off_Pitcher" $ xpInt) (xpAttr "HRS_Pitcher_FirstName" $ xpText) (xpAttr "HRS_Pitcher_LastName" $ xpText) @@ -862,7 +863,7 @@ pickle_pitcher = pickle_homerun_stats_listing :: PU MLBBoxScoreHomerunStatsListingXml pickle_homerun_stats_listing = xpElem "HRS_Listing" $ - xpWrap (from_tuple, to_tuple) $ + xpWrap (from_tuple, H.convert) $ xpTriple pickle_batter (xpElem "Season_Homeruns" xpInt) (xpList pickle_pitcher) @@ -878,7 +879,7 @@ pickle_homerun_stats_listings = pickle_misc_pitching_stats :: PU MLBBoxScoreMiscPitchingStatsXml pickle_misc_pitching_stats = xpElem "Misc_Pitching_Stats" $ - xpWrap (from_tuple, to_tuple) $ + xpWrap (from_tuple, H.convert) $ xpTriple (xpOption $ xpElem "Wild_Pitches" xpInt) pickle_intentional_walks pickle_hits_by_pitch @@ -890,7 +891,7 @@ pickle_misc_pitching_stats = pickle_intentional_walks :: PU [MLBBoxScoreMiscPitchingStatsIntentionalWalkXml] pickle_intentional_walks = xpElem "Intentional_Walks" $ xpList $ xpElem "IW_Listing" $ - xpWrap (from_tuple, to_tuple) $ + xpWrap (from_tuple, H.convert) $ xpTriple (xpElem "IW_Batter_ID" xpInt) (xpElem "IW_Pitcher_ID" xpInt) (xpElem "IW_Number_Of_Times_Walked" xpInt) @@ -902,7 +903,7 @@ pickle_intentional_walks = pickle_hits_by_pitch :: PU [MLBBoxScoreMiscPitchingStatsHitByPitchXml] pickle_hits_by_pitch = xpElem "Hit_By_Pitch" $ xpList $ xpElem "HBP_Listing" $ - xpWrap (from_tuple, to_tuple) $ + xpWrap (from_tuple, H.convert) $ xpTriple (xpElem "HBP_Batter_ID" xpInt) (xpElem "HBP_Pitcher_ID" xpInt) (xpElem "HBP_Number_Of_Times_Hit" xpInt) -- 2.43.2