001    /***************************************************************************************************
002     *               MODULE DESCRIPTION
003     ****************************************************************************************************
004     *
005     *               NAME:           Field.java
006     *               LANGUAGE:       Java2
007     *               DATE:           5.3.2003
008     *               AUTHOR:         Miika Nurminen, Jyväskylän yliopisto
009     *
010     ****************************************************************************************************
011     *               COPYRIGHT (C) KIURU -PROJECT GROUP
012     *               Limited rights granted. Please refer to license.
013     ****************************************************************************************************
014     *  
015     ****************************************************************************************************
016     *               UPDATES
017     ****************************************************************************************************
018     *
019     *   5.3.2003 Initial release
020     *   25.3.2003 Added string output for RS2 / mn
021     *     to do: remove classes customfield, textfield, replace with OrderingScheme.
022     *
023     ****************************************************************************************************/
024    package kiurubeans;
025    import kotkabeans.RS2;
026    
027    /**
028     * Representation of a database field. Used with Search & Order SQL clauses.
029     * 
030     * @author Miika Nurminen
031     */
032    public class Field {
033      /** Field alias */
034      private String alias = "";
035      /** Scheme used for ordering */
036      private OrderScheme orderScheme = null;
037      
038      /** Creates a new instance of Field - dummy empty constructor */
039      public Field() {
040      }
041      
042      /** Initializes field with default order and given alias.
043       * @param alias field alias
044       */
045      public Field(String alias) {
046        this.orderScheme = new DefaultOrderScheme();
047        setAlias(alias);
048      }
049      
050      /**
051       * Initializes field with given order & alias.
052       * @param alias field alias
053       * @param orderScheme order scheme for this field
054       */
055      public Field(String alias, OrderScheme orderScheme) {
056        setOrderScheme(orderScheme);
057        setAlias(alias); 
058      }
059      
060      /** Sets orderScheme
061       * @param orderScheme new orderScheme
062       */  
063      protected void setOrderScheme(OrderScheme orderScheme) {
064        if (orderScheme==null) {
065          throw new IllegalArgumentException("OrderSheme must be valid!");
066        }
067        this.orderScheme = orderScheme;
068      }
069      
070      /** Returns alias
071       * @return Returns alias
072       */  
073      public String getAlias() {
074        return this.alias;
075      }
076      
077      /**
078       * Setter for attribute alias
079       * @param s New alias
080       */  
081      public void setAlias(String s) {
082        this.alias = s;
083        orderScheme.setFieldName(getAlias());
084      }
085      
086      /**
087       * Field name used in order clause.
088       * @return field name used in order clause
089       */
090      public String getOrderName() {
091        return this.orderScheme.getOrder();
092      }
093      
094      /** Returns value of the field in current RS2 column.
095       * @return field value
096       * @param rs current resultset
097       * @throws Exception if problems with RS2
098       */
099      public String getFieldValue(RS2 rs) throws Exception {
100        return SimpleDb.getString(rs,getAlias());
101      }
102    }
103    /***************************************************************************************************
104     *               COPYRIGHT (C) KIURU -PROJECT GROUP
105     *               Limited rights granted. Please refer to license.
106     **************************************************************************************************/