OutputMapAdapter.java

  1. package org.docascode.api.core.chrono;

  2. import org.docascode.api.core.chrono.generated.Outputs;

  3. import javax.xml.bind.annotation.adapters.XmlAdapter;
  4. import java.util.Map;

  5. public class OutputMapAdapter extends XmlAdapter<Outputs, OutputMap<String>> {
  6.     @Override
  7.     public OutputMap<String> unmarshal(Outputs outputs) throws Exception {
  8.         OutputMap<String> map = new OutputMap<String>();
  9.         for (Outputs.Output e : outputs.getOutput())
  10.         {
  11.             map.put(e.getName(), e.getValue());
  12.         }
  13.         return map;
  14.     }

  15.     @Override
  16.     public Outputs marshal(OutputMap<String> map) throws Exception {
  17.         if (map == null || map.entrySet().isEmpty()){
  18.             return null;
  19.         } else {
  20.             Outputs modeller = new Outputs();
  21.             for (Map.Entry<String, String> entry : map.entrySet()) {
  22.                 Outputs.Output e = new Outputs.Output();
  23.                 e.setName(entry.getKey());
  24.                 e.setValue(entry.getValue());
  25.                 modeller.getOutput().add(e);
  26.             }
  27.             return modeller;
  28.         }
  29.     }
  30. }