@Test public void testClassArrayEditorSunnyDay() throws Exception { ClassArrayEditor classArrayEditor = new ClassArrayEditor(); classArrayEditor.setAsText("java.lang.String,java.util.HashMap"); Class<?>[] classes = (Class<?>[]) classArrayEditor.getValue(); assertEquals(2, classes.length); assertEquals(String.class, classes[0]); assertEquals(HashMap.class, classes[1]); assertEquals("java.lang.String,java.util.HashMap", classArrayEditor.getAsText()); // ensure setAsText can consume the return value of getAsText classArrayEditor.setAsText(classArrayEditor.getAsText()); }
@Override public void setAsText(String text) throws IllegalArgumentException { if (StringUtils.hasText(text)) { String[] classNames = StringUtils.commaDelimitedListToStringArray(text); Class<?>[] classes = new Class<?>[classNames.length]; for (int i = 0; i < classNames.length; i++) { String className = classNames[i].trim(); classes[i] = ClassUtils.resolveClassName(className, this.classLoader); } setValue(classes); } else { setValue(null); } }
this.defaultEditors.put(Class[].class, new ClassArrayEditor()); this.defaultEditors.put(Currency.class, new CurrencyEditor()); this.defaultEditors.put(File.class, new FileEditor());
@Override public String getAsText() { Class<?>[] classes = (Class[]) getValue(); if (ObjectUtils.isEmpty(classes)) { return ""; } StringBuilder sb = new StringBuilder(); for (int i = 0; i < classes.length; ++i) { if (i > 0) { sb.append(","); } sb.append(ClassUtils.getQualifiedName(classes[i])); } return sb.toString(); }
this.defaultEditors.put(Class[].class, new ClassArrayEditor()); this.defaultEditors.put(Currency.class, new CurrencyEditor()); this.defaultEditors.put(File.class, new FileEditor());
@Override public String getAsText() { Class<?>[] classes = (Class[]) getValue(); if (ObjectUtils.isEmpty(classes)) { return ""; } StringBuilder sb = new StringBuilder(); for (int i = 0; i < classes.length; ++i) { if (i > 0) { sb.append(","); } sb.append(ClassUtils.getQualifiedName(classes[i])); } return sb.toString(); }
@Test public void testClassArrayEditorSetAsTextWithNull() throws Exception { ClassArrayEditor editor = new ClassArrayEditor(); editor.setAsText(null); assertNull(editor.getValue()); assertEquals("", editor.getAsText()); }
doRegisterEditor(registry, URI.class, new URIEditor(classLoader)); doRegisterEditor(registry, Class.class, new ClassEditor(classLoader)); doRegisterEditor(registry, Class[].class, new ClassArrayEditor(classLoader));
@Override public String getAsText() { Class[] classes = (Class[]) getValue(); if (ObjectUtils.isEmpty(classes)) { return ""; } StringBuilder sb = new StringBuilder(); for (int i = 0; i < classes.length; ++i) { if (i > 0) { sb.append(","); } sb.append(ClassUtils.getQualifiedName(classes[i])); } return sb.toString(); }
@Override public void setAsText(String text) throws IllegalArgumentException { if (StringUtils.hasText(text)) { String[] classNames = StringUtils.commaDelimitedListToStringArray(text); Class<?>[] classes = new Class<?>[classNames.length]; for (int i = 0; i < classNames.length; i++) { String className = classNames[i].trim(); classes[i] = ClassUtils.resolveClassName(className, this.classLoader); } setValue(classes); } else { setValue(null); } }
@Test public void testClassArrayEditorSetAsTextWithWhitespaceString() throws Exception { ClassArrayEditor editor = new ClassArrayEditor(); editor.setAsText("\n"); assertNull(editor.getValue()); assertEquals("", editor.getAsText()); }
doRegisterEditor(registry, URI.class, new URIEditor(classLoader)); doRegisterEditor(registry, Class.class, new ClassEditor(classLoader)); doRegisterEditor(registry, Class[].class, new ClassArrayEditor(classLoader));
@Override public String getAsText() { Class<?>[] classes = (Class[]) getValue(); if (ObjectUtils.isEmpty(classes)) { return ""; } StringBuilder sb = new StringBuilder(); for (int i = 0; i < classes.length; ++i) { if (i > 0) { sb.append(","); } sb.append(ClassUtils.getQualifiedName(classes[i])); } return sb.toString(); }
@Override public void setAsText(String text) throws IllegalArgumentException { if (StringUtils.hasText(text)) { String[] classNames = StringUtils.commaDelimitedListToStringArray(text); Class[] classes = new Class[classNames.length]; for (int i = 0; i < classNames.length; i++) { String className = classNames[i].trim(); classes[i] = ClassUtils.resolveClassName(className, this.classLoader); } setValue(classes); } else { setValue(null); } }
@Test public void testClassArrayEditorSetAsTextWithEmptyString() throws Exception { ClassArrayEditor editor = new ClassArrayEditor(); editor.setAsText(""); assertNull(editor.getValue()); assertEquals("", editor.getAsText()); }
this.defaultEditors.put(Class[].class, new ClassArrayEditor()); this.defaultEditors.put(Currency.class, new CurrencyEditor()); this.defaultEditors.put(File.class, new FileEditor());
@Override public void setAsText(String text) throws IllegalArgumentException { if (StringUtils.hasText(text)) { String[] classNames = StringUtils.commaDelimitedListToStringArray(text); Class<?>[] classes = new Class<?>[classNames.length]; for (int i = 0; i < classNames.length; i++) { String className = classNames[i].trim(); classes[i] = ClassUtils.resolveClassName(className, this.classLoader); } setValue(classes); } else { setValue(null); } }
@Test public void testClassArrayEditorSunnyDayWithArrayTypes() throws Exception { ClassArrayEditor classArrayEditor = new ClassArrayEditor(); classArrayEditor.setAsText("java.lang.String[],java.util.Map[],int[],float[][][]"); Class<?>[] classes = (Class<?>[]) classArrayEditor.getValue(); assertEquals(4, classes.length); assertEquals(String[].class, classes[0]); assertEquals(Map[].class, classes[1]); assertEquals(int[].class, classes[2]); assertEquals(float[][][].class, classes[3]); assertEquals("java.lang.String[],java.util.Map[],int[],float[][][]", classArrayEditor.getAsText()); // ensure setAsText can consume the return value of getAsText classArrayEditor.setAsText(classArrayEditor.getAsText()); }
doRegisterEditor(registry, URI.class, new URIEditor(classLoader)); doRegisterEditor(registry, Class.class, new ClassEditor(classLoader)); doRegisterEditor(registry, Class[].class, new ClassArrayEditor(classLoader));
this.defaultEditors.put(Class[].class, new ClassArrayEditor()); this.defaultEditors.put(Currency.class, new CurrencyEditor()); this.defaultEditors.put(File.class, new FileEditor());