1 /*
2 * Licensed to The Apereo Foundation under one or more contributor license
3 * agreements. See the NOTICE file distributed with this work for additional
4 * information regarding copyright ownership.
5 *
6 *
7 * The Apereo Foundation licenses this file to you under the Educational
8 * Community License, Version 2.0 (the "License"); you may not use this file
9 * except in compliance with the License. You may obtain a copy of the License
10 * at:
11 *
12 * http://opensource.org/licenses/ecl2.txt
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
16 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
17 * License for the specific language governing permissions and limitations under
18 * the License.
19 *
20 */
21 package org.opencastproject.security.urlsigning.exception;
22
23 import static com.google.common.base.MoreObjects.toStringHelper;
24 /**
25 * An {@link Exception} thrown if there is a problem signing a URL.
26 */
27 public class UrlSigningException extends Exception {
28 private static final long serialVersionUID = 594382838580879079L;
29
30 private enum Reason {
31 URL_NOT_SUPPORTED, INTERNAL_PROVIDER_ERROR;
32 };
33
34 /** The reason for the exception. */
35 private Reason reason;
36
37 public UrlSigningException(Throwable t) {
38 super(t);
39 }
40
41 private UrlSigningException(Reason reason) {
42 this.reason = reason;
43 }
44
45 public static UrlSigningException urlNotSupported() {
46 return new UrlSigningException(Reason.URL_NOT_SUPPORTED);
47 }
48
49 public static UrlSigningException internalProviderError() {
50 return new UrlSigningException(Reason.INTERNAL_PROVIDER_ERROR);
51 }
52
53 public Reason getReason() {
54 return reason;
55 }
56
57 @Override
58 public String toString() {
59 return toStringHelper(this).add("Reason", reason).toString();
60 }
61 }