Author: bpoussin Date: 2011-05-21 13:36:45 +0200 (Sat, 21 May 2011) New Revision: 911 Url: http://nuiton.org/repositories/revision/wikitty/911 Log: Evolution #1544: add proxy.restore(Set) method Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2011-05-20 16:05:23 UTC (rev 910) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2011-05-21 11:36:45 UTC (rev 911) @@ -55,6 +55,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.Set; import org.nuiton.wikitty.entities.WikittyTokenHelper; import org.nuiton.wikitty.search.TreeNodeResult; @@ -372,13 +373,18 @@ /** * Restore wikitty entity with specified id or {@code null} if entity can't be be found. * - * @param id entity id + * @param id entity ids if null return is empty list * @return wikitty entity with specified id or {@code null} if entity can't be found */ public List<Wikitty> restore(List<String> id) { long start = TimeLog.getTime(); - List<Wikitty> result = wikittyService.restore(securityToken, id); + List<Wikitty> result; + if (id == null) { + result = new ArrayList<Wikitty>(); + } else { + result = wikittyService.restore(securityToken, id); + } timeLog.log(start, "restoreWikitty<list>"); return result; @@ -390,7 +396,7 @@ * * @param <E> object type * @param clazz entity class - * @param id entity id + * @param id entity ids if null return is empty list * @param checkExtension if true check that Wikitty result has all extension * @return wikitty entity with specified id or {@code null} if entity * can't be found or if one wikitty don't have extension wanted by E type @@ -398,39 +404,40 @@ public <E extends BusinessEntity> List<E> restore( Class<E> clazz, List<String> id, boolean checkExtension) { long start = TimeLog.getTime(); - - List<Wikitty> wikitties = wikittyService.restore(securityToken, id); List<E> result = new ArrayList<E>(); - for (Wikitty w : wikitties) { - HashSet<String> extNames = null; - if (checkExtension) { - extNames = new HashSet<String>(w.getExtensionNames()); - } - E dto = WikittyUtil.newInstance( - securityToken, wikittyService, clazz, w); - if (checkExtension) { - // WikittyUtil.newInstance instanciate only BusinessEntityWikittyImpl - BusinessEntityImpl b = (BusinessEntityImpl) dto; - for (WikittyExtension ext : b.getStaticExtensions()) { - if (!extNames.contains(ext.getName())) { - // extension wanted by BusinessEntity (clazz) - // is not in wikitty, then wikitty is not good type - // for business - result = null; + if (id != null) { + List<Wikitty> wikitties = wikittyService.restore(securityToken, id); + for (Wikitty w : wikitties) { + HashSet<String> extNames = null; + if (checkExtension) { + extNames = new HashSet<String>(w.getExtensionNames()); + } + + E dto = WikittyUtil.newInstance( + securityToken, wikittyService, clazz, w); + if (checkExtension) { + // WikittyUtil.newInstance instanciate only BusinessEntityWikittyImpl + BusinessEntityImpl b = (BusinessEntityImpl) dto; + for (WikittyExtension ext : b.getStaticExtensions()) { + if (!extNames.contains(ext.getName())) { + // extension wanted by BusinessEntity (clazz) + // is not in wikitty, then wikitty is not good type + // for business + result = null; + break; + } + } + // le break au dessus permet de soritr d'une boucle + // met si result est null il faut sortir de la methode et donc + // sortir de la deuxieme boucle + if (result == null) { break; } } - // le break au dessus permet de soritr d'une boucle - // met si result est null il faut sortir de la methode et donc - // sortir de la deuxieme boucle - if (result == null) { - break; - } + result.add(dto); } - result.add(dto); } - timeLog.log(start, "restore<list>"); return result; } @@ -440,6 +447,31 @@ return result; } + public Set<Wikitty> restore(Set<String> id) { + ArrayList<String> list = null; + if (id != null) { + list = new ArrayList<String>(id); + } + List<Wikitty> resultList = restore(list); + Set<Wikitty> result = new HashSet<Wikitty>(resultList); + return result; + } + + public <E extends BusinessEntity> Set<E> restore(Class<E> clazz, Set<String> id) { + Set<E> result = restore(clazz, id, false); + return result; + } + + public <E extends BusinessEntity> Set<E> restore(Class<E> clazz, Set<String> id, boolean checkExtension) { + ArrayList<String> list = null; + if (id != null) { + list = new ArrayList<String>(id); + } + List<E> resultList = restore(clazz, list, checkExtension); + Set<E> result = new HashSet<E>(resultList); + return result; + } + public void delete(String id) { long start = TimeLog.getTime(); wikittyService.delete(securityToken, id);