Author: dlanglais Date: 2010-01-31 15:45:20 +0100 (Sun, 31 Jan 2010) New Revision: 44 Added: trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/BigHashMap.java Removed: trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/DataBase.java Modified: trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/Cell.java trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/Column.java trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/ColumnImpl.java trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/Table.java trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/TableImpl.java trunk/src/test/java/org/nuiton/mapstoragemanager/plugins/bighashmap/TableTest.java Log: Suppression de la class Database du plugin bighashmap qui sera remplac?\195?\169 par "BigHashMap". Ajout et test des fonctionnalit?\195?\169s d'ajout/r?\195?\169cup?\195?\169ration d'object dans une table. Diverses corrections mineures sur les Columns/Cells. Added: trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/BigHashMap.java =================================================================== --- trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/BigHashMap.java (rev 0) +++ trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/BigHashMap.java 2010-01-31 14:45:20 UTC (rev 44) @@ -0,0 +1,12 @@ +package org.nuiton.mapstoragemanager.plugins.bighashmap; + +import org.nuiton.mapstoragemanager.plugins.nvBigTable; + +/** + * Interface listant les méthodes nécéssaires sur une base de données. + * @author Dorian Langlais + * + */ +public interface BigHashMap extends nvBigTable { + +} Modified: trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/Cell.java =================================================================== --- trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/Cell.java 2010-01-29 01:47:20 UTC (rev 43) +++ trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/Cell.java 2010-01-31 14:45:20 UTC (rev 44) @@ -22,6 +22,8 @@ /** * Get an object from its "version". + * The version number start at 0, and increase one by one at each new + * version. * @param t the version wanted (it can be timestamp, number..). * @return The object corresponding to the "version". */ Modified: trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/Column.java =================================================================== --- trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/Column.java 2010-01-29 01:47:20 UTC (rev 43) +++ trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/Column.java 2010-01-31 14:45:20 UTC (rev 44) @@ -28,7 +28,7 @@ * @param key the key * @param t object to store */ - void put(String key, T t); + void put(String key, Object t); /** * Delete an object by its key. Modified: trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/ColumnImpl.java =================================================================== --- trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/ColumnImpl.java 2010-01-29 01:47:20 UTC (rev 43) +++ trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/ColumnImpl.java 2010-01-31 14:45:20 UTC (rev 44) @@ -46,11 +46,11 @@ /** * {@inheritDoc} */ - public final void put(final String key, final T content) { + public final void put(final String key, final Object content) { try { - this.column.get(key).put(content); + this.column.get(key).put((T)content); } catch (NullPointerException e) { - this.column.put(key, new CellImpl<T>(content)); + this.column.put(key, new CellImpl<T>((T)content)); } } Deleted: trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/DataBase.java =================================================================== --- trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/DataBase.java 2010-01-29 01:47:20 UTC (rev 43) +++ trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/DataBase.java 2010-01-31 14:45:20 UTC (rev 44) @@ -1,10 +0,0 @@ -package org.nuiton.mapstoragemanager.plugins.bighashmap; - -/** - * Interface listant les méthodes nécéssaires sur une base de données. - * @author Dorian Langlais - * - */ -public interface DataBase { - -} Modified: trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/Table.java =================================================================== --- trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/Table.java 2010-01-29 01:47:20 UTC (rev 43) +++ trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/Table.java 2010-01-31 14:45:20 UTC (rev 44) @@ -35,4 +35,34 @@ * @param key the key */ void deleteRow(final String key); + + /** + * Put an object in the table. + * Put the objct <b>o</b> in the column <b>columnName</b> at the key + * <b>key</b>. + * @param columnName the columnName + * @param key the key + * @param o the object + */ + void put(final String columnName, final String key, final Object o); + + /** + * Get an object from the table. + * Get an object from the column <b>columnName</b> with the key <b>key</b>. + * @param columnName the columnName + * @param key the key + * @return return the object stored + */ + Object get(final String columnName, final String key); + + /** + * Get an object from the table. + * Get an object from the column <b>columnName</b> with the key <b>key</b> + * and the versiion number <b>version</b>. + * @param columnName the columnName + * @param key the key + * @param version the version wanted + * @return return the object stored + */ + Object get(final String columnName, final String key, final long version); } Modified: trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/TableImpl.java =================================================================== --- trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/TableImpl.java 2010-01-29 01:47:20 UTC (rev 43) +++ trunk/src/main/java/org/nuiton/mapstoragemanager/plugins/bighashmap/TableImpl.java 2010-01-31 14:45:20 UTC (rev 44) @@ -69,4 +69,25 @@ column.delete(key); } } + + /** + * {@inheritDoc} + */ + public void put(String columnName, String key, Object o) { + this.tableColumns.get(columnName).put(key, o); + } + + /** + * {@inheritDoc} + */ + public Object get(String columnName, String key) { + return this.tableColumns.get(columnName).get(key); + } + + /** + * {@inheritDoc} + */ + public Object get(String columnName, String key, long version) { + return this.tableColumns.get(columnName).get(key, version); + } } Modified: trunk/src/test/java/org/nuiton/mapstoragemanager/plugins/bighashmap/TableTest.java =================================================================== --- trunk/src/test/java/org/nuiton/mapstoragemanager/plugins/bighashmap/TableTest.java 2010-01-29 01:47:20 UTC (rev 43) +++ trunk/src/test/java/org/nuiton/mapstoragemanager/plugins/bighashmap/TableTest.java 2010-01-31 14:45:20 UTC (rev 44) @@ -63,6 +63,10 @@ } + /** + * We create columns and we verify that they are actually in the table and + * in the structure of the table. + */ public void testCreateColumn() { tableActual = new TableImpl(); @@ -119,7 +123,14 @@ } } - + + /** + * We create some columns and remove them. + * After add them, we verify that the are actually in the table and in the + * structure. + * The we remove them one by one, and we verify that they are really removed + * of the table and of the structure. + */ public void testRemoveColumn() { tableActual = new TableImpl(); @@ -182,4 +193,131 @@ } } + + /** + * We create a new Table, with two columns. + * We put objects in this columns and we try to get it. + */ + public void testPutAndGet() { + + /** + * We create object to put (and get) + */ + String expectedString1 = new String("string1"); + String expectedString2 = new String("string2"); + Integer expectedInteger1 = new Integer(1); + Integer expectedInteger2 = new Integer(2); + + /** + * We create the table and columns. + */ + tableActual = new TableImpl(); + tableActual.createColumn("String", String.class); + tableActual.createColumn("Integer", Integer.class); + + /** + * We put objects in the table. + */ + tableActual.put("String", "string1", expectedString1); + tableActual.put("String", "string2", expectedString2); + tableActual.put("Integer", "integer1", expectedInteger1); + tableActual.put("Integer", "integer2", expectedInteger2); + + /** + * We try to get them. + */ + assertEquals(expectedString1, tableActual.get("String", "string1")); + assertEquals(expectedString2, tableActual.get("String", "string2")); + assertEquals(expectedInteger1, tableActual.get("Integer", "integer1")); + assertEquals(expectedInteger2, tableActual.get("Integer", "integer2")); + } + + /** + * We create a new Table, with two columns. + * We put objects in this columns and we try to get it. + */ + public void testPutAndGetWithVersion() { + + /** + * We create object to put (and get). + */ + String expectedString1 = new String("string1"); + String expectedString2 = new String("string2"); + Integer expectedInteger1 = new Integer(1); + Integer expectedInteger2 = new Integer(2); + + /** + * We create the table and columns. + */ + tableActual = new TableImpl(); + tableActual.createColumn("String", String.class); + tableActual.createColumn("Integer", Integer.class); + + /** + * We put objects in the table. + */ + tableActual.put("String", "string1", expectedString1); + tableActual.put("String", "string2", expectedString2); + tableActual.put("Integer", "integer1", expectedInteger1); + tableActual.put("Integer", "integer2", expectedInteger2); + + /** + * We try to get them. + */ + assertEquals(expectedString1, tableActual.get("String", "string1")); + assertEquals(expectedString2, tableActual.get("String", "string2")); + assertEquals(expectedInteger1, tableActual.get("Integer", "integer1")); + assertEquals(expectedInteger2, tableActual.get("Integer", "integer2")); + + /** + * We try to get them with their version number. + */ + assertEquals(expectedString1, tableActual.get("String", "string1",0)); + assertEquals(expectedString2, tableActual.get("String", "string2",0)); + assertEquals(expectedInteger1, tableActual.get("Integer", "integer1",0)); + assertEquals(expectedInteger2, tableActual.get("Integer", "integer2",0)); + + /** + * We create new object to store in the table. + */ + String expectedString1v2 = new String("string1v2"); + String expectedString2v2 = new String("string2v2"); + Integer expectedInteger1v2 = new Integer(12); + Integer expectedInteger2v2 = new Integer(22); + + /** + * We put them in the table. + */ + tableActual.put("String", "string1", expectedString1v2); + tableActual.put("String", "string2", expectedString2v2); + tableActual.put("Integer", "integer1", expectedInteger1v2); + tableActual.put("Integer", "integer2", expectedInteger2v2); + + /** + * We try to get them by get() : normally we get the last version. + */ + assertEquals(expectedString1v2, tableActual.get("String", "string1")); + assertEquals(expectedString2v2, tableActual.get("String", "string2")); + assertEquals(expectedInteger1v2, tableActual.get("Integer", "integer1")); + assertEquals(expectedInteger2v2, tableActual.get("Integer", "integer2")); + + /** + * We try get the the first version. + */ + assertEquals(expectedString1, tableActual.get("String", "string1",0)); + assertEquals(expectedString2, tableActual.get("String", "string2",0)); + assertEquals(expectedInteger1, tableActual.get("Integer", "integer1",0)); + assertEquals(expectedInteger2, tableActual.get("Integer", "integer2",0)); + + /** + * We try to get the actual version by its version number. + */ + assertEquals(expectedString1v2, tableActual.get("String", "string1",1)); + assertEquals(expectedString2v2, tableActual.get("String", "string2",1)); + assertEquals(expectedInteger1v2, tableActual.get("Integer", "integer1",1)); + assertEquals(expectedInteger2v2, tableActual.get("Integer", "integer2",1)); + + + + } }