/**
* Generates an xml element from this pojo. Translating the fields like described
* in the class description.
* @param document The document in which the nodes should be.
* @param rootName This is to use another name for the root element than the
* simple class name.
* @param pojo The pojo to take the fields from.
* @param attributes The fields which should be used as attributes and not
* as elements.
* @return The create element representing the provided pojo.
* @throws ParserConfigurationException Might throw a ParserConfigurationException.
* @throws IllegalAccessException Might throw a IllegalAccessException.
* @throws InstantiationException Might throw a InstantiationException.
*/
public Element generateSimpleElement(final Document document, final String rootName,
final Object pojo, final List<String> attributes)
throws ParserConfigurationException,
IllegalAccessException, InstantiationException {
Element rootNode = document.createElementNS(getDefaultNamespace(), rootName);
List<Field> fields = getNonTransientSimpleFields(pojo.getClass());
for (Field field : fields) {
field.setAccessible(true);
String fieldName = field.getName();
if (field.get(pojo) != null) {
if (!attributes.contains(fieldName)) {
Element element = document.createElementNS(getDefaultNamespace(), getElementName(field));
// handle CDATAs
if (field.isAnnotationPresent(XmlValue.class)) {
CDATASection cdata = document.createCDATASection(field.get(pojo).toString());
element.appendChild(cdata);
}
else {
element.setTextContent(field.get(pojo).toString());
}
rootNode.appendChild(element);
}
else {
rootNode.setAttribute(getAttributeName(field), field.get(pojo).toString());
}
}
}
return rootNode;
}
DOMFactory.java 文件源码
java
阅读 22
收藏 0
点赞 0
评论 0
项目:c2mon
作者:
评论列表
文章目录