exchanging new version yang models on firmware upgrade
[oam/tr069-adapter.git] / acs / cpe / src / main / java / org / commscope / tr069adapter / acs / cpe / rpc / SetParameterValues.java
1 /*\r
2  * ============LICENSE_START========================================================================\r
3  * ONAP : tr-069-adapter\r
4  * =================================================================================================\r
5  * Copyright (C) 2020 CommScope Inc Intellectual Property.\r
6  * =================================================================================================\r
7  * This tr-069-adapter software file is distributed by CommScope Inc under the Apache License,\r
8  * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You\r
9  * may obtain a copy of the License at\r
10  *\r
11  * http://www.apache.org/licenses/LICENSE-2.0\r
12  *\r
13  * This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,\r
14  * either express or implied. See the License for the specific language governing permissions and\r
15  * limitations under the License.\r
16  * ===============LICENSE_END=======================================================================\r
17  */\r
18 \r
19 package org.commscope.tr069adapter.acs.cpe.rpc;\r
20 \r
21 import java.util.ArrayList;\r
22 import java.util.List;\r
23 \r
24 import javax.xml.soap.SOAPBodyElement;\r
25 import javax.xml.soap.SOAPElement;\r
26 import javax.xml.soap.SOAPException;\r
27 import javax.xml.soap.SOAPFactory;\r
28 \r
29 import org.commscope.tr069adapter.acs.cpe.TR069RPC;\r
30 \r
31 public class SetParameterValues extends TR069RPC {\r
32 \r
33   private static final long serialVersionUID = -7143315228088632032L;\r
34 \r
35   /** Creates a new instance of GetParameterValues */\r
36   public SetParameterValues() {\r
37     name = "SetParameterValues";\r
38     names = new ArrayList<>();\r
39     values = new ArrayList<>();\r
40     types = new ArrayList<>();\r
41   }\r
42 \r
43   public void merge(SetParameterValues other) {\r
44     for (int i = 0; i < other.names.size(); i++) {\r
45       names.add(other.names.get(i));\r
46       values.add(other.values.get(i));\r
47       types.add(other.types.get(i));\r
48     }\r
49   }\r
50 \r
51   protected void createBody(SOAPBodyElement body, SOAPFactory spf) throws SOAPException {\r
52     SOAPElement elm = body.addChildElement(spf.createName("ParameterList"));\r
53     elm.setAttribute(SOAP_ARRAY_TYPE, "cwmp:ParameterValueStruct[" + names.size() + "]");\r
54     for (int i = 0; i < names.size(); i++) {\r
55       SOAPElement param = elm.addChildElement("ParameterValueStruct");\r
56       param.addChildElement("Name").setValue(names.get(i));\r
57       SOAPElement v = param.addChildElement("Value");\r
58       v.setValue(values.get(i));\r
59       v.setAttribute(XSI_TYPE, getXmlType(types.get(i)));\r
60     }\r
61     body.addChildElement(PARAMETER_KEY).setValue(key);\r
62   }\r
63 \r
64   @Override\r
65   protected void createBody(SOAPBodyElement body, SOAPFactory spf, String key)\r
66       throws SOAPException {\r
67     SOAPElement elm = body.addChildElement(spf.createName("ParameterList"));\r
68     elm.setAttribute(SOAP_ARRAY_TYPE, "cwmp:ParameterValueStruct[" + names.size() + "]");\r
69     for (int i = 0; i < names.size(); i++) {\r
70       SOAPElement param = elm.addChildElement("ParameterValueStruct");\r
71       param.addChildElement("Name").setValue(names.get(i));\r
72       SOAPElement v = param.addChildElement("Value");\r
73       v.setValue(values.get(i));\r
74       v.setAttribute(XSI_TYPE, getXmlType(types.get(i)));\r
75     }\r
76     body.addChildElement(PARAMETER_KEY).setValue(key);\r
77   }\r
78 \r
79   protected void parseBody(SOAPBodyElement body, SOAPFactory f) throws SOAPException {\r
80     logger.isDebugEnabled();\r
81   }\r
82 \r
83   public void addValue(String name, String value) {\r
84     addValue(name, value, XSD_STRING);\r
85   }\r
86 \r
87   public void addValue(String name, Integer value) {\r
88     addValue(name, value.toString(), XSD_UNSIGNEDINT);\r
89   }\r
90 \r
91   public void addValue(String name, String value, String type) {\r
92     names.add(name);\r
93     values.add(value);\r
94     types.add(type);\r
95   }\r
96 \r
97   public boolean isEmpty() {\r
98     return names.isEmpty();\r
99   }\r
100 \r
101   @Override\r
102   public String toString() {\r
103     StringBuilder s = new StringBuilder();\r
104     for (int i = 0; i < names.size(); i++) {\r
105       s.append('\t');\r
106       s.append(names.get(i));\r
107       s.append(" (");\r
108       s.append(types.get(i));\r
109       s.append(") '");\r
110       s.append(values.get(i));\r
111       s.append("'\n");\r
112     }\r
113     return s.toString();\r
114   }\r
115 \r
116   private List<String> names;\r
117   private List<String> values;\r
118   private List<String> types;\r
119   private String key = "unsetCommandKey";\r
120 }\r