diff --git a/common/src/main/java/com/genexus/util/GXProperties.java b/common/src/main/java/com/genexus/util/GXProperties.java index 09f8585c0..dc3f1be71 100644 --- a/common/src/main/java/com/genexus/util/GXProperties.java +++ b/common/src/main/java/com/genexus/util/GXProperties.java @@ -14,6 +14,7 @@ public class GXProperties implements IGxJSONSerializable { private LinkedHashMap < String, GXProperty > properties = new LinkedHashMap < > (); + private LinkedHashMap < String, GXProperty > originalProperties = new LinkedHashMap < > (); private boolean eof; private int lastElement; @@ -23,36 +24,40 @@ public void set(String name, String value) { this.put(name, value); } - public void add(String name, String value) { - properties.put(name, new GXProperty(name, value)); - } + public void add(String name, String value) { this.put(name, value); } public void put(String name, String value) { + originalProperties.put(name, new GXProperty(name, value)); + name = name.toLowerCase(); properties.put(name, new GXProperty(name, value)); } + public String toString() { StringBuilder builder = new StringBuilder(); - for (GXProperty property: properties.values()) { + for (GXProperty property: properties.values()) builder.append(property.getValue()); - } return builder.toString(); } public String get(String name) { + name = name.toLowerCase(); return containsKey(name) ? properties.get(name).getValue() : ""; } public void remove(String name) { + originalProperties.remove(name); + name = name.toLowerCase(); properties.remove(name); } public boolean containsKey(String name) { + name = name.toLowerCase(); return properties.containsKey(name); } public GXProperty item(int i) { int counter = 0; - for (Map.Entry < String, GXProperty > entry: properties.entrySet()) { + for (Map.Entry < String, GXProperty > entry: originalProperties.entrySet()) { if (counter++ == i) { return entry.getValue(); } @@ -76,7 +81,7 @@ public GXProperty first() { eof = false; if (count() > 0) { lastElement = 0; - return properties.entrySet().iterator().next().getValue(); + return originalProperties.entrySet().iterator().next().getValue(); } else { eof = true; return null; @@ -114,12 +119,14 @@ public String toJSonString() { JSONObject jObj = (JSONObject) GetJSONObject(); return jObj.toString(); } + public boolean fromJSonString(String s) { return fromJSonString(s, null); } + public boolean fromJSonString(String s, GXBaseCollection < SdtMessages_Message > messages) { this.clear(); - if (!s.equals("")) { + if (!s.isEmpty()) { try { JSONObject jObj = new JSONObject(s); Iterator < String > keys = jObj.keys(); @@ -137,4 +144,4 @@ public boolean fromJSonString(String s, GXBaseCollection < SdtMessages_Message > return false; } } -} \ No newline at end of file +}