OutputMapAdapter.java
package org.docascode.api.core.chrono;
import org.docascode.api.core.chrono.generated.Outputs;
import javax.xml.bind.annotation.adapters.XmlAdapter;
import java.util.Map;
public class OutputMapAdapter extends XmlAdapter<Outputs, OutputMap<String>> {
@Override
public OutputMap<String> unmarshal(Outputs outputs) {
OutputMap<String> map = new OutputMap<>();
for (Outputs.Output e : outputs.getOutput())
{
map.put(e.getName(), e.getValue());
}
return map;
}
@Override
public Outputs marshal(OutputMap<String> map) {
if (map == null || map.entrySet().isEmpty()){
return null;
} else {
Outputs modeller = new Outputs();
for (Map.Entry<String, String> entry : map.entrySet()) {
Outputs.Output e = new Outputs.Output();
e.setName(entry.getKey());
e.setValue(entry.getValue());
modeller.getOutput().add(e);
}
return modeller;
}
}
}