001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017: package org.apache.wicket.settings;
018:
019: import org.apache.wicket.util.lang.EnumeratedType;
020:
021: /**
022: * Settings interface for configuring exception handling related settings.
023: * <p>
024: * <i>unexpectedExceptionDisplay </i> (defaults to SHOW_EXCEPTION_PAGE) -
025: * Determines how exceptions are displayed to the developer or user
026: * <p>
027: * <i>throwExceptionOnMissingResource </i> (defaults to true) - Set to true to
028: * throw a runtime exception if a required string resource is not found. Set to
029: * false to return the requested resource key surrounded by pairs of question
030: * mark characters (e.g. "??missingKey??")
031: *
032: * @author Igor Vaynberg (ivaynberg)
033: */
034: public interface IExceptionSettings {
035: /**
036: * Enumerated type for different ways of displaying unexpected exceptions.
037: */
038: public static final class UnexpectedExceptionDisplay extends
039: EnumeratedType {
040: private static final long serialVersionUID = 1L;
041:
042: UnexpectedExceptionDisplay(final String name) {
043: super (name);
044: }
045: }
046:
047: /**
048: * Indicates that an exception page appropriate to development should be
049: * shown when an unexpected exception is thrown.
050: */
051: public static final UnexpectedExceptionDisplay SHOW_EXCEPTION_PAGE = new UnexpectedExceptionDisplay(
052: "SHOW_EXCEPTION_PAGE");
053: /**
054: * Indicates a generic internal error page should be shown when an
055: * unexpected exception is thrown.
056: */
057: public static final UnexpectedExceptionDisplay SHOW_INTERNAL_ERROR_PAGE = new UnexpectedExceptionDisplay(
058: "SHOW_INTERNAL_ERROR_PAGE");
059:
060: /**
061: * Indicates that no exception page should be shown when an unexpected
062: * exception is thrown.
063: */
064: public static final UnexpectedExceptionDisplay SHOW_NO_EXCEPTION_PAGE = new UnexpectedExceptionDisplay(
065: "SHOW_NO_EXCEPTION_PAGE");
066:
067: /**
068: * @return Whether to throw an exception when a missing resource is
069: * requested
070: * @deprecated use
071: * {@link IResourceSettings#getThrowExceptionOnMissingResource()}
072: * instead
073: */
074: boolean getThrowExceptionOnMissingResource();
075:
076: /**
077: * @return Returns the unexpectedExceptionDisplay.
078: */
079: UnexpectedExceptionDisplay getUnexpectedExceptionDisplay();
080:
081: /**
082: * @param throwExceptionOnMissingResource
083: * Whether to throw an exception when a missing resource is
084: * requested
085: * @deprecated use
086: * {@link IResourceSettings#setThrowExceptionOnMissingResource(boolean)}
087: * instead
088: */
089: void setThrowExceptionOnMissingResource(
090: final boolean throwExceptionOnMissingResource);
091:
092: /**
093: * The exception display type determines how the framework displays
094: * exceptions to you as a developer or user.
095: * <p>
096: * The default value for exception display type is SHOW_EXCEPTION_PAGE. When
097: * this value is set and an unhandled runtime exception is thrown by a page,
098: * a redirect to a helpful exception display page will occur.
099: * <p>
100: * This is a developer feature, however, and you may want to instead show an
101: * internal error page without developer details that allows a user to start
102: * over at the application's home page. This can be accomplished by setting
103: * the exception display type to SHOW_INTERNAL_ERROR_PAGE.
104: * <p>
105: * Finally, if you are having trouble with the exception display pages
106: * themselves, you can disable exception displaying entirely with the value
107: * SHOW_NO_EXCEPTION_PAGE. This will cause the framework to re-throw any
108: * unhandled runtime exceptions after wrapping them in a ServletException
109: * wrapper.
110: *
111: * @param unexpectedExceptionDisplay
112: * The unexpectedExceptionDisplay to set.
113: */
114: void setUnexpectedExceptionDisplay(
115: UnexpectedExceptionDisplay unexpectedExceptionDisplay);
116: }
|