All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jidesoft.converter.RangeConverter Maven / Gradle / Ivy

There is a newer version: 3.6.18
Show newest version
/*
 * @(#)RangeConverter.java 5/22/2014
 *
 * Copyright 2002 - 2014 JIDE Software Inc. All rights reserved.
 */
package com.jidesoft.converter;

import com.jidesoft.range.Range;

import java.text.MessageFormat;
import java.util.Locale;

/**
 * An abstract class that is extended by any converters that convert to/from an array-like format, such as 1, 2, 3.
 * Examples are Point. Point(100, 200) can convert to/from "100, 200" 
You have the choice of what the separator is; * separator is the ", " in the Point example above. */ public class RangeConverter implements ObjectConverter { private Class _elementClass; public static final ConverterContext CONTEXT_RANGE = new ConverterContext("Range"); public static final ConverterContext CONTEXT_MULTIPLE = new ConverterContext("Multiple"); /** * Creates an ArrayConverter. * * @param elementClass class of the array element. Assume all elements have the same class type. If not, use the * constructor which takes Class[] as parameter. */ public RangeConverter(Class elementClass) { _elementClass = elementClass; } /** * Converts from array to string by concating them with separators. * * @param objects an array of objects * @param context converter context * @return string all objects concatenated with separators */ public String arrayToString(Object[] objects, ConverterContext context) { if (objects.length > 1) { if (CONTEXT_RANGE.equals(context)) { String s = Resource.getResourceBundle(Locale.getDefault()).getString("Range.range"); return MessageFormat.format(s, toString(0, objects[0], context), toString(1, objects[1], context)); } else { return Resource.getResourceBundle(Locale.getDefault()).getString("Range.multiple"); } } else if (objects.length == 1) { return toString(0, objects[0], context); } return ""; } protected String toString(int i, Object o, ConverterContext context) { return ObjectConverterManager.toString(o, _elementClass, context); } /** * Converts from string to an array of objects, using separator to separate the string. * * @param string string to be converted * @param context converter context * @return the array */ public Object[] arrayFromString(String string, ConverterContext context) { return null; } protected Object fromString(int i, String s, ConverterContext context) { return ObjectConverterManager.fromString(s, _elementClass, context); } public String toString(Object object, ConverterContext context) { if (object instanceof Range) { Range range = (Range) object; if (range.size() == 0) { return arrayToString(new Object[]{range.lower()}, context); } return arrayToString(new Object[]{range.lower(), range.upper()}, context); } else { return ""; } } public boolean supportToString(Object object, ConverterContext context) { return true; } public Object fromString(String string, ConverterContext context) { if (string == null || string.trim().length() == 0) { return null; } Object[] objects = arrayFromString(string, context); if (objects == null) return null; else if (objects.length == 1) { return null; } else if (objects.length >= 2) { return null; } return null; } public boolean supportFromString(String string, ConverterContext context) { return false; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy