20 package net.sf.gridarta.model.filter;
22 import java.util.Map.Entry;
25 import nu.xom.Element;
26 import nu.xom.Elements;
27 import nu.xom.ParentNode;
28 import org.jetbrains.annotations.NotNull;
29 import org.jetbrains.annotations.Nullable;
53 final Element result =
new Element(
"value");
55 final Element enabled =
new Element(
"enabled");
56 enabled.appendChild(Boolean.toString(filterConfig.isEnabled()));
57 result.appendChild(enabled);
59 final Element inverted =
new Element(
"inverted");
60 inverted.appendChild(Boolean.toString(filterConfig.isInverted()));
61 result.appendChild(inverted);
63 for (
final Entry<String,
FilterConfig<?, ?>> entry : filterConfig.getEntries().entrySet()) {
64 final String key = entry.getKey();
66 final Element filterValue =
toXML(subFilterConfig);
67 final ParentNode subFilter =
new Element(
"subfilter");
68 final Element fName =
new Element(
"name");
69 fName.appendChild(key);
70 subFilter.appendChild(fName);
71 subFilter.appendChild(filterValue);
72 result.appendChild(subFilter);
79 final Element value =
new Element(
"value");
81 final Element enabled =
new Element(
"enabled");
82 enabled.appendChild(Boolean.toString(filterConfig.isEnabled()));
83 value.appendChild(enabled);
85 for (
final String key : filterConfig.getProperties()) {
86 final Element
property =
new Element(
"property");
87 property.appendChild(filterConfig.getProperty(key));
88 value.appendChild(property);
104 filterConfig.getFilter().resetConfig(filterConfig);
105 if (element == null) {
109 final Elements valueElements = element.getChildElements(
"value");
110 if (valueElements.size() == 0) {
113 final Element value = valueElements.get(0);
115 final boolean enabled = Boolean.valueOf(
XmlUtils.
getChild(value,
"enabled").getValue().trim());
116 filterConfig.setEnabled(enabled);
117 filterConfig.setInverted(Boolean.valueOf(
XmlUtils.
getChild(value,
"inverted").getValue().trim()));
118 for (
final Element filterElement :
new ElementsIterable(value.getChildElements(
"subfilter"))) {
119 final String name =
XmlUtils.
getChild(filterElement,
"name").getValue().trim();
121 fromXML(filterElement, subFilterConfig);
127 if (element == null) {
131 final Elements valueElements = element.getChildElements(
"value");
132 if (valueElements.size() == 0) {
135 final Element value = valueElements.get(0);
137 final boolean enabled = Boolean.valueOf(
XmlUtils.
getChild(value,
"enabled").getValue().trim());
138 filterConfig.setEnabled(enabled);
139 for (
final Element property :
new ElementsIterable(value.getChildElements(
"property"))) {
141 final String pValue =
XmlUtils.
getChild(property,
"value").getValue().trim();
142 filterConfig.setProperty(pName, pValue);
155 final Element prevElement =
element;
158 filterConfig.accept(toXMLFilterConfigVisitor);
159 assert element != null;
162 element = prevElement;
172 final Element prevElement = this.
element;
175 filterConfig.accept(fromXMLFilterConfigVisitor);
177 this.element = prevElement;
XML related utility functions.
void fromXML(@NotNull final Element element, @NotNull final FilterConfig<?, ?> filterConfig)
Import the filter configuration settings.
final FilterConfigVisitor fromXMLFilterConfigVisitor
The FilterConfigVisitor for converting FilterConfig instances from XML representation.
final FilterConfigVisitor toXMLFilterConfigVisitor
The FilterConfigVisitor for converting FilterConfig instances to XML representation.
Base package of all Gridarta classes.
Converts FilterConfig to and from XML representation.
Interface for visitors of filter configs.
static Element getChild(@NotNull final Element parentElement, @NotNull final String childName)
Returns a child Element of a parent element.
Element element
The Element instance being converted.
Element toXML(@NotNull final FilterConfig<?, ?> filterConfig)
Export the filter configuration settings.
Filter configuration of NamedGameObjectMatcherFilter instances.
A FilterConfig that has a name.