package net.sf.minuteProject.plugin.oracle;
import org.codehaus.groovy.runtime.ConvertedClosure;
import net.sf.minuteProject.configuration.bean.Model;
import net.sf.minuteProject.configuration.bean.Template;
import net.sf.minuteProject.configuration.bean.model.data.Column;
import net.sf.minuteProject.utils.ColumnUtils;
import net.sf.minuteProject.utils.CommonUtils;
import net.sf.minuteProject.utils.ConvertUtils;
import net.sf.minuteProject.utils.FormatUtils;
public class AdfUtils {
public String getAdfType(Column column) {
if (ColumnUtils.isTimeColumn(column))
return "oracle.jbo.domain.Date";
if (ColumnUtils.isNumeric(column))
return "oracle.jbo.domain.Number";
return "java.lang.String";
}
public String getAdfSQLType(Column column) {
if (ColumnUtils.isTimeColumn(column))
return "DATE";
if (ColumnUtils.isNumeric(column))
return "NUMERIC";
return "VARCHAR";
}
public String getColumnType(Column column) {
if ("SMALLINT".equals(column.getType()))
return "NUMERIC";
return column.getType();
}
public String getSDOColumnTypeBegin(Column column) {
if ("INTEGER".equals(column.getType()) ||
"SMALLINT".equals(column.getType())
)
return "new Integer(getInt";
if ("DATE".equals(column.getType())
)
return "(java.sql.Timestamp)get";
return "get"+CommonUtils.getJavaType(column);
}
public String getSDOColumnFullType(Column column) {
if ("DATE".equals(column.getType())
)
return "java.sql.Timestamp";
return CommonUtils.getFullType2(column);
}
public String getSDOColumnTypeEnd(Column column) {
if ("INTEGER".equals(column.getType()) ||
"SMALLINT".equals(column.getType())
)
return ")";
return "";
}
public String getSdoXsdType(Column column) {
if (ColumnUtils.isTimeColumn(column)) {
return "ns0:dateTime-Timestamp";
}
return "xsd:"+getSdoXsdTypeValue(column);
}
private String getSdoXsdTypeValue(Column column) {
String uml = ConvertUtils.getUMLTypeFromDBFullType(column.getType());
if ("integer".equals(uml))
return "int";
return uml;
}
public boolean hasSdoXmlDataType(Column column) {
return (getSdoXmlDataType(column)!=null);
}
public String getSdoXmlDataType(Column column) {
if (ColumnUtils.isNumeric(column))
return "sdoJava:IntObject";
return null;
}
public static String getNamespacePackage(Model model, Template template, String targetTemplate) {
String packageName = CommonUtils.getPackageName(model, CommonUtils.getTemplate(model.getConfiguration(), targetTemplate));
return FormatUtils.getDirFromPackage(packageName);
}
}