Skip to content

Commit 1be38ff

Browse files
committed
Fix for http://code.google.com/p/mybatis/issues/detail?id=202 - unneeded sort in MapWrapper
1 parent 5f7fe30 commit 1be38ff

File tree

2 files changed

+2
-31
lines changed

2 files changed

+2
-31
lines changed

src/main/java/org/apache/ibatis/reflection/wrapper/MapWrapper.java

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,16 @@
44
import org.apache.ibatis.reflection.factory.ObjectFactory;
55
import org.apache.ibatis.reflection.property.PropertyTokenizer;
66

7-
import java.util.Arrays;
8-
import java.util.Comparator;
97
import java.util.HashMap;
108
import java.util.Map;
119

1210
public class MapWrapper extends BaseWrapper {
1311

1412
private Map map;
15-
private Object[] keyArray;
16-
1713

1814
public MapWrapper(MetaObject metaObject, Map map) {
1915
super(metaObject);
2016
this.map = map;
21-
updateKeyArray();
2217
}
2318

2419
public Object get(PropertyTokenizer prop) {
@@ -37,28 +32,9 @@ public void set(PropertyTokenizer prop, Object value) {
3732
} else {
3833
map.put(prop.getName(), value);
3934
}
40-
updateKeyArray();
4135
}
4236

43-
@SuppressWarnings("unchecked")
4437
public String findProperty(String name) {
45-
updateKeyArray();
46-
if (name != null) {
47-
Arrays.binarySearch(keyArray, name, new Comparator() {
48-
public int compare(Object o1, Object o2) {
49-
if (o1 == o2) {
50-
return 0;
51-
} else if (o1 == null && o2 == null) {
52-
return 0;
53-
} else if (o1 == null) {
54-
return -1;
55-
} else if (o2 == null) {
56-
return 1;
57-
}
58-
return ((String) o1).toLowerCase().compareTo(((String) o2).toLowerCase());
59-
}
60-
});
61-
}
6238
return name;
6339
}
6440

@@ -134,9 +110,4 @@ public MetaObject instantiatePropertyValue(String name, PropertyTokenizer prop,
134110
return MetaObject.forObject(map, metaObject.getObjectFactory(), metaObject.getObjectWrapperFactory());
135111
}
136112

137-
private void updateKeyArray() {
138-
keyArray = map.keySet().toArray();
139-
Arrays.sort(keyArray);
140-
}
141-
142113
}

src/main/java/org/apache/ibatis/reflection/wrapper/ObjectWrapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ public interface ObjectWrapper {
1616

1717
String[] getSetterNames();
1818

19-
Class getSetterType(String name);
19+
Class<?> getSetterType(String name);
2020

21-
Class getGetterType(String name);
21+
Class<?> getGetterType(String name);
2222

2323
boolean hasSetter(String name);
2424

0 commit comments

Comments
 (0)