Author: chatellier Date: 2011-06-17 14:53:50 +0000 (Fri, 17 Jun 2011) New Revision: 3424 Log: Ajout de l'impl?\195?\169mentation du mapper de semantique utilis?\195?\169 lors de l'import des matrices ND Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/IsisMatrixSemanticMapper.java Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java Modified: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java 2011-06-17 14:39:00 UTC (rev 3423) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/IsisFish.java 2011-06-17 14:53:50 UTC (rev 3424) @@ -50,6 +50,7 @@ import org.apache.commons.logging.LogFactory; import org.nuiton.i18n.I18n; import org.nuiton.i18n.init.ClassPathI18nInitializer; +import org.nuiton.math.matrix.MatrixFactory; import org.nuiton.topia.TopiaException; import org.nuiton.util.FileUtil; import org.nuiton.util.Version; @@ -69,6 +70,7 @@ import fr.ifremer.isisfish.simulator.launcher.SimulationService; import fr.ifremer.isisfish.ui.WelcomeUI; import fr.ifremer.isisfish.ui.util.ErrorHelper; +import fr.ifremer.isisfish.util.IsisMatrixSemanticMapper; import fr.ifremer.isisfish.vcs.VCS; import fr.ifremer.isisfish.vcs.VCSActionEvent; import fr.ifremer.isisfish.vcs.VCSException; @@ -122,7 +124,7 @@ // initVCS ask for passphrase, ui must be set before initLookAndFeel(); - + // static vcs init (needed for some actions) try { initVCS(); @@ -131,10 +133,13 @@ log.warn(_("Error during vcs initialisation"), eee); } + // nuiton matrix semantics mapper + MatrixFactory.setSemanticMapper(new IsisMatrixSemanticMapper()); + if (log.isInfoEnabled()) { log.info(_("isisfish.launching", config.getElapsedTimeAsString())); } - + // after init vcs and local data config.doAction(IsisConfig.STEP_AFTER_INIT_VCS); @@ -142,7 +147,7 @@ // action after ui launched config.doAction(IsisConfig.STEP_AFTER_UI); - + startCronService(); } Added: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/IsisMatrixSemanticMapper.java =================================================================== --- isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/IsisMatrixSemanticMapper.java (rev 0) +++ isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/IsisMatrixSemanticMapper.java 2011-06-17 14:53:50 UTC (rev 3424) @@ -0,0 +1,100 @@ +/* + * #%L + * + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 Ifremer, Codelutin, Chatellier Eric + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Lesser Public License for more details. + * + * You should have received a copy of the GNU General Lesser Public + * License along with this program. If not, see + * <http://www.gnu.org/licenses/lgpl-3.0.html>. + * #L% + */ + +package fr.ifremer.isisfish.util; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.math.matrix.SemanticMapper; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.persistence.TopiaDAO; + +import fr.ifremer.isisfish.IsisFishDAOHelper; +import fr.ifremer.isisfish.simulator.SimulationContext; + +/** + * Implementation du mapper de semantique pour Isis pour que l'import/export + * des matrices en N dimensions de nuiton matrix fonctionne. + * + * @author chatellier + * @version $Revision$ + * + * Last update : $Date$ + * By : $Author$ + */ +public class IsisMatrixSemanticMapper extends SemanticMapper { + + /** Logger for this class. */ + private static Log log = LogFactory.getLog(IsisMatrixSemanticMapper.class); + + /** + * Return class for type identified by typeName. + * + * For example : "Population" can return "fr.ifremer.entities.Population.class" + * + * Return {@code String} by default. + * + * @param typeName type to get class. + * @return type for typeId + */ + public Class getType(String typeName) { + + // In simulation context : + Class clazz = null; + try { + clazz = Class.forName("fr.ifremer.isisfish.entities." + typeName); + } catch (Exception ex) { + log.warn("Can't find class for " + typeName, ex); + clazz = String.class; + } + return clazz; + } + + /** + * Return value identified by valueId and type {@code type}. + * + * Return {@code valueId} by default; + * + * @param type + * @param valueId + * @return value identified by {valueId} + */ + public Object getValue(Class type, String valueId) { + + // In simulation context : + Object value = null; + try { + TopiaContext context = SimulationContext.get().getDB(); + TopiaDAO dao = IsisFishDAOHelper.getDAO(context, type); + value = dao.findByProperty("name", valueId); + } catch (Exception ex) { + log.warn("Can't get value for " + valueId, ex); + value = valueId; + } + return value; + + //return valueId; + } +} \ No newline at end of file Property changes on: isis-fish/trunk/src/main/java/fr/ifremer/isisfish/util/IsisMatrixSemanticMapper.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL