001 package org.apache.maven.artifact;
002
003 /*
004 * Licensed to the Apache Software Foundation (ASF) under one
005 * or more contributor license agreements. See the NOTICE file
006 * distributed with this work for additional information
007 * regarding copyright ownership. The ASF licenses this file
008 * to you under the Apache License, Version 2.0 (the
009 * "License"); you may not use this file except in compliance
010 * with the License. You may obtain a copy of the License at
011 *
012 * http://www.apache.org/licenses/LICENSE-2.0
013 *
014 * Unless required by applicable law or agreed to in writing,
015 * software distributed under the License is distributed on an
016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017 * KIND, either express or implied. See the License for the
018 * specific language governing permissions and limitations
019 * under the License.
020 */
021
022 /**
023 * Exception thrown when the identity of an artifact can not be established,
024 * eg. one of groupId, artifactId, version or type is null.
025 */
026 public class InvalidArtifactRTException
027 extends RuntimeException
028 {
029
030 private final String groupId;
031 private final String artifactId;
032 private final String version;
033 private final String type;
034 private final String baseMessage;
035
036 public InvalidArtifactRTException( String groupId,
037 String artifactId,
038 String version,
039 String type,
040 String message )
041 {
042 this.groupId = groupId;
043 this.artifactId = artifactId;
044 this.version = version;
045 this.type = type;
046 this.baseMessage = message;
047 }
048
049 public InvalidArtifactRTException( String groupId,
050 String artifactId,
051 String version,
052 String type,
053 String message,
054 Throwable cause )
055 {
056 super( cause );
057
058 this.groupId = groupId;
059 this.artifactId = artifactId;
060 this.version = version;
061 this.type = type;
062 this.baseMessage = message;
063 }
064
065 public String getMessage()
066 {
067 return "For artifact {" + getArtifactKey() + "}: " + getBaseMessage();
068 }
069
070 public String getBaseMessage()
071 {
072 return baseMessage;
073 }
074
075 public String getArtifactId()
076 {
077 return artifactId;
078 }
079
080 public String getGroupId()
081 {
082 return groupId;
083 }
084
085 public String getType()
086 {
087 return type;
088 }
089
090 public String getVersion()
091 {
092 return version;
093 }
094
095 public String getArtifactKey()
096 {
097 return groupId + ":" + artifactId + ":" + version + ":" + type;
098 }
099
100 }