1 package com.atlassian.plugins.rest.module;
2
3 import com.atlassian.plugin.Plugin;
4
5 public class InvalidVersionException extends RuntimeException {
6 private final String invalidVersion;
7 private final Plugin plugin;
8 private final RestModuleDescriptor moduleDescriptor;
9
10 InvalidVersionException(String invalidVersion) {
11 this(null, null, invalidVersion);
12 }
13
14 InvalidVersionException(Plugin plugin, RestModuleDescriptor moduleDescriptor, InvalidVersionException e) {
15 this(plugin, moduleDescriptor, e.getInvalidVersion());
16 }
17
18 private InvalidVersionException(Plugin plugin, RestModuleDescriptor moduleDescriptor, String invalidVersion) {
19 this.plugin = plugin;
20 this.moduleDescriptor = moduleDescriptor;
21 this.invalidVersion = invalidVersion;
22 }
23
24 public String getInvalidVersion() {
25 return invalidVersion;
26 }
27
28 @Override
29 public String getMessage() {
30 if (invalidVersion == null) {
31 return "The REST module descriptor '" + moduleDescriptor + "'defined by plugin '" + plugin + "' doesn't specify a version, this is a required attribute. "
32 + "Please sepcify a version in the format 'major[.minor][.micro][.classifier]'";
33 } else {
34 return "The version (" + invalidVersion + ")set on the REST module descriptor '" + moduleDescriptor + "' of plugin '" + plugin + "' is not valid. " +
35 "It must follow the following pattern 'major[.minor][.micro][.classifier]'";
36 }
37 }
38 }