001// Licensed under the Apache License, Version 2.0 (the "License");
002// you may not use this file except in compliance with the License.
003// You may obtain a copy of the License at
004//
005// http://www.apache.org/licenses/LICENSE-2.0
006//
007// Unless required by applicable law or agreed to in writing, software
008// distributed under the License is distributed on an "AS IS" BASIS,
009// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
010// See the License for the specific language governing permissions and
011// limitations under the License.
012
013package org.apache.tapestry5.http;
014
015import org.apache.tapestry5.http.services.CorsHandler;
016import org.apache.tapestry5.http.services.CorsHttpServletRequestFilter;
017import org.apache.tapestry5.http.services.HttpServletRequestFilter;
018
019/**
020 * Enumeration that defines the possible outcomes of 
021 * {@link CorsHandler#handle(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)}
022 * @see CorsHandler
023 * @see CorsHttpServletRequestFilter
024 * @since 5.8.2
025 */
026public enum CorsHandlerResult
027{
028    /**
029     * The next {@linkplain CorsHandler} should be called. 
030     * Usually returned when the CORS handler didn't actually processed the request.
031     */
032    CONTINUE_CORS_PROCESSING,
033    
034    /**
035     * No other {@linkplain CorsHandler} should be called and request processing
036     * should resume (i.e. {@linkplain CorsHttpServletRequestFilter} calls 
037     * {@link HttpServletRequestFilter#service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.apache.tapestry5.http.services.HttpServletRequestHandler)}.
038     * Usually returned when the handler actually processed the request.
039     */
040    CONTINUE_REQUEST_PROCESSING,
041    
042    /**
043     * The request processing should stop immediately. Usually used with CORS preflight requests.
044     */
045    STOP_REQUEST_PROCESSING
046}