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.Dependency; 022 023 import tinlizard.util.Messages; 024 025 import org.codehaus.plexus.util.StringUtils; 026 027 import org.kohsuke.stapler.StaplerRequest; 028 import org.kohsuke.stapler.StaplerResponse; 029 030 /** 031 * Decorate Artifact for Stapler. 032 */ 033 public final class ArtifactWeb extends DependencyWeb { 034 public ArtifactWeb(final Dependency c) { 035 super(c); 036 037 if (StringUtils.isBlank(c.getGroupId())) { 038 throw new IllegalStateException(Messages.error_1020()); 039 } 040 041 if (StringUtils.isBlank(c.getArtifactId())) { 042 throw new IllegalStateException(Messages.error_1021()); 043 } 044 } 045 046 public String getName() { 047 return getArtifactId(); 048 } 049 050 public String getVersion() { 051 return null; 052 } 053 054 public Object getDynamic(final String token, final StaplerRequest req, final StaplerResponse rsp) { 055 if (StringUtils.isNotBlank(token)) { 056 Dependency dependency = new Dependency(); 057 dependency.setGroupId(subject.getGroupId()); 058 dependency.setArtifactId(subject.getArtifactId()); 059 dependency.setVersion(token); 060 061 return new DependencyWeb(dependency); 062 } 063 064 return null; 065 } 066 }