001 /* 002 * #%L 003 * License Maven Plugin 004 * 005 * $Id: ProjectLicenseInfo.java 13877 2011-04-07 21:57:59Z pgier $ 006 * $HeadURL: http://svn.codehaus.org/mojo/tags/license-maven-plugin-1.0/src/main/java/org/codehaus/mojo/license/model/ProjectLicenseInfo.java $ 007 * %% 008 * Copyright (C) 2010 - 2011 Codehaus 009 * %% 010 * This program is free software: you can redistribute it and/or modify 011 * it under the terms of the GNU Lesser General Public License as 012 * published by the Free Software Foundation, either version 3 of the 013 * License, or (at your option) any later version. 014 * 015 * This program is distributed in the hope that it will be useful, 016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 018 * GNU General Lesser Public License for more details. 019 * 020 * You should have received a copy of the GNU General Lesser Public 021 * License along with this program. If not, see 022 * <http://www.gnu.org/licenses/lgpl-3.0.html>. 023 * #L% 024 */ 025 package org.codehaus.mojo.license.model; 026 027 import org.apache.maven.artifact.Artifact; 028 import org.apache.maven.model.License; 029 030 import java.util.ArrayList; 031 import java.util.List; 032 033 /** 034 * Contains the license information for a single project/dependency 035 * 036 * @author pgier 037 * @since 1.0 038 */ 039 public class ProjectLicenseInfo 040 { 041 private String groupId; 042 043 private String artifactId; 044 045 private String version; 046 047 private List<License> licenses = new ArrayList<License>(); 048 049 private String licenseResolutionResult; 050 051 public String getLicenseResolutionResult() 052 { 053 return licenseResolutionResult; 054 } 055 056 public void setLicenseResolutionResult( String licenseResolutionResult ) 057 { 058 this.licenseResolutionResult = licenseResolutionResult; 059 } 060 061 /** 062 * Default constructor 063 */ 064 public ProjectLicenseInfo() 065 { 066 067 } 068 069 public ProjectLicenseInfo( String groupId, String artifactId, String version ) 070 { 071 this.groupId = groupId; 072 this.artifactId = artifactId; 073 this.version = version; 074 } 075 076 public String getGroupId() 077 { 078 return groupId; 079 } 080 081 public void setGroupId( String groupId ) 082 { 083 this.groupId = groupId; 084 } 085 086 public String getArtifactId() 087 { 088 return artifactId; 089 } 090 091 public void setArtifactId( String artifactId ) 092 { 093 this.artifactId = artifactId; 094 } 095 096 public String getVersion() 097 { 098 return version; 099 } 100 101 public void setVersion( String version ) 102 { 103 this.version = version; 104 } 105 106 public List<License> getLicenses() 107 { 108 return licenses; 109 } 110 111 public void setLicenses( List<License> licenses ) 112 { 113 this.licenses = licenses; 114 } 115 116 public void addLicense( License license ) 117 { 118 licenses.add( license ); 119 } 120 121 public String toString() 122 { 123 return getId(); 124 } 125 126 /** 127 * The unique ID for the project 128 * 129 * @return String containing "groupId:artifactId" 130 */ 131 public String getId() 132 { 133 return groupId + ":" + artifactId; 134 } 135 136 /** 137 * Compare this artifact to another ProjectLicenseInfo, or compare to an instance 138 * of org.apache.maven.artifact.Artifact 139 */ 140 public boolean equals( Object compareTo ) 141 { 142 if ( compareTo instanceof ProjectLicenseInfo ) 143 { 144 ProjectLicenseInfo compare = (ProjectLicenseInfo) compareTo; 145 if ( groupId.equals( compare.getGroupId() ) && artifactId.equals( compare.getArtifactId() ) ) 146 { 147 return true; 148 } 149 } 150 if ( compareTo instanceof Artifact ) 151 { 152 Artifact compare = (Artifact) compareTo; 153 if ( groupId.equals( compare.getGroupId() ) && artifactId.equals( compare.getArtifactId() ) ) 154 { 155 return true; 156 } 157 } 158 return false; 159 } 160 161 public int hashCode() 162 { 163 return getId().hashCode(); 164 } 165 166 }