package com.hundsun.ares.studio.core.model;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Element;
import com.hundsun.ares.studio.core.model.converter.ExtendableModelConverter;
import com.hundsun.ares.studio.core.model.converter.IModelConverter;
public class ModulePropertyConverter extends ExtendableModelConverter implements IModelConverter {
private static final String INFO = "info";
private static ModulePropertyConverter instance;
public static ModulePropertyConverter getInstance() {
if (instance == null)
instance = new ModulePropertyConverter();
return instance;
}
public ModulePropertyConverter() {
}
@SuppressWarnings("unchecked")
@Override
protected void readNonExtendedProperties(Element root, Object info) {
ModuleProperty propertie = (ModuleProperty)info;
Element infoElement = root.element(INFO);
if (infoElement != null) {
List<Attribute> attributes = infoElement.attributes();
for (Attribute attr : attributes) {
propertie.setValue(attr.getName(), attr.getValue());
}
}
}
@Override
protected void writeNonExtendedProperties(Element root, Object info) {
ModuleProperty property = (ModuleProperty)info;
Element infoElement = root.addElement(INFO);
for (String key : property.properties.keySet()) {
infoElement.addAttribute(key, property.getString(key));
}
}
}