AttachMapAdapter.java
package org.docascode.api.core.chrono;
import org.docascode.api.core.chrono.generated.AttachedArtifacts;
import org.docascode.api.core.chrono.generated.BaseArtifact;
import javax.xml.bind.annotation.adapters.XmlAdapter;
import java.util.Map;
public class AttachMapAdapter extends XmlAdapter<AttachedArtifacts, AttachMap<String,BaseArtifact>> {
@Override
public AttachMap<String, BaseArtifact> unmarshal(AttachedArtifacts attachArtifact){
AttachMap<String,BaseArtifact> map = new AttachMap<>();
for (AttachedArtifacts.Attach e : attachArtifact.getAttach())
{
BaseArtifact b = new BaseArtifact();
b.setOutputs(e.getOutputs());
b.setFile(e.getFile());
map.put(e.getClassifier(), b);
}
return map;
}
@Override
public AttachedArtifacts marshal(AttachMap<String, BaseArtifact> map) {
if (map == null || map.entrySet().isEmpty()) {
return null;
} else {
AttachedArtifacts modeller = new AttachedArtifacts();
for (Map.Entry<String, BaseArtifact> entry : map.entrySet()) {
AttachedArtifacts.Attach e = new AttachedArtifacts.Attach();
e.setClassifier(entry.getKey());
e.setFile(entry.getValue().getFile());
e.setOutputs(entry.getValue().getOutputs());
modeller.getAttach().add(e);
}
return modeller;
}
}
}