package br.com.centralit.citajax.framework; import java.util.List; import javax.servlet.ServletContext; import br.com.centralit.citajax.reflexao.CitAjaxReflexao; import br.com.centralit.citajax.util.CitAjaxUtil; import br.com.citframework.util.Constantes; public class CITFacadeGenerator { /** * Processa o objeto passado como parametro e retorna uma string javascript * * @param path * @return * @throws Exception */ public String process(final String path, final ServletContext ctx) throws Exception { String strAux = ""; final String javaScriptObject = this.getObjectName(path); if (javaScriptObject == null) { return null; } final Class<?> classe = Class.forName(Constantes.getValue("BEAN_LOCATION_PACKAGE") + "." + javaScriptObject); if (classe != null) { final Object objeto = classe.newInstance(); final List<String> listaGets = CitAjaxReflexao.findGets(objeto); strAux = "function " + javaScriptObject + "("; String strAux2 = ""; for (int i = 0; i < listaGets.size(); i++) { if (listaGets.get(i).equalsIgnoreCase("class")) { continue; } strAux2 += "\tthis." + CitAjaxUtil.convertePrimeiraLetra(listaGets.get(i), "L") + " = function(){;\n"; strAux2 += "\t\t"; strAux2 += "\t}"; } strAux2 += "\tthis.idControleCITFramework = null;\n"; strAux += "){\n"; strAux += strAux2; strAux += "} "; } return strAux; } public String getObjectName(final String path) { if (path.length() - 3 <= 0) { return ""; } String strResult = ""; for (int i = path.length() - 4; i >= 0; i--) { if (path.charAt(i) == '/') { return strResult; } else { strResult = path.charAt(i) + strResult; } } return strResult; } }