package io.shockah.skylark.db; import java.sql.SQLException; import java.util.regex.Pattern; import com.j256.ormlite.field.FieldType; import com.j256.ormlite.field.SqlType; import com.j256.ormlite.field.types.BaseDataType; import com.j256.ormlite.support.DatabaseResults; public class PatternPersister extends BaseDataType { public PatternPersister() { super(SqlType.STRING, new Class<?>[] { Pattern.class }); } @Override public Object parseDefaultString(FieldType fieldType, String defaultStr) throws SQLException { return defaultStr; } @Override public Object resultToSqlArg(FieldType fieldType, DatabaseResults results, int columnPos) throws SQLException { return results.getString(columnPos); } @Override public Object sqlArgToJava(FieldType fieldType, Object sqlArg, int columnPos) throws SQLException { if (fieldType == null) return sqlArg; return Pattern.compile((String)sqlArg); } @Override public Object javaToSqlArg(FieldType fieldType, Object javaObject) throws SQLException { return ((Pattern)javaObject).pattern(); } }