1 package com.quadcap.sql.types; 2 3 40 41 import java.io.Externalizable ; 42 import java.io.IOException ; 43 import java.io.ObjectInput ; 44 import java.io.ObjectOutput ; 45 46 import java.sql.Time ; 47 48 import java.text.SimpleDateFormat ; 49 50 55 public class ValueTime extends ValueDateTime implements Externalizable { 56 static SimpleDateFormat df = new SimpleDateFormat ("HH:mm:ss"); 57 58 public ValueTime() {} 59 60 public ValueTime(long val) { 61 super(val); 62 } 63 64 public ValueTime(String str) throws antlr.RecognitionException { 65 try { 66 synchronized (df) { 67 val = df.parse(str).getTime(); 68 } 69 } catch (Throwable e) { 70 throw new antlr.RecognitionException(e.toString()); 71 } 72 } 73 74 public String toString() { 75 synchronized (df) { 76 return df.format(new Time (val)); 77 } 78 } 79 80 public Value unop(int op) throws ValueException { 81 switch (op) { 82 case Op.NULL: 83 return ValueBoolean.falseBoolean; 84 default: 85 throw new ValueException("Unary op: " + Op.toString(op) + 86 " not implemented for this type"); 87 } 88 } 89 90 public Value binop(int op, Value l) throws ValueException { 91 return l.binop(op, this); 92 } 93 94 public Value binop(int op, ValueString r) throws ValueException { 95 try { 96 return ValueDateTime.binop(op, this, new ValueTime(r.val)); 97 } catch (antlr.RecognitionException e) { 98 throw new ValueException("Not a date: " + val); 99 } 100 } 101 102 public Value binop(int op, ValueInterval r) throws ValueException { 103 switch (op) { 104 case Op.PLUS: 105 return new ValueTime(val + r.val); 106 case Op.MINUS: 107 return new ValueTime(val - r.val); 108 default: 109 throw badBinop(op, r); 110 } 111 } 112 113 public Value binop(int op, ValueTime r) throws ValueException { 114 return ValueDateTime.binop(op, this, r); 115 } 116 117 public void readExternal(ObjectInput in) 118 throws IOException , ClassNotFoundException 119 { 120 super.readExternal(in); 121 } 122 123 public void writeExternal(ObjectOutput out) 124 throws IOException 125 { 126 super.writeExternal(out); 127 } 128 129 public Object asJavaObject() { 130 return new Time (val); 131 } 132 133 public void fromJavaObject(Object obj) throws ValueException { 134 if (obj instanceof Time ) { 135 val = ((Time )obj).getTime(); 136 } else { 137 throw new ValueException("bad type: " + obj); 138 } 139 } 140 141 public Type getType() { 142 return TypeTime.typeTime; 143 } 144 145 public Value convert(TypeTime type) { 146 return this; 147 } 148 149 public Value convert(TypeTimestamp t) { 150 return new ValueTimestamp(val); 151 } 152 } 153 | Popular Tags |