Author: tchemit Date: 2008-02-05 00:07:54 +0000 (Tue, 05 Feb 2008) New Revision: 678 Added: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/service/ trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/service/MockDatabase.java trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java Removed: trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java Log: deplacement pour le moment du storage service mocke dans le module swing (pour faciliter ledev) Deleted: trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java =================================================================== --- trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java 2008-02-04 21:45:29 UTC (rev 677) +++ trunk/simexplorer-is-service/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java 2008-02-05 00:07:54 UTC (rev 678) @@ -1,280 +0,0 @@ -/* -* ##% Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Code Lutin, -* Tony Chemit -* -* This program is free software; you can redistribute it and/or -* modify it under the terms of the GNU General Public License -* as published by the Free Software Foundation; either version 2 -* 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 Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with this program; if not, write to the Free Software -* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -* ##% */ -package fr.cemagref.simexplorer.is.service; - -import com.healthmarketscience.rmiio.RemoteInputStream; -import fr.cemagref.simexplorer.is.entities.data.ExplorationApplication; -import fr.cemagref.simexplorer.is.entities.data.LoggableElement; -import fr.cemagref.simexplorer.is.entities.metadata.MetaData; -import fr.cemagref.simexplorer.is.entities.metadata.Version; -import fr.cemagref.simexplorer.is.storage.MetaDataGenerator; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.SortedMap; -import java.util.TreeMap; - -/** - * The Class MockStorageServiceImpl. - * - * @author tony - */ -public class MockStorageServiceImpl implements StorageService { - - /** The Constant SIZE. */ - static final int SIZE = 400; - - /** The mock data. */ - protected SortedMap<String, MetaData> mockData; - - /** The mock data index. */ - protected List<String> mockDataIndex; - - /** The meta generator. */ - protected MetaDataGenerator metaGenerator; - - /** The generator. */ - protected ElementGenerator generator; - - /** - * Mock data. - * - * @return the sorted map< string, meta data> - */ - public SortedMap<String, MetaData> mockData() { - if (mockData == null) { - mockData = new TreeMap<String, MetaData>(); - mockDataIndex = new ArrayList<String>(); - MetaDataGenerator generator = new MetaDataGenerator(); - for (int i = 0; i < SIZE; i++) { - MetaData metaData = generator.generateMetaDataEntity(); - metaData.setName(i + " -- " + metaData.getName()); - mockData.put(metaData.getUuid(), metaData); - mockDataIndex.add(metaData.getUuid()); - } - } - return mockData; - } - - /* (non-Javadoc) - * @see fr.cemagref.simexplorer.is.service.StorageService#commit() - */ - public void commit() throws SimExplorerServiceException { - checkImplemented(); - } - - /** - * Check implemented. - * - * @return the object - */ - private Object checkImplemented() { - throw new IllegalStateException("not implemented"); - } - - /* (non-Javadoc) - * @see fr.cemagref.simexplorer.is.service.StorageService#saveElement(java.lang.String, com.healthmarketscience.rmiio.RemoteInputStream) - */ - public MetaData saveElement(String token, RemoteInputStream zipRemoteStream) - throws SimExplorerServiceException { - return (MetaData) checkImplemented(); - } - - /* (non-Javadoc) - * @see fr.cemagref.simexplorer.is.service.StorageService#saveElement(java.lang.String, com.healthmarketscience.rmiio.RemoteInputStream, java.util.Map) - */ - public MetaData saveElement(String token, - RemoteInputStream xmlRemoteStream, - Map<String, RemoteInputStream> attachmentsRemoteStream) - throws SimExplorerServiceException { - return (MetaData) checkImplemented(); - } - - /* (non-Javadoc) - * @see fr.cemagref.simexplorer.is.service.StorageService#getMetadata(java.lang.String, java.lang.String) - */ - public MetaData getMetadata(String token, String uuid) - throws SimExplorerServiceException { - return mockData().get(uuid); - } - - /* (non-Javadoc) - * @see fr.cemagref.simexplorer.is.service.StorageService#getMetadata(java.lang.String, java.lang.String, java.lang.String) - */ - public MetaData getMetadata(String token, String uuid, String version) - throws SimExplorerServiceException { - return mockData().get(uuid); - } - - /* (non-Javadoc) - * @see fr.cemagref.simexplorer.is.service.StorageService#exportElement(java.lang.String, java.lang.String, java.lang.String) - */ - public RemoteInputStream exportElement(String token, String uuid, - String version) throws SimExplorerServiceException { - return (RemoteInputStream) checkImplemented(); - } - - /* (non-Javadoc) - * @see fr.cemagref.simexplorer.is.service.StorageService#exportFull(java.lang.String, java.lang.String, java.lang.String) - */ - public RemoteInputStream exportFull(String token, String uuid, - String version) throws SimExplorerServiceException { - return (RemoteInputStream) checkImplemented(); - } - - /* (non-Javadoc) - * @see fr.cemagref.simexplorer.is.service.StorageService#retrieveData(java.lang.String, java.lang.String, java.lang.String, java.lang.String) - */ - public RemoteInputStream retrieveData(String token, String uuid, - String version, String dataKey) throws SimExplorerServiceException { - return null; - } - - /* (non-Javadoc) - * @see fr.cemagref.simexplorer.is.service.StorageService#findFullTextCount(java.lang.String, java.lang.String, boolean) - */ - public int findFullTextCount(String token, String query, boolean onlyLatest) - throws SimExplorerServiceException { - // TODO Changer - return findApplicationsCount(token, onlyLatest); - } - - /* (non-Javadoc) - * @see fr.cemagref.simexplorer.is.service.StorageService#findFullText(java.lang.String, java.lang.String, boolean, int, int, int) - */ - public MetaData[] findFullText(String token, String query, - boolean onlyLatest, int indexStart, int count, int dateOrder) - throws SimExplorerServiceException { - // TODO Changer - return findApplications(token, onlyLatest, indexStart, count, dateOrder); - } - - /* (non-Javadoc) - * @see fr.cemagref.simexplorer.is.service.StorageService#findApplicationsCount(java.lang.String, boolean) - */ - public int findApplicationsCount(String token, boolean onlyLatest) - throws SimExplorerServiceException { - return mockData().size(); - } - - /* (non-Javadoc) - * @see fr.cemagref.simexplorer.is.service.StorageService#findApplications(java.lang.String, boolean, int, int, int) - */ - public MetaData[] findApplications(String token, boolean onlyLatest, - int start, int count, int dateOrder) - throws SimExplorerServiceException { - int last = start + count; - System.out.println("ask data from " + start + " width:" + count); - SortedMap<String, MetaData> map = mockData(); - if (last > map.size()) { - last = map.size(); - } - MetaData[] result = new MetaData[last - start]; - - for (int i = start; i < last; i++) { - result[i - start] = map.get(mockDataIndex.get(i)); - } - return result; - } - - /* (non-Javadoc) - * @see fr.cemagref.simexplorer.is.service.StorageService#getElement(java.lang.String, java.lang.String, java.lang.String) - */ - public LoggableElement getElement(String token, String uuid, String version) - throws SimExplorerServiceException { - try { - ExplorationApplication explorationApplication = getGenerator() - .generateRandomEA(); - explorationApplication.getMetaData().setUuid(uuid); - explorationApplication.getMetaData().setVersion(version); - return explorationApplication; - } catch (Exception e) { - throw new SimExplorerServiceException(e); - } - } - - /* (non-Javadoc) - * @see fr.cemagref.simexplorer.is.service.StorageService#getVersions(java.lang.String, java.lang.String) - */ - public MetaData[] getVersions(String token, String uuid) - throws SimExplorerServiceException { - MetaData meta = mockData().get(uuid); - Version version; - if (meta == null) { - version = Version.valueOf("1.0"); - } else { - version = meta.getVersion(); - } - return getMetaGenerator().generateVersionnedMetaData(version); - } - - /* (non-Javadoc) - * @see fr.cemagref.simexplorer.is.service.StorageService#loginUser(java.lang.String, java.lang.String) - */ - public String loginUser(String login, String password) - throws SimExplorerServiceException { - if (login == null) { - throw new SimExplorerServiceException(new NullPointerException( - "login can not be null")); - } - return "password"; - } - - /** - * Gets the generator. - * - * @return the generator - */ - protected ElementGenerator getGenerator() { - if (generator == null) { - generator = new ElementGenerator(); - } - return generator; - } - - /** - * Gets the meta generator. - * - * @return the meta generator - */ - public MetaDataGenerator getMetaGenerator() { - if (metaGenerator == null) { - metaGenerator = new MetaDataGenerator(); - } - return metaGenerator; - } - - /* (non-Javadoc) - * @see fr.cemagref.simexplorer.is.service.StorageService#deleteElement(java.lang.String, java.lang.String, java.lang.String) - */ - public void deleteElement(String token, String uuid, String version) { - // TODO Auto-generated method stub - - } - - /* (non-Javadoc) - * @see fr.cemagref.simexplorer.is.service.StorageService#deleteElement(java.lang.String, java.lang.String) - */ - public void deleteElement(String token, String uuid) { - // TODO Auto-generated method stub - - } - -} Added: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/service/MockDatabase.java =================================================================== --- trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/service/MockDatabase.java (rev 0) +++ trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/service/MockDatabase.java 2008-02-05 00:07:54 UTC (rev 678) @@ -0,0 +1,147 @@ +/* +* ##% Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Code Lutin, +* Tony Chemit +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version 2 +* 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 Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* ##% */ +package fr.cemagref.simexplorer.is.service; + +import fr.cemagref.simexplorer.is.entities.data.Component; +import fr.cemagref.simexplorer.is.entities.data.ExplorationApplication; +import fr.cemagref.simexplorer.is.entities.data.ExplorationData; +import fr.cemagref.simexplorer.is.entities.data.Library; +import fr.cemagref.simexplorer.is.entities.data.LoggableElement; +import fr.cemagref.simexplorer.is.entities.metadata.MetaData; +import fr.cemagref.simexplorer.is.entities.metadata.Version; +import fr.cemagref.simexplorer.is.storage.VersionGenerator; +import fr.cemagref.simexplorer.is.ui.SimExplorerRuntimeException; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; +import java.util.SortedMap; +import java.util.TreeMap; + +/** + * Classe permettant de créer une base fictive + * + * @author chemit + */ +public class MockDatabase { + + static final int SIZE = 50; + + /** + * le dictionnaire d'ea indexées par leur uuid. + * Le premier ea est le parent (donc la version la plus petite) + */ + protected SortedMap<String, ExplorationApplication[]> eas; + + /** + * le dictionnaire des loggableElement indexées par leur uuid. + * Le premier LE est le parent (donc la version la plus petite) + */ + protected SortedMap<String, LoggableElement[]> loggableElements; + + /** + * le dictionnaire de meta data indexées par leur uuid. + * Le premier metadata est le parent (donc la version la plus petite) + */ + protected SortedMap<String, MetaData[]> metadatas; + + protected List<String> metadatasIndex; + + Random r; + + VersionGenerator versionGenerator; + + public MockDatabase() { + try { + init(); + } catch (Exception e) { + throw new SimExplorerRuntimeException(e); + } + } + + /** + * initialise la base fictive + * + * @throws Exception si pb + */ + public void init() throws Exception { + + + ElementGenerator elementGenerator = new ElementGenerator(); + + r = new Random(); + + + versionGenerator = VersionGenerator.getInstance(); + + eas = new TreeMap<String, ExplorationApplication[]>(); + loggableElements = new TreeMap<String, LoggableElement[]>(); + metadatas = new TreeMap<String, MetaData[]>(); + metadatasIndex = new ArrayList<String>(); + + for (int i = 0; i < SIZE; i++) { + int nbSons = 2 + r.nextInt(10); + Version[] versions = versionGenerator.generateVersions(nbSons + 1); + + ExplorationApplication parentEA = elementGenerator.generateRandomEA(); + MetaData parentMetaData = parentEA.getMetaData(); + parentMetaData.setVersion(versions[0].toString()); + String uuid = parentMetaData.getUuid(); + List<ExplorationApplication> listSons = new ArrayList<ExplorationApplication>(nbSons); + listSons.add(parentEA); + for (int j = 0; j < nbSons; j++) { + ExplorationApplication sonEA = elementGenerator.generateRandomEA(); + sonEA.setParentData(parentEA); + sonEA.getMetaData().setUuid(uuid); + sonEA.getMetaData().setVersion(versions[j + 1].toString()); + listSons.add(sonEA); + } + registerEA(uuid, listSons.toArray(new ExplorationApplication[listSons.size()])); + } + } + + protected void registerEA(String uuid, ExplorationApplication... eas) { + this.eas.put(uuid, eas); + registerLoggableElement(uuid, eas); + for (Component component : eas[0].getComponents()) { + registerLoggableElement(component.getMetaData().getUuid(), component); + for (Library library : component.getLibraries()) { + registerLoggableElement(library.getMetaData().getUuid(), library); + } + } + for (ExplorationData explorationData : eas[0].getExplorations()) { + registerLoggableElement(explorationData.getMetaData().getUuid(), explorationData); + } + } + + protected void registerLoggableElement(String uuid, LoggableElement... loggableElements) { + this.loggableElements.put(uuid, loggableElements); + List<MetaData> datas = new ArrayList<MetaData>(); + for (LoggableElement data : loggableElements) { + datas.add(data.getMetaData()); + } + registerMetaData(uuid, datas.toArray(new MetaData[datas.size()])); + } + + protected void registerMetaData(String uuid, MetaData... datas) { + this.metadatas.put(uuid, datas); + this.metadatasIndex.add(uuid); + } + +} \ No newline at end of file Added: trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java =================================================================== --- trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java (rev 0) +++ trunk/simexplorer-is-swing/src/java/fr/cemagref/simexplorer/is/service/MockStorageServiceImpl.java 2008-02-05 00:07:54 UTC (rev 678) @@ -0,0 +1,217 @@ +/* +* ##% Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Code Lutin, +* Tony Chemit +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version 2 +* 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 Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with this program; if not, write to the Free Software +* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +* ##% */ +package fr.cemagref.simexplorer.is.service; + +import com.healthmarketscience.rmiio.RemoteInputStream; +import fr.cemagref.simexplorer.is.entities.data.LoggableElement; +import fr.cemagref.simexplorer.is.entities.metadata.MetaData; +import fr.cemagref.simexplorer.is.entities.metadata.Version; + +import java.util.Map; +import java.util.SortedMap; + +/** + * The Class MockStorageServiceImpl. + * + * @author chemit + */ +public class MockStorageServiceImpl implements StorageService { + + /** The Constant SIZE. */ + static final int SIZE = 400; + + protected MockDatabase base; + + public MockStorageServiceImpl() { + base = new MockDatabase(); + } + + /* (non-Javadoc) + * @see fr.cemagref.simexplorer.is.service.StorageService#commit() + */ + public void commit() throws SimExplorerServiceException { + checkImplemented(); + } + + /** + * Check implemented. + * + * @return the object + */ + private Object checkImplemented() { + throw new IllegalStateException("not implemented"); + } + + public MetaData saveElement(String token, RemoteInputStream zipRemoteStream) + throws SimExplorerServiceException { + return (MetaData) checkImplemented(); + } + + public MetaData saveElement(String token, + RemoteInputStream xmlRemoteStream, + Map<String, RemoteInputStream> attachmentsRemoteStream) + throws SimExplorerServiceException { + return (MetaData) checkImplemented(); + } + + public MetaData getMetadata(String token, String uuid) + throws SimExplorerServiceException { + MetaData[] datas = base.metadatas.get(uuid); + return datas == null ? null : datas[0]; + } + + /* (non-Javadoc) + * @see fr.cemagref.simexplorer.is.service.StorageService#getMetadata(java.lang.String, java.lang.String, java.lang.String) + */ + public MetaData getMetadata(String token, String uuid, String version) + throws SimExplorerServiceException { + MetaData[] datas = base.metadatas.get(uuid); + if (datas == null) { + return null; + } + Version v = Version.valueOf(version); + for (MetaData data : datas) { + if (data.getVersion().equals(v)) { + return data; + } + } + return null; + } + + /* (non-Javadoc) + * @see fr.cemagref.simexplorer.is.service.StorageService#exportElement(java.lang.String, java.lang.String, java.lang.String) + */ + public RemoteInputStream exportElement(String token, String uuid, + String version) throws SimExplorerServiceException { + return (RemoteInputStream) checkImplemented(); + } + + /* (non-Javadoc) + * @see fr.cemagref.simexplorer.is.service.StorageService#exportFull(java.lang.String, java.lang.String, java.lang.String) + */ + public RemoteInputStream exportFull(String token, String uuid, + String version) throws SimExplorerServiceException { + return (RemoteInputStream) checkImplemented(); + } + + /* (non-Javadoc) + * @see fr.cemagref.simexplorer.is.service.StorageService#retrieveData(java.lang.String, java.lang.String, java.lang.String, java.lang.String) + */ + public RemoteInputStream retrieveData(String token, String uuid, + String version, String dataKey) throws SimExplorerServiceException { + return null; + } + + public int findFullTextCount(String token, String query, boolean onlyLatest) + throws SimExplorerServiceException { + // TODO Changer + return findApplicationsCount(token, onlyLatest); + } + + public MetaData[] findFullText(String token, String query, + boolean onlyLatest, int indexStart, int count, int dateOrder) + throws SimExplorerServiceException { + // TODO Changer + return findApplications(token, onlyLatest, indexStart, count, dateOrder); + } + + public int findApplicationsCount(String token, boolean onlyLatest) + throws SimExplorerServiceException { + return base.metadatas.size(); + } + + /* (non-Javadoc) + * @see fr.cemagref.simexplorer.is.service.StorageService#findApplications(java.lang.String, boolean, int, int, int) + */ + public MetaData[] findApplications(String token, boolean onlyLatest, + int start, int count, int dateOrder) + throws SimExplorerServiceException { + int last = start + count; + System.out.println("ask data from " + start + " width:" + count); + SortedMap<String, MetaData[]> map = base.metadatas; + if (last > map.size()) { + last = map.size(); + } + MetaData[] result = new MetaData[last - start]; + + for (int i = start; i < last; i++) { + result[i - start] = map.get(base.metadatasIndex.get(i))[0]; + } + return result; + } + + /* (non-Javadoc) + * @see fr.cemagref.simexplorer.is.service.StorageService#getElement(java.lang.String, java.lang.String, java.lang.String) + */ + public LoggableElement getElement(String token, String uuid, String version) + throws SimExplorerServiceException { + try { + LoggableElement[] eas = base.loggableElements.get(uuid); + if (eas == null) { + return null; + } + Version v = Version.valueOf(version); + for (LoggableElement ea : eas) { + if (ea.getMetaData().getVersion().equals(v)) { + return ea; + } + } + return null; + } catch (Exception e) { + throw new SimExplorerServiceException(e); + } + } + + /* (non-Javadoc) + * @see fr.cemagref.simexplorer.is.service.StorageService#getVersions(java.lang.String, java.lang.String) + */ + public MetaData[] getVersions(String token, String uuid) + throws SimExplorerServiceException { + return base.metadatas.get(uuid); + } + + /* (non-Javadoc) + * @see fr.cemagref.simexplorer.is.service.StorageService#loginUser(java.lang.String, java.lang.String) + */ + public String loginUser(String login, String password) + throws SimExplorerServiceException { + if (login == null) { + throw new SimExplorerServiceException(new NullPointerException( + "login can not be null")); + } + return "password"; + } + + /* (non-Javadoc) + * @see fr.cemagref.simexplorer.is.service.StorageService#deleteElement(java.lang.String, java.lang.String, java.lang.String) + */ + public void deleteElement(String token, String uuid, String version) { + // TODO Auto-generated method stub + + } + + /* (non-Javadoc) + * @see fr.cemagref.simexplorer.is.service.StorageService#deleteElement(java.lang.String, java.lang.String) + */ + public void deleteElement(String token, String uuid) { + // TODO Auto-generated method stub + + } + +}
participants (1)
-
tchemit@users.labs.libre-entreprise.org