001 /** 002 * Licensed to the Apache Software Foundation (ASF) under one 003 * or more contributor license agreements. See the NOTICE file 004 * distributed with this work for additional information 005 * regarding copyright ownership. The ASF licenses this file 006 * to you under the Apache License, Version 2.0 (the 007 * "License"); you may not use this file except in compliance 008 * with the License. You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018 019 package org.apache.hadoop.lib.server; 020 021 import org.apache.hadoop.lib.lang.XException; 022 023 /** 024 * Exception thrown by the {@link Server} class. 025 */ 026 public class ServerException extends XException { 027 028 /** 029 * Error codes use by the {@link Server} class. 030 */ 031 public static enum ERROR implements XException.ERROR { 032 S01("Dir [{0}] does not exist"), 033 S02("[{0}] is not a directory"), 034 S03("Could not load file from classpath [{0}], {1}"), 035 S04("Service [{0}] does not implement declared interface [{1}]"), 036 S05("[{0}] is not a file"), 037 S06("Could not load file [{0}], {1}"), 038 S07("Could not instanciate service class [{0}], {1}"), 039 S08("Could not load service classes, {0}"), 040 S09("Could not set service [{0}] programmatically -server shutting down-, {1}"), 041 S10("Service [{0}] requires service [{1}]"), 042 S11("Service [{0}] exception during status change to [{1}] -server shutting down-, {2}"); 043 044 private String msg; 045 046 /** 047 * Constructor for the error code enum. 048 * 049 * @param msg message template. 050 */ 051 private ERROR(String msg) { 052 this.msg = msg; 053 } 054 055 /** 056 * Returns the message template for the error code. 057 * 058 * @return the message template for the error code. 059 */ 060 @Override 061 public String getTemplate() { 062 return msg; 063 } 064 } 065 066 /** 067 * Constructor for sub-classes. 068 * 069 * @param error error code for the XException. 070 * @param params parameters to use when creating the error message 071 * with the error code template. 072 */ 073 protected ServerException(XException.ERROR error, Object... params) { 074 super(error, params); 075 } 076 077 /** 078 * Creates an server exception using the specified error code. 079 * The exception message is resolved using the error code template 080 * and the passed parameters. 081 * 082 * @param error error code for the XException. 083 * @param params parameters to use when creating the error message 084 * with the error code template. 085 */ 086 public ServerException(ERROR error, Object... params) { 087 super(error, params); 088 } 089 090 }