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 **************************************************************************************************/