taylor 02/04/15 15:15:24
Modified: src/java/org/apache/jetspeed/portal/portlets/browser
DatabaseBrowserIterator.java
Log:
Added null (comparisons to "-" : this was done as Velocity overwrites the current
object with the previous objects value while displaying entries in the table if they
are null) checks while comparing 2 objects.
Revision Changes Path
1.5 +89 -69
jakarta-jetspeed/src/java/org/apache/jetspeed/portal/portlets/browser/DatabaseBrowserIterator.java
Index: DatabaseBrowserIterator.java
===================================================================
RCS file:
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/portal/portlets/browser/DatabaseBrowserIterator.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- DatabaseBrowserIterator.java 15 Apr 2002 20:16:16 -0000 1.4
+++ DatabaseBrowserIterator.java 15 Apr 2002 22:15:24 -0000 1.5
@@ -67,12 +67,14 @@
* of rows being displayed to the user from the Vector storing all the ResultSet.
*
* @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
- * @version $Id: DatabaseBrowserIterator.java,v 1.4 2002/04/15 20:16:16 taylor Exp $
+ * @version $Id: DatabaseBrowserIterator.java,v 1.5 2002/04/15 22:15:24 taylor Exp $
*
*/
public class DatabaseBrowserIterator implements BrowserIterator
{
+ private static final String VELOCITY_NULL_ENTRY = "-";
+
int top = 0;
int index = 0;
@@ -264,76 +266,94 @@
{
Object col1 = ((Vector)obj1).get(idx);
Object col2 = ((Vector)obj2).get(idx);
- int type = Integer.parseInt((String)rsTypeVector.get(idx));
- switch (type)
+ if( (col1).equals(VELOCITY_NULL_ENTRY) )
{
-
- case Types.NUMERIC:
- order = (
((java.math.BigDecimal)col1).compareTo((java.math.BigDecimal)col2) );
- break;
-
- case Types.DECIMAL:
- order = (
((java.math.BigDecimal)col1).compareTo((java.math.BigDecimal)col2) );
- break;
-
- case Types.TINYINT:
- order = ( ((Byte)col1).compareTo((Byte)col2) );
- break;
-
- case Types.SMALLINT:
- order = ( ((Short)col1).compareTo((Short)col2) );
- break;
-
- case Types.INTEGER:
- order = ( ((Integer)col1).compareTo((Integer)col2) );
- break;
-
- case Types.BIGINT:
- order = ( ((Long)col1).compareTo((Long)col2) );
- break;
-
- case Types.REAL:
- order = ( ((Float)col1).compareTo((Float)col2) );
- break;
-
- case Types.FLOAT:
- order = ( ((Double)col1).compareTo((Double)col2) );
- break;
-
- case Types.DOUBLE:
- order = ( ((Double)col1).compareTo((Double)col2) );
- break;
-
- case Types.DATE:
- order = ( ((java.sql.Date)col1).compareTo((java.sql.Date)col2) );
- break;
-
- case Types.TIME:
- order = ( ((java.sql.Time)col1).compareTo((java.sql.Time)col2) );
- break;
-
- case Types.TIMESTAMP:
- order = (
((java.sql.Timestamp)col1).compareTo((java.sql.Timestamp)col2) );
- break;
-
- case Types.CHAR:
- order = ( ((String)col1).compareTo((String)col2) );
- break;
-
- case Types.VARCHAR:
- order = ( ((String)col1).compareTo((String)col2) );
- break;
-
- case Types.LONGVARCHAR:
- order = ( ((String)col1).compareTo((String)col2) );
- break;
-
- default:
- Log.info("DatabaseBrowserIterator.compare DataType mapping not
found"+
- " in DatabaseBrowserIterator. "+
- "Hence cannot sort based on provided column.");
- break;
+ if( (col2).equals(VELOCITY_NULL_ENTRY))
+ {
+ order = 0;
+ }
+ else
+ {
+ order = -1;
+ }
+ }
+ else if( (col2).equals(VELOCITY_NULL_ENTRY) )
+ {
+ order = 1;
+ }
+ else
+ {
+ int type = Integer.parseInt((String)rsTypeVector.get(idx));
+ switch (type)
+ {
+
+ case Types.NUMERIC:
+ order = (
((java.math.BigDecimal)col1).compareTo((java.math.BigDecimal)col2) );
+ break;
+
+ case Types.DECIMAL:
+ order = (
((java.math.BigDecimal)col1).compareTo((java.math.BigDecimal)col2) );
+ break;
+
+ case Types.TINYINT:
+ order = ( ((Byte)col1).compareTo((Byte)col2) );
+ break;
+
+ case Types.SMALLINT:
+ order = ( ((Short)col1).compareTo((Short)col2) );
+ break;
+
+ case Types.INTEGER:
+ order = ( ((Integer)col1).compareTo((Integer)col2) );
+ break;
+
+ case Types.BIGINT:
+ order = ( ((Long)col1).compareTo((Long)col2) );
+ break;
+
+ case Types.REAL:
+ order = ( ((Float)col1).compareTo((Float)col2) );
+ break;
+
+ case Types.FLOAT:
+ order = ( ((Double)col1).compareTo((Double)col2) );
+ break;
+
+ case Types.DOUBLE:
+ order = ( ((Double)col1).compareTo((Double)col2) );
+ break;
+
+ case Types.DATE:
+ order = ( ((java.sql.Date)col1).compareTo((java.sql.Date)col2)
);
+ break;
+
+ case Types.TIME:
+ order = ( ((java.sql.Time)col1).compareTo((java.sql.Time)col2)
);
+ break;
+
+ case Types.TIMESTAMP:
+ order = (
((java.sql.Timestamp)col1).compareTo((java.sql.Timestamp)col2) );
+ break;
+
+ case Types.CHAR:
+ order = ( ((String)col1).compareTo((String)col2) );
+ break;
+
+ case Types.VARCHAR:
+ order = ( ((String)col1).compareTo((String)col2) );
+ break;
+
+ case Types.LONGVARCHAR:
+ order = ( ((String)col1).compareTo((String)col2) );
+ break;
+
+ default:
+ Log.info("DatabaseBrowserIterator.compare DataType mapping not
found"+
+ " in DatabaseBrowserIterator. "+
+ "Hence cannot sort based on provided column.");
+ break;
+ }
}
}
//System.out.println("index of type= "+idx +", order= "+order+", ascending=
"+ascendingOrder);
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>