Я создал Map для хранения значений всех тегов в теле SOAPMessage, чтобы ключи Map были именами узлов, а значения - текстовым содержимым. У меня есть объект, в котором у меня уже есть поля, названные в честь имен узлов, и мне нужно установить их значения в соответствии с их аналогами на карте.
Скажем, у меня есть узел с именем "Summary" в SOAPMessage, там будет ключ Map с именем "Summary", а также поле объекта с именем "Summary". Мне нужно, чтобы поле объекта "Сводка" было установлено в качестве значения Map.get ("Сводка").
Я знаю, что мог бы просто заполнить свой код сеттерами для каждого из полей, но есть лиспособ установить весь объект из карты?
Это метод, в котором я создал карту.
private static Map<String, String> mapIncidentInfo(SOAPMessage soapResponse) throws SOAPException {
Map<String, String> fields = new HashMap<String, String>();
NodeList nodes = soapResponse.getSOAPBody().getFirstChild().getChildNodes();
for (int i = 0; i < nodes.getLength(); i++) {
Node node = nodes.item(i);
fields.put(node.getNodeName(), node.getTextContent());
}
return fields;
}
Это можно использовать в качестве примера класса объекта:
public class IncidentPO {
private String Submitter;
private String Submit_Date;
private String Last_Modified_By;
private String Last_Modified_Date;
private String Status;
private String Short_Description;
public IncidentPO(String Submitter, String Submit_Date, String Last_Modified_By, String Last_Modified_Date, String Status, String Short_Description) {
this.Submitter = Submitter;
this.Submit_Date = Submit_Date;
this.Last_Modified_By = Last_Modified_By;
this.Last_Modified_Date = Last_Modified_Date;
this.Status = Status;
this.Short_Description = Short_Description;
//getters and setters here