package de.cinovo.cloudconductor.server.web.impl; /* * #%L * cloudconductor-server * %% * Copyright (C) 2013 - 2014 Cinovo AG * %% * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. * #L% */ import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Set; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import com.google.common.collect.Sets; import de.cinovo.cloudconductor.api.model.ReportPackage; import de.cinovo.cloudconductor.server.dao.ITemplateDAO; import de.cinovo.cloudconductor.server.model.EPackageVersion; import de.cinovo.cloudconductor.server.model.ETemplate; import de.cinovo.cloudconductor.server.web.CSViewModel; import de.cinovo.cloudconductor.server.web.helper.AWebPage; import de.cinovo.cloudconductor.server.web.interfaces.IReport; import de.taimos.cxf_renderer.model.RenderedUI; /** * Copyright 2013 Cinovo AG<br> * <br> * * @author psigloch * */ public class WebReportImpl extends AWebPage implements IReport { @Autowired private ITemplateDAO dTemplate; @Override protected String getTemplateFolder() { return "report"; } @Override protected void init() { // nothing to do } @Override protected String getNavElementName() { return "Report"; } @Override @Transactional public RenderedUI view() { // Build hosts model. List<ETemplate> templates = this.dTemplate.findList(); Set<EPackageVersion> installedPackages = Sets.newHashSet(); for (ETemplate temp : templates) { for (EPackageVersion rpm : temp.getPackageVersions()) { installedPackages.add(rpm); } } List<ReportPackage> packagesModel = new ArrayList<>(); for (EPackageVersion pkg : installedPackages) { // Add package model to packages model. ReportPackage packageModel = new ReportPackage(pkg.getPkg().getName(), pkg.getVersion()); packagesModel.add(packageModel); } Collections.sort(packagesModel); // Fill template with models and return. final CSViewModel vm = this.createView(); vm.addModel("packages", packagesModel); return vm.render(); } }