com.jidesoft.converter.DefaultArrayConverter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of jide-oss Show documentation
Show all versions of jide-oss Show documentation
JIDE Common Layer (Professional Swing Components)
package com.jidesoft.converter;
import java.awt.*;
import java.lang.reflect.Array;
/**
* Converts an array to a string and converts a string to an array.
*/
public class DefaultArrayConverter extends ArrayConverter {
public DefaultArrayConverter(String separator, Class> elementClass) {
super(separator, -1, elementClass);
}
public String toString(Object object, ConverterContext context) {
if (object == null) {
return "";
}
else {
if (object.getClass().isArray()) {
Object[] objects;
if (getElementClass() == Object.class) {
objects = (Object[]) object;
}
else {
objects = new Object[Array.getLength(object)];
}
for (int i = 0; i < objects.length; i++) {
objects[i] = Array.get(object, i);
}
return arrayToString(objects, context);
}
else {
return ObjectConverterManager.toString(object, getElementClass(), context);
}
}
}
public boolean supportToString(Object object, ConverterContext context) {
return true;
}
public Object fromString(String string, ConverterContext context) {
if (string == null || "".equals(string)) {
return new Object[0];
}
else {
Object[] objects = arrayFromString(string, context);
if (objects == null) {
return new Object[0];
}
Class> elementClass = getElementClass();
if (elementClass == Object.class) {
return objects;
}
for (Object object : objects) {
if (object != null && !elementClass.isAssignableFrom(object.getClass())) {
return new Object[0];
}
}
Object array = Array.newInstance(elementClass, objects.length);
for (int i = 0; i < objects.length; i++) {
Object object = objects[i];
Array.set(array, i, object);
}
return array;
}
}
public boolean supportFromString(String string, ConverterContext context) {
return true;
}
public static void main(String[] args) {
System.out.println(new DefaultArrayConverter(";", int.class).toString(new int[]{2, 3, 2, 4}, null));
System.out.println(new DefaultArrayConverter(";", int.class).fromString("2;3;2;4", null));
System.out.println(new DefaultArrayConverter(";", Color.class).toString(new Color[]{Color.RED, Color.YELLOW, Color.GREEN}, HexColorConverter.CONTEXT_HEX));
System.out.println(new DefaultArrayConverter(";", Color.class).fromString("#FF0000;#FFFF00;#00FF00", HexColorConverter.CONTEXT_HEX));
System.out.println(new DefaultArrayConverter(";", Object.class).fromString("#FF0000;#FFFF00;#00FF00", null));
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy