module Algebras.Base.Model
--(
--)
where
import TerraHS.TerraLib
import TerraHS.Misc.Databases
import TerraHS.TerraLib.TeDatabase
import Algebras.Base
class ModelConvert m where
toGeoObjects :: m -> [TeGeoObject]
fromGeoObjects :: [TeGeoObject] -> m
type Parameter = String
class (ModelConvert m) => ModelPersistence m where
saveModel :: TeDatabasePtr -> Parameter -> m -> IO Bool
loadModel :: TeDatabasePtr -> Parameter -> IO m
saveModel db p m = (store db p (toGeoObjects m) )
loadModel db p = ( (retrieve db p)::(IO [TeGeoObject]) ) >>= ( \go -> return (fromGeoObjects go) )