Author: bpoussin Date: 2010-10-15 16:47:21 +0200 (Fri, 15 Oct 2010) New Revision: 415 Url: http://nuiton.org/repositories/revision/wikitty/415 Log: Remove Label management from WikittyService and add WikittyLabelHelper http://www.nuiton.org/issues/show/943 Added: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyLabelHelper.java Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceCached.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceDelegator.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceImpl.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceNotifier.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceSecurity.java trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/StorageTest.java Added: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyLabelHelper.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyLabelHelper.java (rev 0) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyLabelHelper.java 2010-10-15 14:47:21 UTC (rev 415) @@ -0,0 +1,87 @@ +package org.nuiton.wikitty; + + +import java.util.Set; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.nuiton.wikitty.search.Search; + +/** + * Helper to manage Label (add and find) + * + * @author poussin + * @version $Revision$ + * + * Last update: $Date$ + * by : $Author$ + */ +public class WikittyLabelHelper { + + /** to use log facility, just put in your code: log.info(\"...\"); */ + static private Log log = LogFactory.getLog(WikittyLabelHelper.class); + + /** + * Add new lable to the wikitty object. + * + * @param proxy + * @param wikittyId object'id + * @param label label to add + */ + static public void addLabel(WikittyProxy proxy, String wikittyId, String label) { + Wikitty w = proxy.restore(wikittyId); + LabelImpl l = new LabelImpl(w); + l.addLabels(label); + proxy.store(l); + } + + /** + * Recherche tous les objets qui ont ce label + * + * @param proxy + * @param label + * @param firstIndex + * @param endIndex + * @return + */ + static public PagedResult<Wikitty> findAllByLabel(WikittyProxy proxy, + String label, int firstIndex, int endIndex) { + LabelImpl l = new LabelImpl(); + l.addLabels(label); + + Criteria criteria = Search.query(l.getWikitty()).criteria() + .setFirstIndex(firstIndex).setEndIndex(endIndex); + PagedResult<Wikitty> result = proxy.findAllByCriteria(criteria); + + return result; + } + + /** + * Recherche le premier objet qui a ce label + * @param proxy + * @param label + * @return + */ + static public Wikitty findByLabel(WikittyProxy proxy, String label) { + LabelImpl l = new LabelImpl(); + l.addLabels(label); + Criteria criteria = Search.query(l.getWikitty()).criteria(); + Wikitty result = proxy.findByCriteria(criteria); + + return result; + } + + /** + * Retrieve all labels applied on a wikitty object. + * + * @param proxy + * @param wikittyId + * @return set of label + */ + static public Set<String> findAllAppliedLabels(WikittyProxy proxy, String wikittyId) { + Wikitty w = proxy.restore(wikittyId); + Set<String> result = LabelHelper.getLabels(w); + + return result; + } + +} Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2010-10-15 14:40:35 UTC (rev 414) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2010-10-15 14:47:21 UTC (rev 415) @@ -389,28 +389,6 @@ return wikitty; } - public void addLabel(String wikittyId, String label) { - wikittyService.addLabel(securityToken, wikittyId, label); - } - - public PagedResult<Wikitty> findAllByLabel(String label, int firstIndex, int endIndex) { - PagedResult<String> resultId = wikittyService.findAllByLabel(securityToken, - label, firstIndex, endIndex); - PagedResult<Wikitty> result = resultId.cast(securityToken, wikittyService); - return result; - } - - public Wikitty findByLabel(String label) { - Wikitty result = wikittyService.findByLabel(securityToken, label); - return result; - } - - public Set<String> findAllAppliedLabels(String wikittyId) { - Set<String> result = wikittyService.findAllAppliedLabels( - securityToken, wikittyId); - return result; - } - public Tree restoreTree(String wikittyId) { Tree result = wikittyService.restoreTree(securityToken, wikittyId); return result; Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java 2010-10-15 14:40:35 UTC (rev 414) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyService.java 2010-10-15 14:47:21 UTC (rev 415) @@ -381,47 +381,6 @@ public Wikitty findByCriteria(String securityToken, WikittyTransaction transaction, Criteria criteria); /* - * Labelisation - */ - - /** - * Add new lable to the wikitty object. - * - * @param securityToken security token - * @param wikittyId id of wikitty object to add label - * @param label label to add - */ - public void addLabel(String securityToken, String wikittyId, String label); - - /** - * - * @param securityToken security token - * @param label - * @return - */ - public PagedResult<String> findAllByLabel(String securityToken, - String label, int firstIndex, int endIndex); - - /** - * - * @param securityToken security token - * @param addLabel - * @return - */ - public Wikitty findByLabel(String securityToken, String label); - - /** - * Retrieve all labels applied on a wikitty object. - * - * @param securityToken security token - * @param wikittyId - * @return - */ - public Set<String> findAllAppliedLabels( - String securityToken, String wikittyId); - - - /* * Classification * Most of classification purpose is handle by extension mechanisms */ Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceCached.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceCached.java 2010-10-15 14:40:35 UTC (rev 414) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceCached.java 2010-10-15 14:47:21 UTC (rev 415) @@ -177,17 +177,6 @@ } /** - * Override to refresh wikitty after put label - * @param wikittyId - * @param label - */ - @Override - public void addLabel(String securityToken, String wikittyId, String label) { - ws.addLabel(securityToken, wikittyId, label); - restore(securityToken, wikittyId); - } - - /** * delete object in cache * @param id */ @@ -210,19 +199,6 @@ /** * just wrap service method * - * @param wikittyId - * @return - */ - @Override - public Set<String> findAllAppliedLabels(String securityToken, String wikittyId) { - // if we want to add cache for this method, we must clear cache when - // addLabel is called - return ws.findAllAppliedLabels(securityToken, wikittyId); - } - - /** - * just wrap service method - * * @param criteria * @return */ @@ -249,26 +225,9 @@ return ws.findAllByCriteria(securityToken, transaction, criteria); } - /** * just wrap service method * - * @param label - * @param firstIndex - * @param endIndex - * @return - */ - @Override - public PagedResult<String> findAllByLabel(String securityToken, - String label, int firstIndex, int endIndex) { - // if we want to add cache for this method, we must clear cache when - // addLabel is called - return ws.findAllByLabel(securityToken, label, firstIndex, endIndex); - } - - /** - * just wrap service method - * * @param criteria * @return */ @@ -299,22 +258,9 @@ /** * just wrap service method * - * @param label * @return */ @Override - public Wikitty findByLabel(String securityToken, String label) { - // if we want to add cache for this method, we must clear cache when - // addLabel is called - return ws.findByLabel(securityToken, label); - } - - /** - * just wrap service method - * - * @return - */ - @Override public List<String> getAllExtensionIds(String securityToken) { // TODO poussin 20100412: perhaps use cache for extension ? return ws.getAllExtensionIds(securityToken); Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceDelegator.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceDelegator.java 2010-10-15 14:40:35 UTC (rev 414) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceDelegator.java 2010-10-15 14:47:21 UTC (rev 415) @@ -24,17 +24,6 @@ import java.util.Map.Entry; import java.util.Set; -import org.nuiton.wikitty.Criteria; -import org.nuiton.wikitty.PagedResult; -import org.nuiton.wikitty.Tree; -import org.nuiton.wikitty.TreeNode; -import org.nuiton.wikitty.UpdateResponse; -import org.nuiton.wikitty.Wikitty; -import org.nuiton.wikitty.WikittyExtension; -import org.nuiton.wikitty.WikittyService; -import org.nuiton.wikitty.WikittyServiceListener; -import org.nuiton.wikitty.WikittyTransaction; - /** * Wikitty service delegator. * @@ -219,29 +208,6 @@ } @Override - public void addLabel(String securityToken, String wikittyId, String label) { - delegate.addLabel(securityToken, wikittyId, label); - } - - @Override - public PagedResult<String> findAllByLabel(String securityToken, - String label, int firstIndex, int endIndex) { - return delegate.findAllByLabel(securityToken, label, firstIndex, - endIndex); - } - - @Override - public Wikitty findByLabel(String securityToken, String label) { - return delegate.findByLabel(securityToken, label); - } - - @Override - public Set<String> findAllAppliedLabels(String securityToken, - String wikittyId) { - return delegate.findAllAppliedLabels(securityToken, wikittyId); - } - - @Override public Tree restoreTree(String securityToken, String wikittyId) { return delegate.restoreTree(securityToken, wikittyId); } Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceImpl.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceImpl.java 2010-10-15 14:40:35 UTC (rev 414) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceImpl.java 2010-10-15 14:47:21 UTC (rev 415) @@ -678,88 +678,7 @@ throw new WikittyException(eee); } } - - @Override - public void addLabel(String securityToken, String wikittyId, String label) { - WikittyTransaction transaction = new WikittyTransaction(); - try { - transaction.begin(); - - Wikitty w = restore(securityToken, transaction, wikittyId); - w.addExtension(LabelImpl.extensions); - LabelImpl l = new LabelImpl(w); - l.addLabels(label); - store(securityToken, transaction, Arrays.asList(w), false); - - transaction.commit(); - } catch (Exception eee) { - transaction.rollback(); - throw new WikittyException(eee); - } - } - - - @Override - public PagedResult<String> findAllByLabel(String securityToken, - String label, int firstIndex, int endIndex) { - WikittyTransaction transaction = new WikittyTransaction(); - try { - transaction.begin(); - - LabelImpl l = new LabelImpl(); - l.addLabels(label); - Criteria criteria = Search.query(l.getWikitty()).criteria() - .setFirstIndex(firstIndex).setEndIndex(endIndex); - PagedResult<String> result = findAllByCriteria( - securityToken, transaction, criteria); - - transaction.commit(); - return result; - } catch (Exception eee) { - transaction.rollback(); - throw new WikittyException(eee); - } - } - - - @Override - public Wikitty findByLabel(String securityToken, String label) { - WikittyTransaction transaction = new WikittyTransaction(); - try { - transaction.begin(); - - LabelImpl l = new LabelImpl(); - l.addLabels(label); - Criteria criteria = Search.query(l.getWikitty()).criteria(); - Wikitty result = findByCriteria(securityToken, transaction, criteria); - - transaction.commit(); - return result; - } catch (Exception eee) { - transaction.rollback(); - throw new WikittyException(eee); - } - } - - - @Override - public Set<String> findAllAppliedLabels(String securityToken, String wikittyId) { - WikittyTransaction transaction = new WikittyTransaction(); - try { - transaction.begin(); - - Wikitty w = restore(securityToken, transaction, wikittyId); - Set<String> result = LabelHelper.getLabels(w); - - transaction.commit(); - return result; - } catch (Exception eee) { - transaction.rollback(); - throw new WikittyException(eee); - } - } - - + protected Tree restoreTree(String securityToken, WikittyTransaction transaction, String wikittyId) { Wikitty w = restore(securityToken, transaction, wikittyId); Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceNotifier.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceNotifier.java 2010-10-15 14:40:35 UTC (rev 414) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceNotifier.java 2010-10-15 14:47:21 UTC (rev 415) @@ -139,7 +139,10 @@ return ws.canRead(securityToken, wikittyId); } + @Override public void clear(String securityToken) { + // FIXME poussin 20101015 pourquoi n'y a t il pas d'event pour un clear total ? + // il faut prévenir les clients de synchro de ce vider totalement aussi ws.clear(securityToken); } @@ -317,32 +320,6 @@ } @Override - public void addLabel(String securityToken, String wikittyId, String label) { - // no notification - // TODO EC20100607 fixme : need notification ? - ws.addLabel(securityToken, wikittyId, label); - } - - @Override - public PagedResult<String> findAllByLabel(String securityToken, - String label, int firstIndex, int endIndex) { - // no notification - return ws.findAllByLabel(securityToken, label, firstIndex, endIndex); - } - - @Override - public Wikitty findByLabel(String securityToken, String label) { - // no notification - return ws.findByLabel(securityToken, label); - } - - @Override - public Set<String> findAllAppliedLabels(String securityToken, String wikittyId) { - // no notification - return ws.findAllAppliedLabels(securityToken, wikittyId); - } - - @Override public Tree restoreTree(String securityToken, String wikittyId) { // no notification return ws.restoreTree(securityToken, wikittyId); Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceSecurity.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceSecurity.java 2010-10-15 14:40:35 UTC (rev 414) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceSecurity.java 2010-10-15 14:47:21 UTC (rev 415) @@ -480,31 +480,6 @@ } @Override - public void addLabel(String securityToken, String wikittyId, String label) { - log.error("security is not supported for labels"); - throw new UnsupportedOperationException("security is not supported for labels"); - } - - @Override - public PagedResult<String> findAllByLabel(String securityToken, - String label, int firstIndex, int endIndex) { - log.error("security is not supported for labels"); - throw new UnsupportedOperationException("security is not supported for labels"); - } - - @Override - public Wikitty findByLabel(String securityToken, String label) { - log.error("security is not supported for labels"); - throw new UnsupportedOperationException("security is not supported for labels"); - } - - @Override - public Set<String> findAllAppliedLabels(String securityToken, String wikittyId) { - log.error("security is not supported for labels"); - throw new UnsupportedOperationException("security is not supported for labels"); - } - - @Override public Tree restoreTree(String securityToken, String wikittyId) { String userId = getUserId(securityToken); Tree restoredTree = ws.restoreTree(securityToken, wikittyId); Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/StorageTest.java =================================================================== --- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/StorageTest.java 2010-10-15 14:40:35 UTC (rev 414) +++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/conform/StorageTest.java 2010-10-15 14:47:21 UTC (rev 415) @@ -32,6 +32,7 @@ import org.nuiton.wikitty.WikittyException; import org.nuiton.wikitty.WikittyExtension; import org.nuiton.wikitty.WikittyImpl; +import org.nuiton.wikitty.WikittyLabelHelper; import org.nuiton.wikitty.WikittyObsoleteException; import org.nuiton.wikitty.WikittyProxy; import org.nuiton.wikitty.WikittyUtil; @@ -389,24 +390,26 @@ List<Wikitty> wikitties = createSampleWikitty(ws); long ts = new Date().getTime(); + WikittyProxy proxy = new WikittyProxy(ws); + // labelisation test Wikitty w1 = wikitties.get(0); - ws.addLabel(null, w1.getId(), "titi"+ts); - ws.addLabel(null, w1.getId(), "toto"+ts); + WikittyLabelHelper.addLabel(proxy, w1.getId(), "titi"+ts); + WikittyLabelHelper.addLabel(proxy, w1.getId(), "toto"+ts); Wikitty w2 = wikitties.get(1); - ws.addLabel(null, w2.getId(), "tata"+ts); - ws.addLabel(null, w2.getId(), "titi"+ts); + WikittyLabelHelper.addLabel(proxy, w2.getId(), "tata"+ts); + WikittyLabelHelper.addLabel(proxy, w2.getId(), "titi"+ts); Wikitty w3 = wikitties.get(2); - ws.addLabel(null, w3.getId(), "tutu"+ts); - ws.addLabel(null, w3.getId(), "titi"+ts); + WikittyLabelHelper.addLabel(proxy, w3.getId(), "tutu"+ts); + WikittyLabelHelper.addLabel(proxy, w3.getId(), "titi"+ts); - Wikitty wt = ws.findByLabel(null, "toto"+ts ); + Wikitty wt = WikittyLabelHelper.findByLabel(proxy, "toto"+ts ); assertEquals(w1, wt); - Set<String> labels = ws.findAllAppliedLabels(null, w2.getId()); + Set<String> labels = WikittyLabelHelper.findAllAppliedLabels(proxy, w2.getId()); assertEquals(new HashSet(Arrays.asList("tata"+ts, "titi"+ts)), labels); }