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 }