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