r20 - trunk/echobase-services/src/main/java/fr/ifremer/echobase/services
Author: tchemit Date: 2011-11-08 10:01:17 +0100 (Tue, 08 Nov 2011) New Revision: 20 Url: http://forge.codelutin.com/repositories/revision/echobase/20 Log: add DbEdtiorservice + some cleans on services Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseService.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContext.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContextImpl.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceFactory.java trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java Added: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java (rev 0) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java 2011-11-08 09:01:17 UTC (rev 20) @@ -0,0 +1,116 @@ +/* + * #%L + * EchoBase :: Services + * + * $Id$ + * $HeadURL$ + * %% + * Copyright (C) 2011 Ifremer, Codelutin + * %% + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero 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 Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * #L% + */ +package fr.ifremer.echobase.services; + +import com.google.common.collect.Lists; +import fr.ifremer.echobase.EchoBaseTechnicalException; +import org.apache.commons.beanutils.ResultSetDynaClass; +import org.hibernate.mapping.Column; +import org.nuiton.topia.persistence.TopiaEntity; + +import java.io.Serializable; +import java.sql.SQLException; +import java.util.Date; +import java.util.List; + +/** + * Service to edit the database. + * + * @author tchemit <chemit@codelutin.com> + * @since 0.1 + */ +public class DbEditorService extends AbstractEchoBaseService { + + protected static TableMeta newMeta(String name, Class<?> type) { + return new TableMeta(name, type); + } + + public List<TableMeta> getMetas(String tableName) { + List<TableMeta> result = Lists.newLinkedList(); + return result; + } + + public ResultSetDynaClass getDatas(String tableName) { + try { + ResultSetDynaClass result = null; + result = new ResultSetDynaClass(null); + return result; + } catch (SQLException eee) { + throw new EchoBaseTechnicalException("Could not obtain data", eee); + } + } + + public static class TableMeta implements Serializable { + + private static final long serialVersionUID = 1L; + + protected String name; + + protected String label; + + protected Column hibernateColumn; + + protected Class<?> type; + + public TableMeta(String name, Class<?> type) { + this(name, name, type); + } + + public TableMeta(String name, String label, Class<?> type) { + this.name = name; + this.label = label; + this.type = type; + } + + public String getName() { + return name; + } + + public String getLabel() { + return label; + } + + public Class<?> getType() { + return type; + } + + public String getColumnType() { + String result = "string"; + if (boolean.class.equals(type)) { + result = "boolean"; + } else if (Date.class.equals(type)) { + result = "date"; + } + return result; + } + + public boolean isFK() { + return TopiaEntity.class.isAssignableFrom(type); + } + + public Column getHibernateColumn() { + return hibernateColumn; + } + } +} Property changes on: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/DbEditorService.java ___________________________________________________________________ Added: svn:keywords + Author Date Id Revision HeadURL Added: svn:eol-style + native Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseService.java 2011-11-08 08:56:23 UTC (rev 19) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseService.java 2011-11-08 09:01:17 UTC (rev 20) @@ -28,7 +28,7 @@ * Contract to place on each EchBase service to push the {@code serviceContext} * inside the service. * - * @author chemit <chemit@codelutin.com> + * @author tchemit <chemit@codelutin.com> * @see EchoBaseServiceContext * @since 0.1 */ Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContext.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContext.java 2011-11-08 08:56:23 UTC (rev 19) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContext.java 2011-11-08 09:01:17 UTC (rev 20) @@ -32,7 +32,7 @@ * Objects provided may be injected in services returned by * {@link EchoBaseServiceFactory#newService(Class, EchoBaseServiceContext)} * - * @author chemit <chemit@codelutin.com> + * @author tchemit <chemit@codelutin.com> * @since 0.1 */ public interface EchoBaseServiceContext { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContextImpl.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContextImpl.java 2011-11-08 08:56:23 UTC (rev 19) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceContextImpl.java 2011-11-08 09:01:17 UTC (rev 20) @@ -29,7 +29,7 @@ /** Instances of this class will be given to service factory. * - * @author chemit <chemit@codelutin.com> + * @author tchemit <chemit@codelutin.com> * @since 0.1 **/ public class EchoBaseServiceContextImpl implements EchoBaseServiceContext { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceFactory.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceFactory.java 2011-11-08 08:56:23 UTC (rev 19) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/EchoBaseServiceFactory.java 2011-11-08 09:01:17 UTC (rev 20) @@ -30,7 +30,7 @@ /** * Factory of services. * - * @author chemit <chemit@codelutin.com> + * @author tchemit <chemit@codelutin.com> * @since 0.1 */ public class EchoBaseServiceFactory { Modified: trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java =================================================================== --- trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java 2011-11-08 08:56:23 UTC (rev 19) +++ trunk/echobase-services/src/main/java/fr/ifremer/echobase/services/UserService.java 2011-11-08 09:01:17 UTC (rev 20) @@ -38,17 +38,12 @@ /** * @author sletellier <letellier@codelutin.com> * @since 0.1 - **/ + */ public class UserService extends AbstractEchoBaseService { - public EchoBaseUserDAO getDAO() throws TopiaException { - return EchoBaseDAOHelper.getEchoBaseUserDAO(getTransaction()); - } - - public List<EchoBaseUser> getUsers() throws EchoBaseTechnicalException { + public List<EchoBaseUser> getUsers() { try { List<EchoBaseUser> users = getDAO().findAll(); - return users; } catch (TopiaException eee) { throw new EchoBaseTechnicalException(eee); @@ -58,7 +53,16 @@ public EchoBaseUser getUserById(String topiaId) { try { EchoBaseUser user = getDAO().findByTopiaId(topiaId); + return user; + } catch (TopiaException eee) { + throw new EchoBaseTechnicalException(eee); + } + } + public EchoBaseUser getUserByEmail(String email) { + Preconditions.checkNotNull(email); + try { + EchoBaseUser user = getDAO().findByEmail(email); return user; } catch (TopiaException eee) { throw new EchoBaseTechnicalException(eee); @@ -84,7 +88,6 @@ user.setPassword(encodePassword(password)); } dao.update(user); - getTransaction().commitTransaction(); } catch (TopiaException eee) { throw new EchoBaseTechnicalException(eee); @@ -95,26 +98,13 @@ try { EchoBaseUserDAO dao = getDAO(); EchoBaseUser user = dao.findByTopiaId(userDTO.getId()); - dao.delete(user); - getTransaction().commitTransaction(); } catch (TopiaException eee) { throw new EchoBaseTechnicalException(eee); } } - public EchoBaseUser getUserByEmail(String email) { - Preconditions.checkNotNull(email); - try { - EchoBaseUserDAO dao = getDAO(); - EchoBaseUser user = dao.findByEmail(email); - return user; - } catch (TopiaException eee) { - throw new EchoBaseTechnicalException(eee); - } - } - public boolean checkPassword(EchoBaseUser user, String password) throws Exception { String s = encodePassword(password); @@ -125,4 +115,8 @@ String encodedPassword = StringUtil.encodeMD5(password); return encodedPassword; } + + protected EchoBaseUserDAO getDAO() throws TopiaException { + return EchoBaseDAOHelper.getEchoBaseUserDAO(getTransaction()); + } }
participants (1)
-
tchemit@users.forge.codelutin.com