001 /* 002 * ---------------------------------------------------------------------- 003 * Copyright (C) 2009 Enrique Lara (k957@68k.org) 004 * 005 * TinLizard is free software; you can redistribute it and/or 006 * modify it under the terms of the GNU Lesser General Public License 007 * as published by the Free Software Foundation; either version 3.0 008 * of the License, or (at your option) any later version. 009 * 010 * TinLizard is distributed in the hope that it will be useful, 011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 013 * GNU Lesser General Public License for more details. 014 * 015 * You should have received a copy of the GNU Lesser General Public License 016 * along with TinLizard. If not, see http://www.gnu.org/licenses/. 017 * ---------------------------------------------------------------------- 018 */ 019 package tinlizard.web; 020 021 import tinlizard.model.Codeline; 022 import tinlizard.model.Dependency; 023 024 import tinlizard.util.Messages; 025 026 import java.util.ArrayList; 027 import java.util.Collection; 028 import java.util.HashSet; 029 import java.util.Set; 030 031 import org.codehaus.plexus.util.StringUtils; 032 033 import org.kohsuke.stapler.StaplerRequest; 034 import org.kohsuke.stapler.StaplerResponse; 035 036 /** 037 * Decorate Group for Stapler. 038 */ 039 public final class GroupWeb extends DependencyWeb { 040 public GroupWeb(final Dependency c) { 041 super(c); 042 043 if (StringUtils.isBlank(c.getGroupId())) { 044 throw new IllegalStateException(Messages.error_1020()); 045 } 046 } 047 048 public String getName() { 049 return getGroupId(); 050 } 051 052 public String getArtifactId() { 053 return null; 054 } 055 056 public String getVersion() { 057 return null; 058 } 059 060 //XXX first level collection? 061 public Collection<ArtifactWeb> getArtifacts() { 062 Collection<ArtifactWeb> artifacts = new ArrayList<ArtifactWeb>(); 063 Set<String> artifactIds = new HashSet<String>(); 064 065 artifactIds.addAll(Dependency.findAllArtifactIds(subject.getGroupId())); 066 artifactIds.addAll(Codeline.findAllArtifactIds(subject.getGroupId())); 067 068 for (String artifactIdId : artifactIds) { 069 Dependency dependency = new Dependency(); 070 dependency.setGroupId(subject.getGroupId()); 071 dependency.setArtifactId(artifactIdId); 072 073 artifacts.add(new ArtifactWeb(dependency)); 074 } 075 076 return artifacts; 077 } 078 079 public Object getDynamic(final String token, final StaplerRequest req, final StaplerResponse rsp) { 080 if (StringUtils.isNotBlank(token)) { 081 Dependency dependency = new Dependency(); 082 dependency.setGroupId(subject.getGroupId()); 083 dependency.setArtifactId(token); 084 085 return new ArtifactWeb(dependency); 086 } 087 088 return null; 089 } 090 }