Make HopObject properties case sensitive.

This commit is contained in:
hns 2008-10-17 14:18:24 +00:00
parent bff550c6d9
commit 0e7c4354c9
5 changed files with 33 additions and 96 deletions

View file

@ -610,8 +610,6 @@ public class TransientNode implements INode, Serializable {
* @return ...
*/
public IProperty get(String propname) {
propname = propname.toLowerCase();
return getProperty(propname);
}
@ -637,8 +635,6 @@ public class TransientNode implements INode, Serializable {
* @return ...
*/
public String getString(String propname) {
propname = propname.toLowerCase();
Property prop = getProperty(propname);
try {
@ -657,8 +653,6 @@ public class TransientNode implements INode, Serializable {
* @return ...
*/
public long getInteger(String propname) {
propname = propname.toLowerCase();
Property prop = getProperty(propname);
try {
@ -677,8 +671,6 @@ public class TransientNode implements INode, Serializable {
* @return ...
*/
public double getFloat(String propname) {
propname = propname.toLowerCase();
Property prop = getProperty(propname);
try {
@ -697,8 +689,6 @@ public class TransientNode implements INode, Serializable {
* @return ...
*/
public Date getDate(String propname) {
propname = propname.toLowerCase();
Property prop = getProperty(propname);
try {
@ -717,8 +707,6 @@ public class TransientNode implements INode, Serializable {
* @return ...
*/
public boolean getBoolean(String propname) {
propname = propname.toLowerCase();
Property prop = getProperty(propname);
try {
@ -737,8 +725,6 @@ public class TransientNode implements INode, Serializable {
* @return ...
*/
public INode getNode(String propname) {
propname = propname.toLowerCase();
Property prop = getProperty(propname);
try {
@ -757,8 +743,6 @@ public class TransientNode implements INode, Serializable {
* @return ...
*/
public Object getJavaObject(String propname) {
propname = propname.toLowerCase();
Property prop = getProperty(propname);
try {
@ -776,13 +760,11 @@ public class TransientNode implements INode, Serializable {
}
propname = propname.trim();
String p2 = propname.toLowerCase();
Property prop = (Property) propMap.get(p2);
Property prop = (Property) propMap.get(propname);
if (prop == null) {
prop = new Property(propname, this);
propMap.put(p2, prop);
propMap.put(propname, prop);
}
return prop;
@ -917,21 +899,12 @@ public class TransientNode implements INode, Serializable {
* @param propname ...
*/
public void unset(String propname) {
if (propMap == null) {
return;
}
try {
propMap.remove(propname.toLowerCase());
if (propMap != null && propname != null) {
propMap.remove(propname);
lastmodified = System.currentTimeMillis();
} catch (Exception ignore) {
}
}
/* public String getUrl (INode root, INode users, String tmpname, String rootproto) {
throw new RuntimeException ("HREFs on transient (non-db based) Nodes not supported");
} */
public long lastModified() {
return lastmodified;
}

View file

@ -307,7 +307,7 @@ public final class DbMapping {
String dbField = props.getProperty(propName);
// check if a relation for this propery already exists. If so, reuse it
Relation rel = (Relation) prop2db.get(propName.toLowerCase());
Relation rel = (Relation) prop2db.get(propName);
if (rel == null) {
rel = new Relation(propName, this);
@ -317,7 +317,7 @@ public final class DbMapping {
// store relation with lower case property name
// (ResourceProperties now preserve key capitalization!)
p2d.put(propName.toLowerCase(), rel);
p2d.put(propName, rel);
if ((rel.columnName != null) && rel.isPrimitiveOrReference()) {
Relation old = (Relation) d2p.put(rel.columnName.toLowerCase(), rel);
@ -631,8 +631,7 @@ public final class DbMapping {
return null;
}
// prop2db stores keys in lower case
return _propertyToColumnName(propName.toLowerCase());
return _propertyToColumnName(propName);
}
private String _propertyToColumnName(final String propName) {
@ -678,9 +677,7 @@ public final class DbMapping {
return null;
}
// FIXME: prop2db stores keys in lower case, because it gets them
// from a SystemProperties object which converts keys to lower case.
return _propertyToRelation(propName.toLowerCase());
return _propertyToRelation(propName);
}
private Relation _propertyToRelation(String propName) {
@ -866,7 +863,7 @@ public final class DbMapping {
return null;
}
Relation rel = (Relation) prop2db.get(propname.toLowerCase());
Relation rel = (Relation) prop2db.get(propname);
if ((rel == null) && (parentMapping != null)) {
rel = parentMapping.getExactPropertyRelation(propname);

View file

@ -1776,12 +1776,10 @@ public final class Node implements INode, Serializable {
}
Relation rel = dbmap == null ?
null :
dbmap.getExactPropertyRelation(propname);
null : dbmap.getExactPropertyRelation(propname);
// 1) check if the property is contained in the propMap
Property prop = propMap == null ? null :
(Property) propMap.get(propname.toLowerCase());
Property prop = propMap == null ? null : (Property) propMap.get(propname);
if (prop != null) {
if (rel != null) {
@ -1813,7 +1811,7 @@ public final class Node implements INode, Serializable {
n.setDbMapping(rel.getVirtualMapping());
n.setParent(this);
setNode(propname, n);
return (Property) propMap.get(propname.toLowerCase());
return (Property) propMap.get(propname);
}
// 2) check if this is a create-on-demand node property
@ -1845,7 +1843,6 @@ public final class Node implements INode, Serializable {
* @return ...
*/
public String getString(String propname) {
// propname = propname.toLowerCase ();
Property prop = getProperty(propname);
try {
@ -1864,7 +1861,6 @@ public final class Node implements INode, Serializable {
* @return ...
*/
public long getInteger(String propname) {
// propname = propname.toLowerCase ();
Property prop = getProperty(propname);
try {
@ -1883,7 +1879,6 @@ public final class Node implements INode, Serializable {
* @return ...
*/
public double getFloat(String propname) {
// propname = propname.toLowerCase ();
Property prop = getProperty(propname);
try {
@ -1902,7 +1897,6 @@ public final class Node implements INode, Serializable {
* @return ...
*/
public Date getDate(String propname) {
// propname = propname.toLowerCase ();
Property prop = getProperty(propname);
try {
@ -1921,7 +1915,6 @@ public final class Node implements INode, Serializable {
* @return ...
*/
public boolean getBoolean(String propname) {
// propname = propname.toLowerCase ();
Property prop = getProperty(propname);
try {
@ -1940,7 +1933,6 @@ public final class Node implements INode, Serializable {
* @return ...
*/
public INode getNode(String propname) {
// propname = propname.toLowerCase ();
Property prop = getProperty(propname);
try {
@ -1959,7 +1951,6 @@ public final class Node implements INode, Serializable {
* @return ...
*/
public Object getJavaObject(String propname) {
// propname = propname.toLowerCase ();
Property prop = getProperty(propname);
try {
@ -1984,17 +1975,14 @@ public final class Node implements INode, Serializable {
}
propname = propname.trim();
String p2 = propname.toLowerCase();
Property prop = (Property) propMap.get(p2);
Property prop = (Property) propMap.get(propname);
if (prop != null) {
prop.setValue(value, type);
} else {
prop = new Property(propname, this);
prop.setValue(value, type);
propMap.put(p2, prop);
propMap.put(propname, prop);
}
lastmodified = System.currentTimeMillis();
@ -2019,10 +2007,7 @@ public final class Node implements INode, Serializable {
}
propname = propname.trim();
String p2 = propname.toLowerCase();
Property prop = (Property) propMap.get(p2);
Property prop = (Property) propMap.get(propname);
String oldvalue = null;
if (prop != null) {
@ -2037,7 +2022,7 @@ public final class Node implements INode, Serializable {
} else {
prop = new Property(propname, this);
prop.setStringValue(value);
propMap.put(p2, prop);
propMap.put(propname, prop);
}
if (dbmap != null) {
@ -2130,17 +2115,14 @@ public final class Node implements INode, Serializable {
}
propname = propname.trim();
String p2 = propname.toLowerCase();
Property prop = (Property) propMap.get(p2);
Property prop = (Property) propMap.get(propname);
if (prop != null) {
prop.setIntegerValue(value);
} else {
prop = new Property(propname, this);
prop.setIntegerValue(value);
propMap.put(p2, prop);
propMap.put(propname, prop);
}
notifyPropertyChange(propname);
@ -2167,17 +2149,14 @@ public final class Node implements INode, Serializable {
}
propname = propname.trim();
String p2 = propname.toLowerCase();
Property prop = (Property) propMap.get(p2);
Property prop = (Property) propMap.get(propname);
if (prop != null) {
prop.setFloatValue(value);
} else {
prop = new Property(propname, this);
prop.setFloatValue(value);
propMap.put(p2, prop);
propMap.put(propname, prop);
}
notifyPropertyChange(propname);
@ -2204,17 +2183,14 @@ public final class Node implements INode, Serializable {
}
propname = propname.trim();
String p2 = propname.toLowerCase();
Property prop = (Property) propMap.get(p2);
Property prop = (Property) propMap.get(propname);
if (prop != null) {
prop.setBooleanValue(value);
} else {
prop = new Property(propname, this);
prop.setBooleanValue(value);
propMap.put(p2, prop);
propMap.put(propname, prop);
}
notifyPropertyChange(propname);
@ -2241,17 +2217,14 @@ public final class Node implements INode, Serializable {
}
propname = propname.trim();
String p2 = propname.toLowerCase();
Property prop = (Property) propMap.get(p2);
Property prop = (Property) propMap.get(propname);
if (prop != null) {
prop.setDateValue(value);
} else {
prop = new Property(propname, this);
prop.setDateValue(value);
propMap.put(p2, prop);
propMap.put(propname, prop);
}
notifyPropertyChange(propname);
@ -2278,17 +2251,14 @@ public final class Node implements INode, Serializable {
}
propname = propname.trim();
String p2 = propname.toLowerCase();
Property prop = (Property) propMap.get(p2);
Property prop = (Property) propMap.get(propname);
if (prop != null) {
prop.setJavaObjectValue(value);
} else {
prop = new Property(propname, this);
prop.setJavaObjectValue(value);
propMap.put(p2, prop);
propMap.put(propname, prop);
}
notifyPropertyChange(propname);
@ -2366,9 +2336,6 @@ public final class Node implements INode, Serializable {
}
propname = propname.trim();
String p2 = propname.toLowerCase();
if (rel == null && dbmap != null) {
// widen relation to non-exact (collection) mapping
rel = dbmap.getPropertyRelation(propname);
@ -2383,7 +2350,7 @@ public final class Node implements INode, Serializable {
}
}
Property prop = (propMap == null) ? null : (Property) propMap.get(p2);
Property prop = (propMap == null) ? null : (Property) propMap.get(propname);
if (prop != null) {
if ((prop.getType() == IProperty.NODE) &&
@ -2415,7 +2382,7 @@ public final class Node implements INode, Serializable {
propMap = new Hashtable();
}
propMap.put(p2, prop);
propMap.put(propname, prop);
if (state == CLEAN && isPersistable) {
markAs(MODIFIED);
@ -2465,9 +2432,9 @@ public final class Node implements INode, Serializable {
if (propMap != null) {
if (relational) {
p = (Property) propMap.get(propname.toLowerCase());
p = (Property) propMap.get(propname);
} else {
p = (Property) propMap.remove(propname.toLowerCase());
p = (Property) propMap.remove(propname);
}
}

View file

@ -1896,7 +1896,7 @@ public final class NodeManager {
// FIXME: References to anything other than the primary key are not supported
prop.convertToNodeReference(rel);
}
propMap.put(rel.propName.toLowerCase(), prop);
propMap.put(rel.propName, prop);
}
}

View file

@ -144,7 +144,7 @@ public final class XmlDatabaseReader extends DefaultHandler implements XmlConsta
currentNode.setPropMap(propMap);
}
propMap.put(propName.toLowerCase(), prop);
propMap.put(propName, prop);
}
} else {
// a primitive property
@ -233,7 +233,7 @@ public final class XmlDatabaseReader extends DefaultHandler implements XmlConsta
currentNode.setPropMap(propMap);
}
propMap.put(elementName.toLowerCase(), prop);
propMap.put(elementName, prop);
elementName = null;
elementType = null;
charValue = null;