Changeset: 6617eaf808cb for monetdb-java
URL: http://dev.monetdb.org/hg/monetdb-java?cmd=changeset;node=6617eaf808cb
Added Files:
        
src/main/java/nl/cwi/monetdb/embedded/resultset/AbstractQueryResultSetColumn.java
        
src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetBooleanColumn.java
        
src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetByteColumn.java
        
src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetDoubleColumn.java
        
src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetFloatColumn.java
        
src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetIntColumn.java
        
src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetLongColumn.java
        
src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetObjectColumn.java
        
src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetShortColumn.java
Removed Files:
        
src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSetColumn.java
Modified Files:
        src/main/java/nl/cwi/monetdb/embedded/env/MonetDBEmbeddedConnection.java
        src/main/java/nl/cwi/monetdb/embedded/mapping/AbstractColumn.java
        src/main/java/nl/cwi/monetdb/embedded/mapping/AbstractResultTable.java
        src/main/java/nl/cwi/monetdb/embedded/mapping/AbstractRowSet.java
        src/main/java/nl/cwi/monetdb/embedded/mapping/MonetDBEmbeddedBlob.java
        src/main/java/nl/cwi/monetdb/embedded/mapping/MonetDBRow.java
        src/main/java/nl/cwi/monetdb/embedded/mapping/MonetDBToJavaMapping.java
        src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultRowSet.java
        src/main/java/nl/cwi/monetdb/embedded/resultset/QueryResultSet.java
        src/main/java/nl/cwi/monetdb/embedded/tables/MonetDBTable.java
        src/main/java/nl/cwi/monetdb/embedded/tables/MonetDBTableColumn.java
        src/main/java/nl/cwi/monetdb/embedded/tables/RowIterator.java
Branch: embedded
Log Message:

Intermediary commit. Added direct mapping for primitive types. Removed unused 
code.


diffs (truncated from 1987 to 300 lines):

