package com.google.code.joto.value2java.converters;
import com.google.code.joto.ast.beanstmt.BeanAST.BeanExpr;
import com.google.code.joto.ast.beanstmt.BeanAST.SimpleNameExpr;
import com.google.code.joto.ast.valueholder.ValueHolderAST.AbstractObjectValueHolder;
import com.google.code.joto.value2java.ObjectVHToStmtConverter;
import com.google.code.joto.value2java.VHToStmt;
import com.google.code.joto.value2java.impl.ObjectStmtInfo;
/**
* converter for simple Object->FixedString conversions, when matching a class
*
*/
public class FixedStringVHToStmtConverter implements ObjectVHToStmtConverter {
private Class<Object> matchesType;
private String resultText;
// ------------------------------------------------------------------------
public FixedStringVHToStmtConverter(Class<Object> matchesType, String resultText) {
this.matchesType = matchesType;
this.resultText = resultText;
}
public FixedStringVHToStmtConverter() {
}
// ------------------------------------------------------------------------
@Override
public boolean canConvert(Class<?> type) {
if (matchesType == null) return false;
return matchesType.isAssignableFrom(type);
}
@Override
public void convert(VHToStmt owner, AbstractObjectValueHolder obj, ObjectStmtInfo objInfo) {
BeanExpr expr = new SimpleNameExpr(resultText);
objInfo.setTypeAndInitExpr(String.class, expr);
}
}