package net.sf.minuteProject.utils; import java.util.Iterator; import net.sf.minuteProject.configuration.bean.Model; import net.sf.minuteProject.configuration.bean.Template; import net.sf.minuteProject.configuration.bean.model.Entity; import net.sf.minuteProject.configuration.bean.model.Field; import net.sf.minuteProject.configuration.bean.model.data.Table; import net.sf.minuteProject.configuration.bean.parameter.LogicalLink; import net.sf.minuteProject.utils.enrichment.EnrichmentUtils; public class URLUtils { public static String ACTION_NAME = "action"; public static String defaultRootURLBeginner = "crud.do"; public String getURLSearchEntity(Model model, Table table) { String packageName = CommonUtils.getBusinessPackageName(model, table); String searchFileName = CommonUtils.getTableClassName(table)+"SearchScreen.html"; String projectName = model.getConfiguration().getProjectname(); return getRelativeURLApplicationRoot()+"/html/"+projectName+"/"+packageName+"/"+searchFileName; } public String getURLManageEntity(Model model, Table table) { return getDefaultRootURLBeginner()+"?table="+table.getName()+"&"+ACTION_NAME+"=manage"; //return "crud.do?service=routingService+&inputObject="+BslaLibraryUtils.getDomainObjectImport(model, table, new Template())+"&name="+table.getName()+"&method=manage"; } public String getURLSearchResultEntity(Model model, Table table) { return getDefaultRootURLBeginner()+"?table="+table.getName()+"&"+ACTION_NAME+"=search"; //return "crud.do?service=routingService+&inputObject="+BslaLibraryUtils.getDomainObjectImport(model, table, new Template())+"&name="+table.getName()+"&method=manage"; } public String getURLAddReferencedEntity(String tableName, String linkField, String entityInSession, String referenceTablePK ) { return getDefaultRootURLBeginner()+"?table="+tableName+"&"+ACTION_NAME+"=add&"+linkField+"=<c:out value=\"${"+entityInSession+"."+DBTemplateUtils.getJavaNameVariable(referenceTablePK)+"}\"/>"; } public String getEditURL (String tableName, String field) { return getEditURL(tableName, field, "entity"); } public String getEditURL (String tableName, String field, String entity) { return getDefaultRootURLBeginner()+"?table="+tableName+"&"+ACTION_NAME+"=edit&"+DBTemplateUtils.getJavaNameVariable(field)+"=<c:out value=\"${"+entity+"."+DBTemplateUtils.getJavaNameVariable(field)+"}\"/>"; } public String getSearchByIdURL (LogicalLink link) { Entity linkEntity= link.getEntity(); return getSearchByIdURL(linkEntity.getRefname(),((Field) linkEntity.getFields().get(0)).getRefname()); } public String getSearchByIdURL (String tableName, String field) { return getSearchByIdURL(tableName, field, "entity"); } //deprecated public String getSearchByIdURL (String tableName, String field, String entity) { String url = getDefaultRootURLBeginner()+"?table="+tableName+"&"+ACTION_NAME+"=searchOnPkFull&"+DBTemplateUtils.getJavaNameVariable(field)+"=<c:out value=\"${"+entity+"."+DBTemplateUtils.getJavaNameVariable(field)+"}\"/>"; return url; } public String getSearchByIdURL (String tableName, String field, String primaryKey, String entity) { String url = getDefaultRootURLBeginner()+"?table="+tableName+"&"+ACTION_NAME+"=searchOnPkFull&"+DBTemplateUtils.getJavaNameVariable(primaryKey)+"=<c:out value=\"${"+entity+"."+DBTemplateUtils.getJavaNameVariable(field)+"}\"/>"; return url; } public String getSearchByIdURL (Table table) { String tablename = table.getName(); StringBuffer sb = new StringBuffer(); sb.append(getDefaultRootURLBeginner()+"?table="+tablename+"&"+ACTION_NAME+"=searchOnPkFull"); for (int i = 0; i < table.getPrimaryKeyColumns().length ; i++) { String columnName = table.getPrimaryKeyColumns()[i].getName(); String columnVariable = DBTemplateUtils.getJavaNameVariable(columnName); sb.append("&"+columnVariable+"=<c:out value=\"${entity."+columnVariable+"}\"/>"); } return sb.toString(); } public String getRelativeURLApplicationRoot(Model model) { return "/${ctx}"; } public String getRelativeURLApplicationRoot() { return "/${ctx}"; } public String getRelativeURLPackageRoot(Model model, Table table) { return "/jsp/myProject"; } public String getManageEntity(Model model, Table table) { String packageName = CommonUtils.getBusinessPackageName(model, table); String manageFileName = CommonUtils.getTableClassName(table)+"ManageScreen.jsp"; return packageName+"/"+manageFileName; } public static String getDefaultRootURLBeginner() { return defaultRootURLBeginner; } public static void setDefaultRootURLBeginner(String defaultRootURLBeginner1) { defaultRootURLBeginner = defaultRootURLBeginner1; } public static boolean hasMenuLinkDirectResultAccess (Table table) { return EnrichmentUtils.hasMenuLinkDirectResultAccess (table); } }