⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inform.java.svn-base

📁 java 写的tr069协议CPE客户端程序
💻 SVN-BASE
字号:
package cn.edu.njupt.sc.message;

import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.xml.soap.SOAPBodyElement;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPFactory;

import cn.edu.njupt.sc.data.DataReader;
import cn.edu.njupt.sc.data.InformData;
import cn.edu.njupt.sc.data.TreeDataReader;

public class Inform extends Message {

	public Inform() {
		name = "Inform";
		count = 0;
		names = new ArrayList<String>();
		values = new ArrayList<String>();
		initData();
	}

	@Override
	protected void createBody(SOAPBodyElement body, SOAPFactory spf)
			throws SOAPException {
		SOAPElement deviceID = body.addChildElement("DeviceID", CWMP);
		deviceID.addAttribute(spf.createName("xsi:type"), CWMP
				+ ":DeviceIdStruct");
		SOAPElement dis = deviceID.addChildElement("DeviceIdStruct");

		SOAPElement mf = dis.addChildElement("Manufacturer");
		mf.setAttribute("xsi:type", "xsd:string(64)");
		mf.setValue(manufacturer);

		SOAPElement oui = dis.addChildElement("OUI");
		oui.setAttribute("xsi:type", "xsd:string(6)");
		oui.setValue(manufacturerOUI);

		SOAPElement pc = dis.addChildElement("ProductClass");
		pc.setAttribute("xsi:type", "xsd:string(64)");
		pc.setValue(productClass);

		SOAPElement sn = dis.addChildElement("SerialNumber");
		sn.setAttribute("xsi:type", "xsd:string(64)");
		sn.setValue(serialNumber);

		SOAPElement event = body.addChildElement("Event", CWMP);
		event.setAttribute("SOAP-ENV:arrayType", "xsd:EventStruct[64]");
		SOAPElement es = event.addChildElement("EventStruct");
		es.addChildElement("EventCode").setValue("0 BOOTSTRAP");
		es.addChildElement("CommandKey").setValue("");
		es = event.addChildElement("EventStruct");
		es.addChildElement("EventCode").setValue("1 BOOT");
		es.addChildElement("CommandKey").setValue("");

		SOAPElement maxEnvelopes = body.addChildElement("MaxEnvelopes", CWMP);
		maxEnvelopes.setAttribute("xsi:type", "xsd:int");
		maxEnvelopes.setValue("1");

		SOAPElement currentTime = body.addChildElement("CurrentTime", CWMP);
		currentTime.setAttribute("xsi:type", "xsd:dateTime");
		currentTime.setValue(new Date().toString());

		SOAPElement retryCount = body.addChildElement("RetryCount", CWMP);
		retryCount.setAttribute("xsi:type", "xsd:int");
		retryCount.setValue(String.valueOf(count));

		SOAPElement parameterList = body.addChildElement("ParameterList", CWMP);
		parameterList.addAttribute(spf.createName("SOAP-ENV:arrayType"),
				"xsd:ParameterValueStruct[" + String.valueOf(names.size())
						+ "]");
		for (int i = 0; i < names.size(); i++) {
			SOAPElement param = parameterList
					.addChildElement("ParameterValueStruct");
			param.addChildElement("Name").setValue((String) names.get(i));
			SOAPElement v = param.addChildElement("Value");
			v.setValue((String) values.get(i));
			v.setAttribute("xsi:type", "xsd:string");
		}
	}

	@Override
	protected NameValue[] parseBody(SOAPBodyElement body, SOAPFactory f)
			throws SOAPException {
		// TODO Auto-generated method stub
		return null;
	}

	private void initData() {

		// Obtain the data file.
		File file = new File("Data.xml");
		// Create a DataReader to parse the data file.
		DataReader reader = new TreeDataReader(file);
//		DataReader reader = new TreePullReader(file);
		// Creater a InformData to get the specific parameter list.
		InformData informData = new InformData("InformData.xml");
		// Fill "names" and "values" lists which are used to create
		// "ParameterValueStruct"
		for (String s : informData.getParameterArray()) {
			names.add(s);
			values.add(reader.read(s));
		}
		// Fill other parameters.
		this.manufacturer = reader
				.read("InternetGatewayDevice.DeviceInfo.Manufacturer");
		this.manufacturerOUI = reader
				.read("InternetGatewayDevice.DeviceInfo.ManufacturerOUI");
		this.productClass = reader
				.read("InternetGatewayDevice.DeviceInfo.ProductClass");
		this.serialNumber = reader
				.read("InternetGatewayDevice.DeviceInfo.SerialNumber");
	}

	/**
	 * @return the names
	 */
	public List<String> getNames() {
		return names;
	}

	/**
	 * @param names
	 *            the names to set
	 */
	public void setNames(List<String> names) {
		this.names = names;
	}

	/**
	 * @return the values
	 */
	public List<String> getValues() {
		return values;
	}

	/**
	 * @param values
	 *            the values to set
	 */
	public void setValues(List<String> values) {
		this.values = values;
	}

	@Override
	protected void createBody(SOAPBodyElement body, SOAPFactory spf,
			NameValue[] nameValue) throws SOAPException {
		// TODO Auto-generated method stub

	}

	private String manufacturer;
	private String manufacturerOUI;
	private String productClass;
	private String serialNumber;
	private int count;
	private List<String> names;
	private List<String> values;

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -