home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / Visual Cafe Pro v1.0 / VISCAFE.BIN / SQL.ZIP / symjava / sql / Timestamp.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-06-11  |  2.9 KB  |  193 lines

  1. package symjava.sql;
  2.  
  3. import java.util.Date;
  4.  
  5. public class Timestamp extends Date {
  6.    private int nanos;
  7.  
  8.    public Timestamp(int var1, int var2, int var3, int var4, int var5, int var6, int var7) {
  9.       super(var1, var2, var3, var4, var5, var6);
  10.       if (var7 <= 999999999 && var7 >= 0) {
  11.          this.nanos = var7;
  12.       } else {
  13.          throw new IllegalArgumentException("nanos > 999999999 or < 0");
  14.       }
  15.    }
  16.  
  17.    public Timestamp(long var1) {
  18.       super(var1 / 1000L * 1000L);
  19.       this.nanos = (int)(var1 % 1000L * 1000000L);
  20.       if (this.nanos < 0) {
  21.          this.nanos += 1000000000;
  22.          ((Date)this).setTime((var1 / 1000L - 1L) * 1000L);
  23.       }
  24.  
  25.    }
  26.  
  27.    public static Timestamp valueOf(String var0) {
  28.       int var10 = 0;
  29.       int var14 = 0;
  30.       int var15 = 0;
  31.       int var16 = 0;
  32.       if (var0 == null) {
  33.          throw new IllegalArgumentException("null string");
  34.       } else {
  35.          var0 = var0.trim();
  36.          int var13 = var0.indexOf(32);
  37.          if (var13 > 0) {
  38.             String var1 = var0.substring(0, var13);
  39.             String var2 = var0.substring(var13 + 1);
  40.             int var11 = var1.indexOf(45);
  41.             int var12 = var1.indexOf(45, var11 + 1);
  42.             if (var2 == null) {
  43.                throw new IllegalArgumentException("Timestamp format must be yyyy-mm-dd hh:mm:ss.fffffffff");
  44.             } else {
  45.                var14 = var2.indexOf(58);
  46.                var15 = var2.indexOf(58, var14 + 1);
  47.                var16 = var2.indexOf(46, var15 + 1);
  48.                if (var11 > 0 & var12 > 0 & var12 < var1.length() - 1) {
  49.                   int var4 = Integer.parseInt(var1.substring(0, var11)) - 1900;
  50.                   int var5 = Integer.parseInt(var1.substring(var11 + 1, var12)) - 1;
  51.                   int var6 = Integer.parseInt(var1.substring(var12 + 1));
  52.                   if (var14 > 0 & var15 > 0 & var15 < var2.length() - 1) {
  53.                      int var7 = Integer.parseInt(var2.substring(0, var14));
  54.                      int var8 = Integer.parseInt(var2.substring(var14 + 1, var15));
  55.                      int var9;
  56.                      if (var16 > 0 & var16 < var2.length() - 1) {
  57.                         var9 = Integer.parseInt(var2.substring(var15 + 1, var16));
  58.                         String var3 = var2.substring(var16 + 1);
  59.                         if (var3.length() > 9) {
  60.                            throw new IllegalArgumentException("Timestamp format must be yyyy-mm-dd hh:mm:ss.fffffffff");
  61.                         }
  62.  
  63.                         if (!Character.isDigit(var3.charAt(0))) {
  64.                            throw new IllegalArgumentException("Timestamp format must be yyyy-mm-dd hh:mm:ss.fffffffff");
  65.                         }
  66.  
  67.                         var3 = var3 + "000000000".substring(0, 9 - var3.length());
  68.                         var10 = Integer.parseInt(var3);
  69.                      } else {
  70.                         if (var16 > 0) {
  71.                            throw new IllegalArgumentException("Timestamp format must be yyyy-mm-dd hh:mm:ss.fffffffff");
  72.                         }
  73.  
  74.                         var9 = Integer.parseInt(var2.substring(var15 + 1));
  75.                      }
  76.  
  77.                      return new Timestamp(var4, var5, var6, var7, var8, var9, var10);
  78.                   } else {
  79.                      throw new IllegalArgumentException();
  80.                   }
  81.                } else {
  82.                   throw new IllegalArgumentException("Timestamp format must be yyyy-mm-dd hh:mm:ss.fffffffff");
  83.                }
  84.             }
  85.          } else {
  86.             throw new IllegalArgumentException("Timestamp format must be yyyy-mm-dd hh:mm:ss.fffffffff");
  87.          }
  88.       }
  89.    }
  90.  
  91.    public String toString() {
  92.       int var1 = super.getYear() + 1900;
  93.       int var2 = super.getMonth() + 1;
  94.       int var3 = super.getDate();
  95.       int var4 = super.getHours();
  96.       int var5 = super.getMinutes();
  97.       int var6 = super.getSeconds();
  98.       String var7 = String.valueOf(var1);
  99.       String var8;
  100.       if (var2 < 10) {
  101.          var8 = "0" + var2;
  102.       } else {
  103.          var8 = Integer.toString(var2);
  104.       }
  105.  
  106.       String var9;
  107.       if (var3 < 10) {
  108.          var9 = "0" + var3;
  109.       } else {
  110.          var9 = Integer.toString(var3);
  111.       }
  112.  
  113.       String var10;
  114.       if (var4 < 10) {
  115.          var10 = "0" + var4;
  116.       } else {
  117.          var10 = Integer.toString(var4);
  118.       }
  119.  
  120.       String var11;
  121.       if (var5 < 10) {
  122.          var11 = "0" + var5;
  123.       } else {
  124.          var11 = Integer.toString(var5);
  125.       }
  126.  
  127.       String var12;
  128.       if (var6 < 10) {
  129.          var12 = "0" + var6;
  130.       } else {
  131.          var12 = Integer.toString(var6);
  132.       }
  133.  
  134.       String var13;
  135.       if (this.nanos == 0) {
  136.          var13 = "0";
  137.       } else {
  138.          var13 = Integer.toString(this.nanos);
  139.          var13 = "000000000".substring(0, 9 - var13.length()) + var13;
  140.          char[] var14 = new char[var13.length()];
  141.          var13.getChars(0, var13.length(), var14, 0);
  142.  
  143.          int var15;
  144.          for(var15 = 8; var14[var15] == '0'; --var15) {
  145.          }
  146.  
  147.          var13 = new String(var14, 0, var15 + 1);
  148.       }
  149.  
  150.       return var7 + "-" + var8 + "-" + var9 + " " + var10 + ":" + var11 + ":" + var12 + "." + var13;
  151.    }
  152.  
  153.    public int getNanos() {
  154.       return this.nanos;
  155.    }
  156.  
  157.    public void setNanos(int var1) {
  158.       if (var1 <= 999999999 && var1 >= 0) {
  159.          this.nanos = var1;
  160.       } else {
  161.          throw new IllegalArgumentException("nanos > 999999999 or < 0");
  162.       }
  163.    }
  164.  
  165.    public boolean equals(Timestamp var1) {
  166.       if (super.equals(var1)) {
  167.          return this.nanos == var1.nanos;
  168.       } else {
  169.          return false;
  170.       }
  171.    }
  172.  
  173.    public boolean before(Timestamp var1) {
  174.       if (super.before(var1)) {
  175.          return true;
  176.       } else if (super.equals(var1)) {
  177.          return this.nanos < var1.nanos;
  178.       } else {
  179.          return false;
  180.       }
  181.    }
  182.  
  183.    public boolean after(Timestamp var1) {
  184.       if (super.after(var1)) {
  185.          return true;
  186.       } else if (super.equals(var1)) {
  187.          return this.nanos > var1.nanos;
  188.       } else {
  189.          return false;
  190.       }
  191.    }
  192. }
  193.