r145 - in trunk/wikitty-api/src: main/java/org/nuiton/wikitty test/java/org/nuiton/wikitty/api
Author: bpoussin Date: 2010-06-22 19:12:42 +0200 (Tue, 22 Jun 2010) New Revision: 145 Url: http://nuiton.org/repositories/revision/wikitty/145 Log: ajout de la validation des entites avant la sauvegarde: - check des champs notNull (a tester) Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceImpl.java trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/ExtensionFactoryTest.java Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceImpl.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceImpl.java 2010-06-22 17:03:49 UTC (rev 144) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyServiceImpl.java 2010-06-22 17:12:42 UTC (rev 145) @@ -130,9 +130,27 @@ return true; } + protected void checkConstraint(Collection<Wikitty> wikitties) { + for(Wikitty w : wikitties) { + for(WikittyExtension ext : w.getExtensions()) { + for (String fieldName : ext.getFieldNames()) { + FieldType type = ext.getFieldType(fieldName); + if (type.isNotNull()) { + if (null == w.getFqField(fieldName)) { + throw new WikittyException(String.format( + "Field %s must not be null", fieldName)); + } + } + } + } + } + } + @Override public UpdateResponse store(String securityToken, WikittyTransaction transaction, Collection<Wikitty> wikitties, boolean disableAutoVersionIncrement) { + checkConstraint(wikitties); + // update/store extension if necessary Set<WikittyExtension> allExtensions = new HashSet<WikittyExtension>(); for (Wikitty w : wikitties) { Modified: trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/ExtensionFactoryTest.java =================================================================== --- trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/ExtensionFactoryTest.java 2010-06-22 17:03:49 UTC (rev 144) +++ trunk/wikitty-api/src/test/java/org/nuiton/wikitty/api/ExtensionFactoryTest.java 2010-06-22 17:12:42 UTC (rev 145) @@ -15,6 +15,7 @@ public void testExtensionFactory() throws Exception { WikittyExtension ext = ExtensionFactory.create("testExtension", "1.0") .addField("name", TYPE.STRING) + .notNull() .addField("phoneNumbers", TYPE.STRING) .minOccur(2) .maxOccur(10) @@ -25,14 +26,15 @@ assertEquals("testExtension", ext.getName()); assertEquals("1.0", ext.getVersion()); - checkField( ext, "name", TYPE.STRING, 0, 1, false); - checkField( ext, "phoneNumbers", TYPE.STRING, 2, 10, false); - checkField( ext, "matricule", TYPE.NUMERIC, 0, 1, true); - checkField( ext, "fired", TYPE.BOOLEAN, 0, 1, false); + checkField( ext, "name", TYPE.STRING, 0, 1, false, true); + checkField( ext, "phoneNumbers", TYPE.STRING, 2, 10, false, false); + checkField( ext, "matricule", TYPE.NUMERIC, 0, 1, true, false); + checkField( ext, "fired", TYPE.BOOLEAN, 0, 1, false, false); } - private void checkField( WikittyExtension ext, String fieldName, TYPE type, int min, int max, boolean unique) { + private void checkField( WikittyExtension ext, String fieldName, TYPE type, + int min, int max, boolean unique, boolean notNull) { FieldType fieldType = ext.getFieldType(fieldName); String str = "Checking " + ext.getName() + "." + fieldName + " field..."; assertNotNull(str, fieldType ); @@ -40,6 +42,7 @@ assertEquals(str, min, fieldType.getLowerBound()); assertEquals(str, max, fieldType.getUpperBound()); assertEquals(str, unique, fieldType.isUnique()); + assertEquals(str, notNull, fieldType.isNotNull()); }
participants (1)
-
bpoussin@users.nuiton.org