@Override public Class<?> typeForName(String name) { if (name.isEmpty()) return typeForInvalidName(name); Class<?> type = (Class<?>) typeToName.getKey(name); if (type != null) return type; int nameEnd = name.indexOf("[]"); if (nameEnd > 0) { int i; for (i = nameEnd + 2; i < name.length(); i += 2) { if (name.indexOf("[]", i) != i) return typeForInvalidName(name); } return ReflectionUtils.arrayClassFor( typeForName(name.substring(0, nameEnd)), (i - nameEnd) / 2); } if (ReflectionUtils.isBasicDataType(name)) return ReflectionUtils.getTypeFromAbbreviation(name); return typeForUnmappedName(name); }
@Override public String nameForType(Class<?> n) { String typeAlias = (String) typeToName.get(n); if (typeAlias != null) return typeAlias; if (n.isArray()) { ArrayInfo dim = ReflectionUtils.arrayDimension(n); String elementTypeName = nameForType(dim.elementClass); return elementTypeName + StringTools.strrep("[]", dim.dim); } if (ReflectionUtils.isBasicDataType(n)) return ReflectionUtils.abbreviateBasicDataTypeName(n); return nameForUnmappedType(n); }