001/*
002 * #%L
003 * HAPI FHIR - Server Framework
004 * %%
005 * Copyright (C) 2014 - 2025 Smile CDR, Inc.
006 * %%
007 * Licensed under the Apache License, Version 2.0 (the "License");
008 * you may not use this file except in compliance with the License.
009 * You may obtain a copy of the License at
010 *
011 *      http://www.apache.org/licenses/LICENSE-2.0
012 *
013 * Unless required by applicable law or agreed to in writing, software
014 * distributed under the License is distributed on an "AS IS" BASIS,
015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
016 * See the License for the specific language governing permissions and
017 * limitations under the License.
018 * #L%
019 */
020package ca.uhn.fhir.rest.api.server;
021
022public interface IHasServletAttributes {
023
024        /**
025         * Gets an attribute from the servlet request. Attributes are used for interacting with servlet request
026         * attributes to communicate between servlet filters. These methods should not be used to pass information
027         * between interceptor methods. Use {@link RequestDetails#getUserData()} instead to pass information
028         * between interceptor methods.
029         *
030         * @param theAttributeName The attribute name
031         * @return The attribute value, or null if the attribute is not set
032         */
033        Object getServletAttribute(String theAttributeName);
034
035        /**
036         * Sets an attribute on the servlet request. Attributes are used for interacting with servlet request
037         * attributes to communicate between servlet filters. These methods should not be used to pass information
038         * between interceptor methods. Use {@link RequestDetails#getUserData()} instead to pass information
039         * between interceptor methods.
040         *
041         * @param theAttributeName The attribute name
042         * @param theAttributeValue The attribute value
043         */
044        void setServletAttribute(String theAttributeName, Object theAttributeValue);
045}