Author: echatellier Date: 2010-09-23 10:41:44 +0200 (Thu, 23 Sep 2010) New Revision: 335 Url: http://nuiton.org/repositories/revision/wikitty/335 Log: Fix : - restriction on element extension - paged result count - wikitty restriction error when wikitty doesn't contains entension Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceInMemory.java Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceInMemory.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceInMemory.java 2010-09-23 07:58:47 UTC (rev 334) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceInMemory.java 2010-09-23 08:41:44 UTC (rev 335) @@ -244,15 +244,24 @@ if ( restriction instanceof BinaryOperator ) { BinaryOperator binOp = (BinaryOperator) restriction; - if ( binOp.getElement().equals(Element.ELT_EXTENSION) ) { + if ( binOp.getElement().getName().equals(Element.ELT_EXTENSION) ) { return w.hasExtension(binOp.getValue()); } - + + // FIXME: 20091104 jru manage search on extension and id String fqfieldName = binOp.getElement().getName(); if(Element.ELT_EXTENSION.equals(fqfieldName) || Element.ELT_ID.equals(fqfieldName)) { - return true; // FIXME: 20091104 jru manage search on extension and id + return true; } + + // Le check restriction, ne doit pas tester les champs + // si les wikitty n'ont meme pas l'extension concerné + String[] extName = fqfieldName.split("\\."); + if (!w.hasField(extName[0], extName[1])) { + return false; + } + Object o = w.getFqField( fqfieldName ); FieldType t = w.getFieldType(fqfieldName); Object value = t.getValidValue( binOp.getValue() ); @@ -333,7 +342,7 @@ } - return new PagedResult<String>(firstIndex, endIndex, criteria.getRestriction().toString(), null, ids ); + return new PagedResult<String>(firstIndex, ids.size(), criteria.getRestriction().toString(), null, ids ); } @Override