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