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]>

Reply via email to