* Use specific methods when reading a Date or Time

column from a ResultSet in the constructor
* Add set() method that allows to directly set the value and type
  of a property
* Change the return type for getNonVirtualParent from INode to Node.
This commit is contained in:
hns 2003-04-23 12:36:43 +00:00
parent 4e47de9963
commit 4501c5cf50

View file

@ -277,7 +277,15 @@ public final class Node implements INode, Serializable {
break; break;
case Types.DATE: case Types.DATE:
newprop.setDateValue(rs.getDate(columns[i].getName()));
break;
case Types.TIME: case Types.TIME:
newprop.setDateValue(rs.getTime(columns[i].getName()));
break;
case Types.TIMESTAMP: case Types.TIMESTAMP:
newprop.setDateValue(rs.getTimestamp(columns[i].getName())); newprop.setDateValue(rs.getTimestamp(columns[i].getName()));
@ -1985,6 +1993,41 @@ public final class Node implements INode, Serializable {
return null; return null;
} }
/**
* Directly set a property on this node
*
* @param propname ...
* @param value ...
*/
protected void set(String propname, Object value, int type) {
checkWriteLock();
if (propMap == null) {
propMap = new Hashtable();
}
propname = propname.trim();
String p2 = propname.toLowerCase();
Property prop = (Property) propMap.get(p2);
if (prop != null) {
prop.setValue(value, type);
} else {
prop = new Property(propname, this);
prop.setValue(value, type);
propMap.put(p2, prop);
}
// Server.throwNodeEvent (new NodeEvent (this, NodeEvent.PROPERTIES_CHANGED));
lastmodified = System.currentTimeMillis();
if (state == CLEAN) {
markAs(MODIFIED);
}
}
/** /**
* *
* *
@ -2538,8 +2581,8 @@ public final class Node implements INode, Serializable {
* This method walks down node path to the first non-virtual node and return it. * This method walks down node path to the first non-virtual node and return it.
* limit max depth to 3, since there shouldn't be more then 2 layers of virtual nodes. * limit max depth to 3, since there shouldn't be more then 2 layers of virtual nodes.
*/ */
public INode getNonVirtualParent() { public Node getNonVirtualParent() {
INode node = this; Node node = this;
for (int i = 0; i < 5; i++) { for (int i = 0; i < 5; i++) {
if (node == null) { if (node == null) {
@ -2550,7 +2593,7 @@ public final class Node implements INode, Serializable {
return node; return node;
} }
node = node.getParent(); node = (Node) node.getParent();
} }
return null; return null;