age = id("name", Integer.class);}
+ *
+ * Populating a Table
+ *
+ * Creation of a new {@link fr.kazejiyu.generic.datatable.core.Table Table} consists of an easy one-liner :
+ *
+ * {@code Table people = new DataTable();}
+ *
+ * A table can be filled either by adding new columns :
+ *
+ * people.columns()
+ * .create("Name", String.class, "Luc", "Baptiste", "Marie")
+ * .create("Age", Integer.class, 23, 32, 42);}
+ *
+ * or by adding new rows :
+ *
+ * people.rows()
+ * .create("Julie", 12)
+ * .create("Mathieu", 67);
+ *
+ * Depopulating a Table
+ *
+ * A table can be emptied either by removing columns:
+ *
+ * people.columns()
+ * .remove("age");
+ *
+ * Querying a Table
+ *
+ * The {@link Table#filter(ca.odell.glazedlists.matchers.Matcher) Table.filter(Matcher)} makes easy to retrieve
+ * the rows of a table that match a specific criterion:
+ *
+ * ColumnId<Integer> AGE = id(Integer.class, "age");
+ *ColumnId<String> NAME = id(String.class, "name");
+ *
+ *Table adultsWhoseNameEndsWithLetterE(Table people) {
+ * return people.filter(row ->
+ * row.get(AGE) > 18 &&
+ * row.get(NAME).startsWith("E")
+ * );
+ *}
+ *
+ * For more complex cases, the API also defines a SQL-like DSL that makes possible to apply a same filter on mutliple
+ * columns. See {@link fr.kazejiyu.generic.datatable.query} for an overview.
+ *
* @author Emmanuel CHEBBI
*/
package fr.kazejiyu.generic.datatable.core;
\ No newline at end of file
diff --git a/src/main/java/fr/kazejiyu/generic/datatable/query/impl/package-info.java b/src/main/java/fr/kazejiyu/generic/datatable/query/impl/package-info.java
index b5e1b48..2427ad9 100644
--- a/src/main/java/fr/kazejiyu/generic/datatable/query/impl/package-info.java
+++ b/src/main/java/fr/kazejiyu/generic/datatable/query/impl/package-info.java
@@ -1,5 +1,5 @@
/**
- * Provides a SQL-like DSL to query the content of a {@link fr.kazejiyu.generic.datatable.core.Table Table}.
+ * Concrete implementation of a {@link fr.kazejiyu.generic.datatable.query.Query Query}.
*
* @author Emmanuel CHEBBI
*/
diff --git a/src/main/java/fr/kazejiyu/generic/datatable/query/package-info.java b/src/main/java/fr/kazejiyu/generic/datatable/query/package-info.java
new file mode 100644
index 0000000..bf2c38a
--- /dev/null
+++ b/src/main/java/fr/kazejiyu/generic/datatable/query/package-info.java
@@ -0,0 +1,23 @@
+/**
+ * Describes a SQL-like DSL to query the content of a {@link fr.kazejiyu.generic.datatable.core.Table Table}.
+ *
+ * SQL-like DSL
+ *
+ * The API can be used as follows:
+ *
+ * ColumnId<Integer> AGE = id(Integer.class, "age");
+ *ColumnId<String> NAME = id(String.class, "name");
+ *ColumnId<String> SURENAME = id(String.class, "surename");
+ *
+ *Table europeanAdultsWhoseNameEndsWithLetterE(Table people) {
+ * return Query
+ * .from(people)
+ * .where(s(NAME, SURENAME)).endsWith("e")
+ * .and(AGE).gt(18)
+ * .and(COUNTRY).match(Country::isInEurope)
+ * .select();
+ *}
+ *
+ * @author Emmanuel CHEBBI
+ */
+package fr.kazejiyu.generic.datatable.query;
\ No newline at end of file