* @return
* @throws IOException
*/
public static final Generator getGenerator(ModelMetadata modelMetadata) {
if(ViewTypes.JSP.equals(modelMetadata.getView()) && WebFrameworks.APPFRAME_5_2.equals(modelMetadata.getWebFramework()) && StringUtils.isBlank(modelMetadata.getAppFramework()) && StringUtils.isBlank(modelMetadata.getPersistenceFramework()) && StringUtils.isBlank(modelMetadata.getRia())) {
return new AppFrame52Generator();
} else if(ViewTypes.JSP.equals(modelMetadata.getView()) && WebFrameworks.STRUTS_1_3_10_FRAMEWORK.equals(modelMetadata.getWebFramework()) && AppFrameworks.SPRING_2_5_6_FRAMEWORK.equals(modelMetadata.getAppFramework()) && PersistenceFrameworks.HIBERNATE_3_6_10_FRAMEWORK.equals(modelMetadata.getPersistenceFramework()) && RiaTypes.EXTJS_3_PRESENTATION.equals(modelMetadata.getRia())) {
return new Struts13Spring256Hibernate36JspExt3Generator();
} else if(ViewTypes.JSP.equals(modelMetadata.getView()) && WebFrameworks.STRUTS_1_3_10_FRAMEWORK.equals(modelMetadata.getWebFramework()) && AppFrameworks.SPRING_2_5_6_FRAMEWORK.equals(modelMetadata.getAppFramework()) && PersistenceFrameworks.HIBERNATE_3_6_10_FRAMEWORK.equals(modelMetadata.getPersistenceFramework()) && StringUtils.isBlank(modelMetadata.getRia())) {
return new Struts13Spring256Hibernate36JspGenerator();
} else if(ViewTypes.JSP.equals(modelMetadata.getView()) && WebFrameworks.STRUTS_2_3_x_FRAMEWORK.equals(modelMetadata.getWebFramework()) && AppFrameworks.SPRING_2_5_6_FRAMEWORK.equals(modelMetadata.getAppFramework()) && PersistenceFrameworks.HIBERNATE_3_6_10_FRAMEWORK.equals(modelMetadata.getPersistenceFramework()) && RiaTypes.EXTJS_4_PRESENTATION.equals(modelMetadata.getRia())) {