// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.JunctionChecker.reader;
import java.util.Vector;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamException;
import org.openstreetmap.josm.plugins.JunctionChecker.filter.Filter;
/**
* @author joerg
*/
public class XMLFilterReader extends XMLReader {
Vector<Filter> filters;
Filter filter;
public XMLFilterReader(String filename) {
super(filename);
filters = new Vector<>();
}
@Override
public void parseXML() {
String tempValue = "";
String tempKeyValue = "";
try {
while (parser.hasNext()) {
switch (parser.getEventType()) {
case XMLStreamConstants.START_ELEMENT:
tempValue = parser.getAttributeValue(null, "entity");
if (tempValue.equals("k")) {
filter = new Filter();
filter.setKeyValue(parser.getLocalName());
tempKeyValue = parser.getLocalName();
}
if (tempValue.equalsIgnoreCase("v")) {
filter.setTagValue(parser.getLocalName());
}
break;
case XMLStreamConstants.END_ELEMENT:
if (tempKeyValue.equalsIgnoreCase(parser.getLocalName())) {
filters.add(filter);
}
break;
}
parser.next();
}
} catch (XMLStreamException e) {
e.printStackTrace();
}
}
public Filter[] getFilters() {
Filter[] filterarray = new Filter[filters.size()];
return filters.toArray(filterarray);
}
}