package com.owera.xaps.tr069.methods; import com.owera.xaps.base.Log; import com.owera.xaps.tr069.CPEParameters; import com.owera.xaps.tr069.HTTPReqResData; import com.owera.xaps.tr069.SessionData; import com.owera.xaps.tr069.exception.TR069Exception; import com.owera.xaps.tr069.xml.ParameterValueStruct; import com.owera.xaps.tr069.xml.Parser; public class GPVres { private static void populateCPEParameters(SessionData sessionData) { CPEParameters cpeParams = sessionData.getCpeParameters(); int counter = 0; for (ParameterValueStruct pvs : sessionData.getFromCPE()) { if (pvs.getName().contains(cpeParams.CONFIG_FILES)) { counter++; cpeParams.putPvs(pvs.getName(), pvs); // } else if (pvs.getName().contains(cpeParams.CONFIG_VERSION)) { // counter++; // cpeParams.putPvs(pvs.getName(), pvs); } else if (pvs.getName().equals(cpeParams.CONNECTION_URL)) { counter++; cpeParams.putPvs(cpeParams.CONNECTION_URL, pvs); } else if (pvs.getName().equals(cpeParams.CONNECTION_USERNAME)) { counter++; cpeParams.putPvs(cpeParams.CONNECTION_USERNAME, pvs); } else if (pvs.getName().equals(cpeParams.CONNECTION_PASSWORD)) { counter++; cpeParams.putPvs(cpeParams.CONNECTION_PASSWORD, pvs); } else if (pvs.getName().equals(cpeParams.PERIODIC_INFORM_INTERVAL)) { counter++; cpeParams.putPvs(cpeParams.PERIODIC_INFORM_INTERVAL, pvs); } else if (pvs.getName().equals(cpeParams.SOFTWARE_VERSION)) { counter++; cpeParams.putPvs(cpeParams.SOFTWARE_VERSION, pvs); } } Log.debug(GPVres.class, "Found " + counter + " cpe-params (of special interest to ACS) in response"); } public static void process(HTTPReqResData reqRes) throws TR069Exception { reqRes.getRequest().setMethod(TR069Method.GET_PARAMETER_VALUES); Log.debug(GPVres.class, "Will process XML: " + reqRes.getRequest().getXml().length() + " char"); Parser parser = new Parser(reqRes.getRequest().getXml()); SessionData sessionData = reqRes.getSessionData(); if (parser.getHeader().getNoMoreRequests() != null && parser.getHeader().getNoMoreRequests().getNoMoreRequestFlag()) sessionData.setNoMoreRequests(true); sessionData.setFromCPE(parser.getParameterList().getParameterValueList()); sessionData.getProvisioningMessage().setParamsRead(sessionData.getFromCPE().size()); Log.debug(GPVres.class, "Response holds " + sessionData.getFromCPE().size() + " parameters"); if (sessionData.getFromCPE().size() < sessionData.getRequestedCPE().size()) { String msg = "Number of parameters returned from CPE is less than asked for ("; msg += sessionData.getRequestedCPE().size() + ")"; Log.warn(GPVres.class, msg); } populateCPEParameters(sessionData); } }