module TerraHS.Algebras.DB.Model
--(
--)
where
import TerraHS.TerraLib
import TerraHS.TerraLib.TeLayer
import TerraHS.Algebras.DB.Databases
import TerraHS.TerraLib.TeDatabase
import TerraHS.Algebras.Base.Object
import TerraHS.TerraLib.TeGeoObject
class ModelConvert m where
toGeoObjects :: m -> [TeGeoObject]
fromGeoObjects :: [TeGeoObject] -> m
class (ModelConvert m) => ModelPersistence m p where
storeModel :: TeDatabasePtr -> p -> m -> IO Bool
retrieveModel :: TeDatabasePtr -> p -> IO m
instance (ModelConvert m) => ModelPersistence m String where
storeModel db p m = (store db p (toGeoObjects m) )
retrieveModel db p = ( (retrieve db p)::(IO [TeGeoObject]) ) >>= ( \go -> return (fromGeoObjects go) )
instance (ModelConvert m) => ModelPersistence m (String,TeProjection) where
storeModel db p m = (store db p (toGeoObjects m) )