/*
* Copyright (c) 2015 EMC Corporation
* All Rights Reserved
*/
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Marshaller;
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
public class XMLUnMarshalTest {
public static void main(String[] args) throws Exception {
File f = new File("C:\\Users\\kanchg\\Desktop\\ViPR\\ExportUpdate.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(FSExportUpdateParams.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
FSExportUpdateParams menu =
(FSExportUpdateParams) jaxbUnmarshaller.unmarshal(f);
System.out.println(menu.getExportRulesToAdd().size());
//
// FSExportUpdateParams menu = new FSExportUpdateParams();
// ExportRules rules = new ExportRules();
// ExportRule rule = new ExportRule();
// EndPoint1 point = new EndPoint1();
// point.setEndPoint("Test1");
//
// EndPoint1 point1 = new EndPoint1();
// point1.setEndPoint("Test2");
//
// List endpoints = new ArrayList();endpoints.add(point);endpoints.add(point1);
//
// rule.setReadOnlyHosts(endpoints);
//
// List exportRules = new ArrayList();exportRules.add(rule);exportRules.add(rule);
//
// rules.setExportRules(exportRules);
// menu.setExportRulesToAdd(exportRules);
ExportRule rule1 = new ExportRule();
ExportRule rule2 = new ExportRule();
ExportRule rule3 = new ExportRule();
List<ExportRule> list = new ArrayList<>();
list.add(rule1);
list.add(rule2);
list.add(rule3);
ExportRulesAPIResponseModel rules = new ExportRulesAPIResponseModel();
rules.setExportRules(list);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.marshal(rules, System.out);
}
}
@XmlRootElement(name = "filesystem_export_update")
class FSExportUpdateParams {
private List<ExportRules> exportRulesToAdd;
private List<ExportRules> exportRulesToDelete;
private List<ExportRules> exportRulesToModify;
/**
* Default Constructor
*/
public FSExportUpdateParams() {
}
@XmlElement(name = "add", required = false)
public List<ExportRules> getExportRulesToAdd() {
exportRulesToAdd = isEmpty(exportRulesToAdd);
return exportRulesToAdd;
}
/**
* List of exportRules to be added
*
* @param exportRulesToAdd
*/
public void setExportRulesToAdd(List<ExportRules> exportRulesToAdd) {
this.exportRulesToAdd = exportRulesToAdd;
}
@XmlElement(name = "delete", type = ExportRules.class)
public List<ExportRules> getExportRulesToDelete() {
exportRulesToAdd = isEmpty(exportRulesToAdd);
return exportRulesToDelete;
}
/**
* List of exportRules to be deleted
*
* @param exportRulesToAdd
*/
public void setExportRulesToDelete(List<ExportRules> exportRulesToDelete) {
this.exportRulesToDelete = exportRulesToDelete;
}
@XmlElement(name = "modify", required = false)
public List<ExportRules> getExportRulesToModify() {
exportRulesToAdd = isEmpty(exportRulesToAdd);
return exportRulesToModify;
}
/**
* List of exportRules to be modified
*
* @param exportRulesToAdd
*/
public void setExportRulesToModify(List<ExportRules> exportRulesToModify) {
this.exportRulesToModify = exportRulesToModify;
}
private List<ExportRules> isEmpty(List<ExportRules> type) {
return (type != null) ? type : new ArrayList<ExportRules>();
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("Add Requests : ").append(
(exportRulesToAdd != null) ? exportRulesToAdd.size() : 0);
sb.append("Delete Requests : ").append(
(exportRulesToDelete != null) ? exportRulesToDelete.size() : 0);
sb.append("Modify Requests : ").append(
(exportRulesToModify != null) ? exportRulesToModify.size() : 0);
return sb.toString();
}
}