package com.fp.facade.ejb.helper; import java.lang.reflect.Method; import net.sf.json.JSONObject; import com.fp.common.exception.ExceptionHandler; import com.fp.common.logger.APPLogger; import com.fp.common.properties.PropertiesHandler; import com.fp.dto.Response; import com.fp.persistence.commondb.data.SessionData; import com.fp.persistence.commondb.data.ThreadFacade; public class BeanHelper { /** * LLena el threadlocal con el codigo de comania. * @param pComany Codigo de compania a asocial al threadlocal. * @throws Exception */ protected void fillThreadFacade(Integer pComany) throws Exception { SessionData s = new SessionData(); s.setCompany(pComany); s.setIsEjb(false); ThreadFacade.setSaveRequest(s); } /** * Metodo que entraga el codigo de la compania que llega en el request, con la que trabaja el usuario. * @param data Json de entrada * @return Integer * @throws Exception */ protected Integer getCompany(String data) throws Exception { Integer cia = 1; try { PropertiesHandler ph = new PropertiesHandler("fb-facade"); cia = ph.getIntValue("defaultcompany"); } catch (Exception e) { APPLogger.getLogger().error("Error en getCompany"); e.printStackTrace(); cia = 1; } try { JSONObject rpcObject = JSONObject.fromObject(data); String dataux = rpcObject.getJSONArray("params").getString(0); dataux = dataux.substring(1, dataux.length() - 1); JSONObject a = JSONObject.fromObject(dataux); String cp = a.getString("company"); return Integer.valueOf(cp); } catch (Exception e) { return cia; } } public static void cleanThreadLocal() { try { Class c = Class.forName("com.fp.core.fin.helper.ThreadTransaction"); Method m = c.getDeclaredMethod("unset"); m.invoke(null); } catch (Exception e) { // NO hacer nada } } /** * Tranforma las excepciones en un leguaje de usuario, arma y entrega la respuesta. * @param e Excepcion a transformar a mensaje de usuario. * @throws Exception */ public static final Response fillError(Throwable e) throws Throwable { try { // Encera el response. Response response = null; // Crea una nueva instancia de response. ExceptionHandler eh = new ExceptionHandler(e, "ES"); response = new Response(eh.getCode(), eh.getUserMessage()); response.setResponseTechnicalMessage(eh.getTechnicalMessage()); return response; } catch (Exception e2) { throw e2; } } }