/**
* Copyright (c) 2004-2011 Wang Jinbao(Julian Wong), http://www.ralasafe.com
* Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
*/
package org.ralasafe.db.sql;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.ralasafe.RalasafeException;
import org.ralasafe.user.User;
public class SimpleValue implements Value {
private static Log log=LogFactory.getLog( SimpleValue.class );
public static final String STRING = "string";
public static final String INTEGER = "integer";
public static final String FLOAT = "float";
public static final String BOOLEAN = "boolean";
public static final String DATETIME = "datetime";
private String type;
private String value;
private boolean behindLike;
public boolean isBehindLike() {
return behindLike;
}
public void setBehindLike(boolean behindLike) {
this.behindLike = behindLike;
}
public String toSQL() {
return " ? ";
// StringBuffer buf = new StringBuffer();
// buf.append(" ");
// if (behindLike) {
// buf.append("'%").append(value).append("%'");
// } else {
// if (type.equals(STRING) || type.equals(DATETIME)
// || type.equals(BOOLEAN)) {
// buf.append("'").append(value).append("'");
// } else {
// buf.append(value);
// }
// }
// buf.append(" ");
// return buf.toString();
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public Object getValue(User user, Map context) {
if (type.equals(STRING)) {
return value;
} else if (type.equals(INTEGER)) {
return new Integer(value);
} else if (type.equals(FLOAT)) {
return new Float(value);
} else if (type.equals(BOOLEAN)) {
return new Boolean(value);
} else if (type.equals(DATETIME)) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
try {
return format.parse(value);
} catch (ParseException e) {
log.error( "", e );
throw new RalasafeException(e);
}
} else {
String msg="Not supported value type '" + type + "'.";
log.error( msg );
throw new RalasafeException(msg);
}
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}