![JAR search and dependency download from the Maven repository](/logo.png)
cz.jalasoft.lifeconfig.converter.StringConverters Maven / Gradle / Ivy
package cz.jalasoft.lifeconfig.converter;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
/**
* A factory of various converters from string.
*
* Created by honzales on 18.4.15.
*/
public final class StringConverters {
static StringConverter identity() {
return new StringConverter() {
@Override
public String convert(String from) throws ConverterException {
return from;
}
@Override
public Class targetType() {
return String.class;
}
};
}
static StringConverter toByte() {
return new StringConverter() {
@Override
public Class targetType() {
return Byte.class;
}
@Override
public Byte convert(String from) throws ConverterException {
try {
return Byte.valueOf(from);
} catch (NumberFormatException exc) {
throw new ConverterException(from, String.class, Byte.class);
}
}
};
}
static StringConverter toFloat() {
return new StringConverter() {
@Override
public Class targetType() {
return Float.class;
}
@Override
public Float convert(String from) throws ConverterException {
try {
return Float.valueOf(from);
} catch (NumberFormatException exc) {
throw new ConverterException(from, String.class, Float.class);
}
}
};
}
static StringConverter toDouble() {
return new StringConverter() {
@Override
public Double convert(String from) throws ConverterException {
try {
return Double.valueOf(from);
} catch (NumberFormatException exc) {
throw new ConverterException(from, String.class, Double.class);
}
}
@Override
public Class targetType() {
return Double.class;
}
};
}
static StringConverter toShort() {
return new StringConverter() {
@Override
public Class targetType() {
return Short.class;
}
@Override
public Short convert(String from) throws ConverterException {
try {
return Short.valueOf(from);
} catch (NumberFormatException exc) {
throw new ConverterException(from, String.class, Short.class);
}
}
};
}
static StringConverter toInteger() {
return new StringConverter() {
@Override
public Integer convert(String from) throws ConverterException {
try {
return Integer.valueOf(from);
} catch (NumberFormatException exc) {
throw new ConverterException(from, String.class, Integer.class);
}
}
@Override
public Class targetType() {
return Integer.class;
}
};
}
static StringConverter toLong() {
return new StringConverter() {
@Override
public Long convert(String from) throws ConverterException {
try {
return Long.parseLong(from);
} catch (NumberFormatException exc) {
throw new ConverterException(from, String.class, Long.class);
}
}
@Override
public Class targetType() {
return Long.class;
}
};
}
static StringConverter toBoolean() {
return new StringConverter() {
@Override
public Boolean convert(String from) throws ConverterException {
try {
return Boolean.parseBoolean(from);
} catch (NumberFormatException exc) {
throw new ConverterException(from, String.class, Boolean.class);
}
}
@Override
public Class targetType() {
return Boolean.class;
}
};
}
static StringConverter toFloatPrimitive() {
return new StringConverter() {
@Override
public Float convert(String from) throws ConverterException {
try {
return Float.parseFloat(from);
} catch (NumberFormatException exc) {
throw new ConverterException(from, String.class, float.class);
}
}
@Override
public Class targetType() {
return float.class;
}
};
}
static StringConverter toDoublePrimitive() {
return new StringConverter() {
@Override
public Double convert(String from) throws ConverterException {
try {
return Double.parseDouble(from);
} catch (NumberFormatException exc) {
throw new ConverterException(from, String.class, Double.class);
}
}
@Override
public Class targetType() {
return double.class;
}
};
}
static StringConverter toBooleanPrimitive() {
return new StringConverter() {
@Override
public Boolean convert(String from) throws ConverterException {
try {
return Boolean.parseBoolean(from);
} catch (NumberFormatException exc) {
throw new ConverterException(from, String.class, boolean.class);
}
}
@Override
public Class targetType() {
return boolean.class;
}
};
}
static StringConverter toBytePrimitive() {
return new StringConverter() {
@Override
public Byte convert(String from) throws ConverterException {
try {
return Byte.parseByte(from);
} catch (NumberFormatException exc) {
throw new ConverterException(from, String.class, byte.class);
}
}
@Override
public Class targetType() {
return byte.class;
}
};
}
static StringConverter toShortPrimitive() {
return new StringConverter() {
@Override
public Short convert(String from) throws ConverterException {
try {
return Short.parseShort(from);
} catch (NumberFormatException exc) {
throw new ConverterException(from, String.class, Short.class);
}
}
@Override
public Class targetType() {
return short.class;
}
};
}
static StringConverter toIntPrimitive() {
return new StringConverter() {
@Override
public Integer convert(String from) throws ConverterException {
try {
return Integer.parseInt(from);
} catch (NumberFormatException exc) {
throw new ConverterException(from, String.class, Integer.class);
}
}
@Override
public Class targetType() {
return int.class;
}
};
}
static StringConverter toLongPrimitive() {
return new StringConverter() {
@Override
public Long convert(String from) throws ConverterException {
try {
return Long.parseLong(from);
} catch (NumberFormatException exc) {
throw new ConverterException(from, String.class, Long.class);
}
}
@Override
public Class targetType() {
return long.class;
}
};
}
static StringConverter toIntegerOr(final StringConverter alternative) {
return new StringConverter() {
@Override
public Integer convert(String from) throws ConverterException {
try {
return Integer.parseInt(from);
} catch (NumberFormatException exc) {
return alternative.convert(from);
}
}
@Override
public Class targetType() {
return Integer.class;
}
};
}
static StringConverter toLocalDateTime(String pattern) {
return new StringConverter() {
@Override
public LocalDateTime convert(String from) throws ConverterException {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
return LocalDateTime.parse(from, formatter);
}
@Override
public Class targetType() {
return LocalDateTime.class;
}
};
}
static StringConverter toISOLocalDateTime() {
return new StringConverter() {
@Override
public Class targetType() {
return LocalDateTime.class;
}
@Override
public LocalDateTime convert(String from) throws ConverterException {
try {
return LocalDateTime.parse(from, DateTimeFormatter.ISO_LOCAL_DATE_TIME);
} catch (DateTimeParseException exc) {
throw new ConverterException(from, String.class, LocalDateTime.class);
}
}
};
}
//----------------------------------------------------------------
//CONSTRUCTOR
//----------------------------------------------------------------
private StringConverters() {
throw new RuntimeException();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy