PGmoney.java
上传用户:psq1974
上传日期:2007-01-06
资源大小:1195k
文件大小:2k
源码类别:

mpeg/mp3

开发平台:

C/C++

  1. package postgresql.util;
  2. import java.io.*;
  3. import java.sql.*;
  4. /**
  5.  * This implements a class that handles the PostgreSQL money and cash types
  6.  */
  7. public class PGmoney extends PGobject implements Serializable,Cloneable
  8. {
  9.   /**
  10.    * The value of the field
  11.    */
  12.   public double val;
  13.   
  14.   /**
  15.    * @param value of field
  16.    */
  17.   public PGmoney(double value) {
  18.     this();
  19.     val = value;
  20.   }
  21.   
  22.   /**
  23.    * This is called mainly from the other geometric types, when a
  24.    * point is imbeded within their definition.
  25.    *
  26.    * @param value Definition of this point in PostgreSQL's syntax
  27.    */
  28.   public PGmoney(String value) throws SQLException
  29.   {
  30.     this();
  31.     setValue(value);
  32.   }
  33.   
  34.   /**
  35.    * Required by the driver
  36.    */
  37.   public PGmoney()
  38.   {
  39.     setType("money");
  40.   }
  41.   
  42.   /**
  43.    * @param s Definition of this point in PostgreSQL's syntax
  44.    * @exception SQLException on conversion failure
  45.    */
  46.   public void setValue(String s) throws SQLException
  47.   {
  48.     try {
  49.       val = Double.valueOf(s.substring(1)).doubleValue();
  50.     } catch(NumberFormatException e) {
  51.       throw new SQLException("conversion of money failed - "+e.toString());
  52.     }
  53.   }
  54.   
  55.   /**
  56.    * @param obj Object to compare with
  57.    * @return true if the two boxes are identical
  58.    */
  59.   public boolean equals(Object obj)
  60.   {
  61.     if(obj instanceof PGmoney) {
  62.       PGmoney p = (PGmoney)obj;
  63.       return val == p.val;
  64.     }
  65.     return false;
  66.   }
  67.   
  68.   /**
  69.    * This must be overidden to allow the object to be cloned
  70.    */
  71.   public Object clone()
  72.   {
  73.     return new PGmoney(val);
  74.   }
  75.   
  76.   /**
  77.    * @return the PGpoint in the syntax expected by postgresql
  78.    */
  79.   public String getValue()
  80.   {
  81.     return "$"+val;
  82.   }
  83. }