diff --git 
a/src/main/java/nl/cwi/monetdb/embedded/env/MonetDBEmbeddedConnection.java 
b/src/main/java/nl/cwi/monetdb/embedded/env/MonetDBEmbeddedConnection.java
--- a/src/main/java/nl/cwi/monetdb/embedded/env/MonetDBEmbeddedConnection.java
+++ b/src/main/java/nl/cwi/monetdb/embedded/env/MonetDBEmbeddedConnection.java
@@ -39,7 +39,7 @@ public class MonetDBEmbeddedConnection {
      */
     public String getCurrentSchema() throws MonetDBEmbeddedException {
         QueryResultSet eqr = this.sendQuery("SELECT current_schema FROM 
sys.var();");
-        QueryResultSetColumn<String> col = eqr.getColumnByIndex(0);
+        QueryResultSetObjectColumn<String> col = eqr.getObjectColumnByIndex(0);
         String res = col.fetchFirstNColumnValues(1)[0];
         eqr.close();
         return res;
@@ -138,31 +138,6 @@ public class MonetDBEmbeddedConnection {
     }*/
 
     /**
-     * Creates a prepared query statement likewise the PreparedStatement in 
JDBC.
-     *
-     * @param query The SQL query with '?' indicating the parameters to 
replace in the query
-     * @return An instance of EmbeddedPreparedStatement
-     * @throws MonetDBEmbeddedException If an error in the database occurred
-     */
-    /*public EmbeddedPreparedStatement createPreparedStatement(String query) 
throws MonetDBEmbeddedException {
-        if (!query.endsWith(";")) {
-            query += ";";
-        }
-        return this.createPreparedStatementInternal(this.connectionPointer, 
query);
-    }*/
-
-    /**
-     * Creates a prepared query statement likewise the PreparedStatement in 
JDBC asynchronously.
-     *
-     * @param query The SQL query with '?' indicating the parameters to 
replace in the query
-     * @return An instance of EmbeddedPreparedStatement
-     * @throws MonetDBEmbeddedException If an error in the database occurred
-     */
-    /*public CompletableFuture<EmbeddedPreparedStatement> 
createPreparedStatementAsync(String query) throws MonetDBEmbeddedException {
-        return CompletableFuture.supplyAsync(() -> 
this.createPreparedStatement(query));
-    }*/
-
-    /**
      * Retrieves a MonetDB Table for further operations
      *
      * @param schemaName The schema of the table
@@ -284,9 +259,6 @@ public class MonetDBEmbeddedConnection {
     private native MonetDBTable getMonetDBTableInternal(long 
connectionPointer, String schemaName, String tableName)
             throws MonetDBEmbeddedException;
 
-    /*private native EmbeddedPreparedStatement 
createPreparedStatementInternal(long connectionPointer, String query)
-            throws MonetDBEmbeddedException;*/
-
     /**
      * Internal implementation to close a connection.
      */
diff --git a/src/main/java/nl/cwi/monetdb/embedded/mapping/AbstractColumn.java 
b/src/main/java/nl/cwi/monetdb/embedded/mapping/AbstractColumn.java
--- a/src/main/java/nl/cwi/monetdb/embedded/mapping/AbstractColumn.java
+++ b/src/main/java/nl/cwi/monetdb/embedded/mapping/AbstractColumn.java
@@ -16,12 +16,30 @@ package nl.cwi.monetdb.embedded.mapping;
 public abstract class AbstractColumn {
 
     /**
-     * The Mapping between MonetDB type and the Java Class.
+     * The mapping between MonetDB type and the Java Class.
      */
     protected final MonetDBToJavaMapping mapping;
 
-    protected AbstractColumn(String columnType) {
+    /**
+     * The column name.
+     */
+    private final String columnName;
+
+    /**
+     * The column digits.
+     */
+    private final int columnDigits;
+
+    /**
+     * The column scale.
+     */
+    private final int columnScale;
+
+    protected AbstractColumn(String columnType, String columnName, int 
columnDigits, int columnScale) {
         this.mapping = 
MonetDBToJavaMapping.GetJavaMappingFromMonetDBString(columnType);
+        this.columnName = columnName;
+        this.columnDigits = columnDigits;
+        this.columnScale = columnScale;
     }
 
     /**
@@ -43,19 +61,19 @@ public abstract class AbstractColumn {
      *
      * @return The column name
      */
-    public abstract String getColumnName();
+    public String getColumnName() { return this.columnName; }
 
     /**
      * Gets the number digits of the column.
      *
      * @return The number of digits
      */
-    public abstract int getColumnDigits();
+    public int getColumnDigits() { return this.columnDigits; }
 
     /**
      * Gets the scale of the column.
      *
      * @return The scale
      */
-    public abstract int getColumnScale();
+    public int getColumnScale() { return this.columnScale; }
 }
diff --git 
a/src/main/java/nl/cwi/monetdb/embedded/mapping/AbstractResultTable.java 
b/src/main/java/nl/cwi/monetdb/embedded/mapping/AbstractResultTable.java
--- a/src/main/java/nl/cwi/monetdb/embedded/mapping/AbstractResultTable.java
+++ b/src/main/java/nl/cwi/monetdb/embedded/mapping/AbstractResultTable.java
@@ -1,3 +1,11 @@
+/*
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0.  If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * Copyright 2016 MonetDB B.V.
+ */
+
 package nl.cwi.monetdb.embedded.mapping;
 
 import nl.cwi.monetdb.embedded.env.AbstractConnectionResult;
diff --git a/src/main/java/nl/cwi/monetdb/embedded/mapping/AbstractRowSet.java 
b/src/main/java/nl/cwi/monetdb/embedded/mapping/AbstractRowSet.java
--- a/src/main/java/nl/cwi/monetdb/embedded/mapping/AbstractRowSet.java
+++ b/src/main/java/nl/cwi/monetdb/embedded/mapping/AbstractRowSet.java
@@ -1,3 +1,11 @@
+/*
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0.  If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * Copyright 2016 MonetDB B.V.
+ */
+
 package nl.cwi.monetdb.embedded.mapping;
 
 /**
@@ -9,6 +17,11 @@ package nl.cwi.monetdb.embedded.mapping;
 public abstract class AbstractRowSet {
 
     /**
+     * The original query result set this row set belongs.
+     */
+    private final AbstractResultTable table;
+
+    /**
      * The MonetDB-To-Java mappings of the columns.
      */
     protected final MonetDBToJavaMapping[] mappings;
@@ -18,7 +31,8 @@ public abstract class AbstractRowSet {
      */
     protected final MonetDBRow[] rows;
 
-    protected AbstractRowSet(MonetDBToJavaMapping[] mappings, Object[][] rows) 
{
+    protected AbstractRowSet(AbstractResultTable table, MonetDBToJavaMapping[] 
mappings, Object[][] rows) {
+        this.table = table;
         this.mappings = mappings;
         this.rows = new MonetDBRow[rows.length];
         for(int i = 0 ; i < rows.length ; i++) {
@@ -27,9 +41,23 @@ public abstract class AbstractRowSet {
     }
 
     /**
+     * Gets the original query result set this row set belongs.
+     *
+     * @return The original query result set this row set belongs
+     */
+    public AbstractResultTable getQueryResultTable() { return table; }
+
+    /**
      * Gets the number of columns in this set.
      *
      * @return The number of columns in this set
      */
     public int getNumberOfColumns() { return mappings.length; }
+
+    /**
+     * Gets a column index in the result set by name.
+     *
+     * @return The index number
+     */
+    public abstract int getColumnIndexByName(String columnName);
 }
diff --git 
a/src/main/java/nl/cwi/monetdb/embedded/mapping/MonetDBEmbeddedBlob.java 
b/src/main/java/nl/cwi/monetdb/embedded/mapping/MonetDBEmbeddedBlob.java
--- a/src/main/java/nl/cwi/monetdb/embedded/mapping/MonetDBEmbeddedBlob.java
+++ b/src/main/java/nl/cwi/monetdb/embedded/mapping/MonetDBEmbeddedBlob.java
@@ -1,3 +1,11 @@
+/*
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0.  If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * Copyright 2016 MonetDB B.V.
+ */
+
 package nl.cwi.monetdb.embedded.mapping;
 
 import java.io.*;
diff --git a/src/main/java/nl/cwi/monetdb/embedded/mapping/MonetDBRow.java 
b/src/main/java/nl/cwi/monetdb/embedded/mapping/MonetDBRow.java
--- a/src/main/java/nl/cwi/monetdb/embedded/mapping/MonetDBRow.java
+++ b/src/main/java/nl/cwi/monetdb/embedded/mapping/MonetDBRow.java
@@ -1,3 +1,11 @@
+/*
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0.  If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * Copyright 2016 MonetDB B.V.
+ */
+
 package nl.cwi.monetdb.embedded.mapping;
 
 import java.util.Arrays;
@@ -30,7 +38,7 @@ public class MonetDBRow implements Itera
      *
      * @return The original row result set from this row
      */
-    public AbstractRowSet getOriginalSet() { return originalSet; }
+    public AbstractRowSet getRowSet() { return originalSet; }
 
     /**
      * Gets the columns values as Java objects.
@@ -40,7 +48,7 @@ public class MonetDBRow implements Itera
     public Object[] getAllColumns() { return columns; }
 
     /**
-     * Sets all columns values as Java objects.
+     * Sets all columns values as Java objects. Warning - this method does not 
override the contents in the database!
      *
      * @param values An object array of the elements to update
      */
@@ -80,7 +88,33 @@ public class MonetDBRow implements Itera
     }
 
     /**
-     * Sets a column value as a Java class.
+     * Gets a column value as a Java class.
+     *
+     * @param <T> A Java class mapped to a MonetDB data type
+     * @param columnName The name of the column
+     * @param javaClass The Java class
+     * @return The column value as a Java class
+     */
+    public <T> T getColumnByName(String columnName, Class<T> javaClass) {
+        int index =  this.getRowSet().getColumnIndexByName(columnName);
+        return javaClass.cast(columns[index]);
+    }
+
+    /**
+     * Gets a column value as a Java class using the default mapping.
+     *
+     * @param <T> A Java class mapped to a MonetDB data type
+     * @param columnName The name of the column
+     * @return The column value as a Java class
+     */
+    public <T> T getColumnByName(String columnName) {
+        int index =  this.getRowSet().getColumnIndexByName(columnName);
+        Class<T> javaClass = this.originalSet.mappings[index].getJavaClass();
+        return javaClass.cast(columns[index]);
+    }
+
+    /**
+     * Sets a column value as a Java class. Warning - this method does not 
override the contents in the database!
      *
      * @param <T> A Java class mapped to a MonetDB data type
      * @param index The index of the column
@@ -91,7 +125,7 @@ public class MonetDBRow implements Itera
     }
 
     /**
-     * Sets a column value as a Java class.
+     * Sets a column value as a Java class. Warning - this method does not 
override the contents in the database!
      *
      * @param <T> A Java class mapped to a MonetDB data type
      * @param index The index of the column
@@ -102,6 +136,31 @@ public class MonetDBRow implements Itera
         this.columns[index] = javaClass.cast(value);
     }
 
+    /**
+     * Sets a column value as a Java class. Warning - this method does not 
override the contents in the database!
+     *
+     * @param <T> A Java class mapped to a MonetDB data type
+     * @param columnName The name of the column
+     * @param value The value to set
+     */
+    public <T> void setColumnByName(String columnName, T value) {
+        int index =  this.getRowSet().getColumnIndexByName(columnName);
+        this.columns[index] = 
this.originalSet.mappings[index].getJavaClass().cast(value);
+    }
+
+    /**
+     * Sets a column value as a Java class. Warning - this method does not 
override the contents in the database!
+     *
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to