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

com.github.paganini2008.devtools.converter.StringConverter Maven / Gradle / Ivy

There is a newer version: 2.0.5
Show newest version
package com.github.paganini2008.devtools.converter;

import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;
import java.sql.Clob;
import java.text.DateFormat;
import java.text.DecimalFormat;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
import java.util.UUID;

import com.github.paganini2008.devtools.ArrayUtils;
import com.github.paganini2008.devtools.CharsetUtils;
import com.github.paganini2008.devtools.NumberUtils;
import com.github.paganini2008.devtools.collection.CollectionUtils;
import com.github.paganini2008.devtools.collection.MapUtils;
import com.github.paganini2008.devtools.date.CalendarUtils;
import com.github.paganini2008.devtools.date.DateUtils;
import com.github.paganini2008.devtools.io.IOUtils;
import com.github.paganini2008.devtools.net.UrlUtils;
import com.github.paganini2008.devtools.primitives.Booleans;
import com.github.paganini2008.devtools.primitives.Doubles;
import com.github.paganini2008.devtools.primitives.Floats;
import com.github.paganini2008.devtools.primitives.Ints;
import com.github.paganini2008.devtools.primitives.Longs;
import com.github.paganini2008.devtools.primitives.Shorts;

/**
 * StringConverter
 * 
 * @author Fred Feng
 * @version 1.0
 */
@SuppressWarnings("all")
public class StringConverter extends BaseConverter {

	private final Converter uuidConverter = new Converter() {
		public String getValue(UUID source, String defaultValue) {
			return source != null ? source.toString() : defaultValue;
		}
	};

	private final Converter booleanConverter = new Converter() {
		public String getValue(Boolean source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			return Booleans.toString(source);
		}
	};

	private final Converter characterConverter = new Converter() {
		public String getValue(Character source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			return source.toString();
		}
	};

	private final Converter numberConverter = new Converter() {
		public String getValue(Number source, String defaultValue) {
			return NumberUtils.format(source, config.getDecimalFormat(), defaultValue);
		}
	};

	private final Converter dateConverter = new Converter() {
		public String getValue(Date source, String defaultValue) {
			return DateUtils.format(source, config.getDateFormat(), defaultValue);
		}
	};

	private final Converter calendarConverter = new Converter() {
		public String getValue(Calendar source, String defaultValue) {
			return CalendarUtils.format(source, config.getDateFormat(), defaultValue);
		}
	};

	private final Converter urlConverter = new Converter() {
		public String getValue(URL source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			try {
				return UrlUtils.toString(source, config.getCharset());
			} catch (IOException e) {
				return defaultValue;
			}
		}
	};

	private final Converter clobConverter = new Converter() {
		public String getValue(Clob source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			try {
				return IOUtils.toString(source.getCharacterStream());
			} catch (Exception e) {
				return defaultValue;
			}
		}
	};

	private final Converter inputStreamConverter = new Converter() {
		public String getValue(InputStream source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			try {
				return IOUtils.toString(source, config.getCharset());
			} catch (IOException e) {
				return defaultValue;
			}
		}
	};

	private final Converter readerConverter = new Converter() {
		public String getValue(Reader source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			try {
				return IOUtils.toString(source);
			} catch (IOException e) {
				return defaultValue;
			}
		}
	};

	private final Converter charSequenceConverter = new Converter() {
		public String getValue(CharSequence source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			return source.toString();
		}
	};

	private final Converter byteArrayConverter = new Converter() {
		public String getValue(byte[] source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			return new String(source, config.getCharset());
		}
	};

	private final Converter charArrayConverter = new Converter() {
		public String getValue(char[] source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			return new String(source);
		}
	};

	private final Converter shortArrayConverter = new Converter() {
		public String getValue(short[] source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			return Shorts.join(source, config.getDelimiter());
		}
	};

	private final Converter intArrayConverter = new Converter() {
		public String getValue(int[] source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			return Ints.join(source, config.getDelimiter());
		}
	};

	private final Converter longArrayConverter = new Converter() {
		public String getValue(long[] source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			return Longs.join(source, config.getDelimiter());
		}
	};

	private final Converter floatArrayConverter = new Converter() {
		public String getValue(float[] source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			return Floats.join(source, config.getDelimiter());
		}
	};

	private final Converter doubleArrayConverter = new Converter() {
		public String getValue(double[] source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			return Doubles.join(source);
		}
	};

	private final Converter booleanArrayConverter = new Converter() {
		public String getValue(boolean[] source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			return Booleans.join(source, config.getDelimiter());
		}
	};

	private final Converter objectArrayConverter = new Converter() {
		public String getValue(Object[] source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			return ArrayUtils.join(source, config.getDelimiter());
		}
	};

	private final Converter, String> collectionConverter = new Converter, String>() {
		public String getValue(Collection source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			return CollectionUtils.join(source, config.getDelimiter());
		}
	};

	private final Converter, String> iteratorConverter = new Converter, String>() {
		public String getValue(Iterator source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			return CollectionUtils.join(source, config.getDelimiter());
		}
	};

	private final Converter, String> enumerationConverter = new Converter, String>() {
		public String getValue(Enumeration source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			return CollectionUtils.join(source, config.getDelimiter());
		}
	};

	private final Converter mapConverter = new Converter() {
		public String getValue(Map source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			return MapUtils.join(source, config.getDelimiter());
		}
	};

	private final Converter charsetConverter = new Converter() {
		public String getValue(Charset source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			return source.name();
		}
	};

	private final Converter localeConverter = new Converter() {
		public String getValue(Locale source, String defaultValue) {
			if (source == null) {
				return defaultValue;
			}
			return source.toString();
		}
	};

	public StringConverter() {

		put(Boolean.class, booleanConverter);
		put(Character.class, characterConverter);
		put(Number.class, numberConverter);
		put(CharSequence.class, charSequenceConverter);

		put(Date.class, dateConverter);
		put(Calendar.class, calendarConverter);

		put(boolean[].class, booleanArrayConverter);
		put(char[].class, charArrayConverter);
		put(byte[].class, byteArrayConverter);
		put(short[].class, shortArrayConverter);
		put(int[].class, intArrayConverter);
		put(float[].class, floatArrayConverter);
		put(double[].class, doubleArrayConverter);
		put(long[].class, longArrayConverter);
		put(Object[].class, objectArrayConverter);

		put(Collection.class, collectionConverter);
		put(Iterator.class, iteratorConverter);
		put(Enumeration.class, enumerationConverter);
		put(Map.class, mapConverter);

		put(URL.class, urlConverter);
		put(Clob.class, clobConverter);
		put(Reader.class, readerConverter);
		put(InputStream.class, inputStreamConverter);

		put(Charset.class, charsetConverter);
		put(Locale.class, localeConverter);
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy