package fr.mch.mdo.restaurant.services.business.managers.assembler;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import fr.mch.mdo.logs.ILoggerBean;
import fr.mch.mdo.restaurant.beans.IMdoBean;
import fr.mch.mdo.restaurant.beans.IMdoDaoBean;
import fr.mch.mdo.restaurant.beans.IMdoDtoBean;
import fr.mch.mdo.utils.IManagerAssembler;
public abstract class AbstractAssembler implements IManagerAssembler, ILoggerBean
{
@Override
public Set<IMdoDtoBean> marshal(Set<? extends IMdoBean> set) {
Set<IMdoDtoBean> result = new LinkedHashSet<IMdoDtoBean>();
this.marshal(result, set);
return result;
}
@Override
public List<IMdoDtoBean> marshal(List<? extends IMdoBean> list) {
List<IMdoDtoBean> result = new ArrayList<IMdoDtoBean>();
this.marshal(result, list);
return result;
}
private void marshal(Collection<IMdoDtoBean> collections, Collection<? extends IMdoBean> collection) {
if (collection != null) {
for (IMdoBean iMdoBean : collection) {
collections.add(marshal((IMdoDaoBean) iMdoBean));
}
}
}
@Override
public Set<IMdoDaoBean> unmarshal(Set<? extends IMdoBean> set, IMdoDaoBean... parents) {
Set<IMdoDaoBean> result = new HashSet<IMdoDaoBean>();
this.unmarshal(result, set, parents);
return result;
}
@Override
public List<IMdoDaoBean> unmarshal(List<? extends IMdoBean> list, IMdoDaoBean... parents) {
List<IMdoDaoBean> result = new ArrayList<IMdoDaoBean>();
this.unmarshal(result, list, parents);
return result;
}
private void unmarshal(Collection<IMdoDaoBean> collections, Collection<? extends IMdoBean> collection, IMdoDaoBean... parents) {
if (collection != null) {
for (IMdoBean iMdoBean : collection) {
IMdoDaoBean bean = unmarshal((IMdoDtoBean) iMdoBean, parents);
collections.add(bean);
}
}
}
protected Map<Long, String> getLabels(Map<Long, String> labels) {
Map<Long, String> result = new HashMap<Long, String>();
if (labels != null) {
result = new LinkedHashMap<Long, String>(labels.size());
for (Long key : labels.keySet()) {
result.put(key, labels.get(key));
}
}
return result;
}
}