20 package org.matsim.utils.objectattributes;
22 import java.io.UncheckedIOException;
23 import java.util.LinkedList;
24 import java.util.List;
26 import java.util.TreeMap;
28 import com.google.inject.Inject;
29 import org.apache.logging.log4j.LogManager;
30 import org.apache.logging.log4j.Logger;
43 final static String TAG_OBJECT_ATTRIBUTES =
"objectAttributes";
44 final static String TAG_OBJECT =
"object";
45 final static String TAG_ATTRIBUTE =
"attribute";
46 final static String ATTR_OBJECTID =
"id";
47 final static String ATTR_ATTRIBUTENAME =
"name";
48 final static String ATTR_ATTRIBUTECLASS =
"class";
59 public void writeFile(
final String filename)
throws UncheckedIOException {
62 writeDoctype(TAG_OBJECT_ATTRIBUTES,
"http://matsim.org/files/dtd/objectattributes_v1.dtd");
64 List<Tuple<String, String>> xmlAttributes =
new LinkedList<Tuple<String, String>>();
65 for (Map.Entry<String, Map<String, Object>> entry :
this.attributes.attributes.entrySet()) {
66 xmlAttributes.add(super.createTuple(ATTR_OBJECTID, entry.getKey()));
68 xmlAttributes.clear();
70 Map<String, Object> objAttributes =
new TreeMap<String, Object>();
71 objAttributes.putAll(entry.getValue());
73 for (Map.Entry<String, Object> objAttribute : objAttributes.entrySet()) {
74 Class<?> clazz = objAttribute.getValue().getClass();
77 xmlAttributes.add(super.createTuple(ATTR_ATTRIBUTENAME, objAttribute.getKey()));
78 xmlAttributes.add(super.createTuple(ATTR_ATTRIBUTECLASS, clazz.getCanonicalName()));
80 xmlAttributes.clear();
99 return this.converter.putAttributeConverter(clazz, converter);
final void writeXmlHead()
void writeFile(final String filename)
ObjectAttributesXmlWriter(final ObjectAttributes attributes)
final ObjectAttributesConverter converter
AttributeConverter removeAttributeConverter(final Class<?> clazz)
void putAttributeConverters(final Map< Class<?>, AttributeConverter<?>> converters)
final ObjectAttributes attributes
AttributeConverter removeAttributeConverter(final Class<?> clazz)
final void writeContent(String content, boolean allowWhitespaces)
final void openFile(final String filename)
final void writeStartTag(String tagname, List< Tuple< String, String >> attributes)
AttributeConverter putAttributeConverter(final Class<?> clazz, final AttributeConverter converter)
void putAttributeConverters(final Map< Class<?>, AttributeConverter<?>> converters)
String convertToString(Object o)
final void writeEndTag(String tagname)
final void writeDoctype(String rootTag, String dtdUrl)