Author: bpoussin Date: 2011-04-20 23:01:17 +0200 (Wed, 20 Apr 2011) New Revision: 825 Url: http://nuiton.org/repositories/revision/wikitty/825 Log: - prise en charge de parametre null dans diffentes methods - ajout de la methode store avec varargs Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/Wikitty.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyCopyOnWrite.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyImpl.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyEvent.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurity.java trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceStorage.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-04-20 15:50:20 UTC (rev 824) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyProxy.java 2011-04-20 21:01:17 UTC (rev 825) @@ -46,7 +46,6 @@ import org.nuiton.wikitty.services.WikittyServiceEnhanced; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; @@ -219,7 +218,27 @@ return w; } + // TODO poussin 20110420 je ne sais pas comment creer un tableau de E pour + // le retouner. Donc je retourne la liste au lieu d'un toArray sur celle-ci + public <E extends BusinessEntity> List<E> store(E e1, E e2, E... eN) { + List<E> es = new ArrayList<E>(eN.length + 2); + Collections.addAll(es, e1, e2); + Collections.addAll(es, eN); + List<E> result = store(es); + return result; + } + + public Wikitty[] store(Wikitty w1, Wikitty w2, Wikitty... wN) { + List<Wikitty> ws = new ArrayList<Wikitty>(wN.length + 2); + Collections.addAll(ws, w1, w2); + Collections.addAll(ws, wN); + + List<Wikitty> resultList = storeWikitty(ws); + Wikitty[] result = resultList.toArray(new Wikitty[resultList.size()]); + return result; + } + /** * Store to WikittyService objects. * @@ -232,8 +251,12 @@ // prepare data to send to service List<Wikitty> wikitties = new ArrayList<Wikitty>(objets.size()); for (E e : objets) { - Wikitty w = ((BusinessEntityImpl)e).getWikitty(); - wikitties.add(w); + if (e == null) { + wikitties.add(null); + } else { + Wikitty w = ((BusinessEntityImpl)e).getWikitty(); + wikitties.add(w); + } } // call the service with Wikitty Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/Wikitty.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/Wikitty.java 2011-04-20 15:50:20 UTC (rev 824) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/Wikitty.java 2011-04-20 21:01:17 UTC (rev 825) @@ -102,6 +102,8 @@ boolean hasField(String extName, String fieldName); + boolean hasField(String fqfieldName); + WikittyExtension getExtension(String ext); Collection<String> getExtensionNames(); Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyCopyOnWrite.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyCopyOnWrite.java 2011-04-20 15:50:20 UTC (rev 824) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyCopyOnWrite.java 2011-04-20 21:01:17 UTC (rev 825) @@ -197,6 +197,11 @@ } @Override + public boolean hasField(String fqfieldName) { + return target.hasField(fqfieldName); + } + + @Override public WikittyExtension getExtension(String ext) { return target.getExtension(ext); } Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyImpl.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyImpl.java 2011-04-20 15:50:20 UTC (rev 824) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/entities/WikittyImpl.java 2011-04-20 21:01:17 UTC (rev 825) @@ -365,6 +365,15 @@ return result; } + @Override + public boolean hasField(String fqfieldName) { + String extName = WikittyExtension.extractExtensionName(fqfieldName); + String fieldName = WikittyExtension.extractFieldName(fqfieldName); + + boolean result = hasField(extName, fieldName); + return result; + } + /* * @see org.nuiton.wikitty.Wikitty#getExtension(java.lang.String) */ Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyEvent.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyEvent.java 2011-04-20 15:50:20 UTC (rev 824) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyEvent.java 2011-04-20 21:01:17 UTC (rev 825) @@ -268,23 +268,25 @@ * @return wikitty passed in arguement or null, if event is CLEAR_WIKITTY */ public Wikitty update(Wikitty e) { - // update version - String id = e.getId(); - if (type.contains(WikittyEventType.CLEAR_WIKITTY)) { - e = null; - } else { - if (type.contains(WikittyEventType.PUT_WIKITTY)) { - Wikitty newWikitty = getWikitties().get(id); - // can be null if wikitty is already saved (uptodate), then this wikitty is not re-saved - if (newWikitty != null) { - e.replaceWith(newWikitty); + if (e != null) { + // update version + String id = e.getId(); + if (type.contains(WikittyEventType.CLEAR_WIKITTY)) { + e = null; + } else { + if (type.contains(WikittyEventType.PUT_WIKITTY)) { + Wikitty newWikitty = getWikitties().get(id); + // can be null if wikitty is already saved (uptodate), then this wikitty is not re-saved + if (newWikitty != null) { + e.replaceWith(newWikitty); + } } + if (type.contains(WikittyEventType.REMOVE_WIKITTY)) { + Date date = getRemoveDate().get(id); + e.setDeleteDate(date); + } + e.clearDirty(); } - if (type.contains(WikittyEventType.REMOVE_WIKITTY)) { - Date date = getRemoveDate().get(id); - e.setDeleteDate(date); - } - e.clearDirty(); } return e; } Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurity.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurity.java 2011-04-20 15:50:20 UTC (rev 824) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceSecurity.java 2011-04-20 21:01:17 UTC (rev 825) @@ -218,7 +218,9 @@ protected void checkStore(String securityToken, Collection<Wikitty> wikitties) { String userId = getUserId(securityToken); for (Wikitty wikitty : wikitties) { - + if (wikitty == null) { + continue; + } // usual case, a user want to store a wikitty Wikitty oldVersion = WikittyServiceEnhanced.restore( getDelegate(), securityToken, wikitty.getId()); Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceStorage.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceStorage.java 2011-04-20 15:50:20 UTC (rev 824) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/services/WikittyServiceStorage.java 2011-04-20 21:01:17 UTC (rev 825) @@ -175,6 +175,9 @@ // use all time Set to prevent duplicated wikitty in collection wikitties = new LinkedHashSet<Wikitty>(wikitties); } + // suppress null wikitty + wikitties.remove(null); + checkConstraint(wikitties); // update/store extension if necessary @@ -774,9 +777,13 @@ List<PagedResult<String>> result = new ArrayList<PagedResult<String>>(criteria.size()); for (Criteria c : criteria) { - PagedResult<String> searchResult = - getSearchEngine().findAllByCriteria(tx, c); - result.add(searchResult); + if (c == null) { + result.add(null); + } else { + PagedResult<String> searchResult = + getSearchEngine().findAllByCriteria(tx, c); + result.add(searchResult); + } } if (txBeginHere) {
participants (1)
-
bpoussin@users.nuiton.org