{-- TerraHS - Interface between TerraLib and Haskell (c) Sergio Costa (INPE) - Setembro, 2005 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License 2.1 as published by the Free Software Foundation (http://www.opensource.org/licenses/gpl-license.php) --} {-- --} module TerraHS.Algebras.DB.Model --( --) where import TerraHS.TerraLib 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 type Parameter = String class (ModelConvert m) => ModelPersistence m where -- operations retrieveModel :: TeDatabasePtr -> Parameter -> m -> IO Bool storeModel :: TeDatabasePtr -> Parameter -> IO m -- axioms retrieveModel db p m = (store db p (toGeoObjects m) ) storeModel db p = ( (retrieve db p)::(IO [TeGeoObject]) ) >>= ( \go -> return (fromGeoObjects go) )