protected List<VmTemplate> filterNotBaseTemplates(List<VmTemplate> templates) { List<VmTemplate> baseTemplates = new ArrayList<VmTemplate>(); for (VmTemplate template : templates) { if (template.getId().equals(template.getBaseTemplateId())) { baseTemplates.add(template); baseTemplateToSubTemplates.put(template.getId(), new ArrayList<VmTemplate>()); } } for (VmTemplate template : templates) { Guid baseTemplateId = template.getBaseTemplateId(); if (baseTemplateToSubTemplates.containsKey(baseTemplateId)) { baseTemplateToSubTemplates.get(baseTemplateId).add(template); } } for (List<VmTemplate> subversions : baseTemplateToSubTemplates.values()) { Collections.sort( subversions, new Comparator<VmTemplate>() { @Override public int compare(VmTemplate o1, VmTemplate o2) { return o2.getTemplateVersionNumber() - o1.getTemplateVersionNumber(); } }); } for (List<VmTemplate> subversions : baseTemplateToSubTemplates.values()) { subversions.add(0, createLatestTemplate(subversions.get(0))); } return baseTemplates; }
@Override protected MapSqlParameterSource createFullParametersMapper(VmTemplate template) { return createBaseParametersMapper(template) .addValue("child_count", template.getChildCount()) .addValue("name", template.getName()) .addValue("status", template.getStatus()) .addValue("is_disabled", template.isDisabled()) .addValue("template_type", template.getTemplateType().name()) .addValue("base_template_id", template.getBaseTemplateId()) .addValue("template_version_name", template.getTemplateVersionName()); }