package net.sf.minuteProject.plugin.struts;
import net.sf.minuteProject.configuration.bean.GeneratorBean;
import net.sf.minuteProject.configuration.bean.Model;
import net.sf.minuteProject.configuration.bean.Template;
import net.sf.minuteProject.configuration.bean.model.data.Table;
import net.sf.minuteProject.utils.CommonUtils;
import net.sf.minuteProject.utils.FormatUtils;
public class Struts2 {
public static final String STRUTS2_ACTION_TEMPLATE_NAME = "Struts2Action";
public static final String STRUTS2_MANAGE_SCREEN_TEMPLATE_NAME = "Struts2ManageScreen";
public static final String STRUTS2_URL_EXTENTION = ".action";
public static String getActionSubmit (Table table) {
return "submit"+getActionSubmitManageScreen(table);
}
public static String getActionDisplayManageScreen (Table table) {
return "display"+getActionSubmitManageScreen(table);
}
public static String getActionEdit (Table table) {
return "edit"+getActionSubmitManageScreen(table);
}
public static String getActionSearch (Table table) {
return "search"+getActionSubmitManageScreen(table);
}
public static String getValidationFileName (Template template, GeneratorBean bean) {
Table table = (Table)bean;
String innerFileName = getActionSubmit(table);
return getActionFileName(table)+"-"+template.getNonPluginFileMain(innerFileName);
}
private static String getActionFileName (Table table) {
return CommonUtils.getTemplateArtifactMainName(table, STRUTS2_ACTION_TEMPLATE_NAME);
}
private static String getActionSubmitManageScreen (Table table) {
return CommonUtils.getTemplateArtifactMainName(table, STRUTS2_MANAGE_SCREEN_TEMPLATE_NAME);
}
/**
* technical indirection level
* @param model
* @param table
* @return
*/
public String getURLActionEntity(Model model, Table table, String action) {
String packageName = CommonUtils.getBusinessPackageName(model, table);
String searchFileName = action+STRUTS2_URL_EXTENTION;
return getRelativeURLApplicationRoot()+"/"+packageName+"/"+searchFileName;
}
public String getURLSearchEntity(Model model, Table table) {
return getURLActionEntity(model, table, getActionSearch(table));
}
public String getURLManageEntity(Model model, Table table) {
return getURLActionEntity(model, table, getActionDisplayManageScreen(table));
}
public String getURLEditEntity(Model model, Table table) {
return getURLActionEntity(model, table, getActionEdit(table));
}
public String getURLSubmitEntity(Model model, Table table) {
return getURLActionEntity(model, table, getActionSubmit(table));
}
public String getRelativeURLApplicationRoot() {
return "${ctx}";
}
}