| /* |
| * Copyright (c) 2012, 2019 Oracle and/or its affiliates. All rights reserved. |
| * |
| * This program and the accompanying materials are made available under the |
| * terms of the Eclipse Public License v. 2.0, which is available at |
| * http://www.eclipse.org/legal/epl-2.0. |
| * |
| * This Source Code may also be made available under the following Secondary |
| * Licenses when the conditions for such availability set forth in the |
| * Eclipse Public License v. 2.0 are satisfied: GNU General Public License, |
| * version 2 with the GNU Classpath Exception, which is available at |
| * https://www.gnu.org/software/classpath/license.html. |
| * |
| * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0 |
| */ |
| |
| package org.glassfish.jersey.internal; |
| |
| import java.util.Collection; |
| |
| /** |
| * TODO: javadoc. |
| * |
| * @author Marek Potociar |
| */ |
| public interface PropertiesDelegate { |
| /** |
| * Returns the property with the given name registered in the current request/response |
| * exchange context, or {@code null} if there is no property by that name. |
| * <p> |
| * A property allows a JAX-RS filters and interceptors to exchange |
| * additional custom information not already provided by this interface. |
| * </p> |
| * <p> |
| * A list of supported properties can be retrieved using {@link #getPropertyNames()}. |
| * Custom property names should follow the same convention as package names. |
| * </p> |
| * |
| * @param name a {@code String} specifying the name of the property. |
| * @return an {@code Object} containing the value of the property, or |
| * {@code null} if no property exists matching the given name. |
| * @see #getPropertyNames() |
| */ |
| public Object getProperty(String name); |
| |
| |
| /** |
| * Returns an immutable {@link java.util.Collection collection} containing the property |
| * names available within the context of the current request/response exchange context. |
| * <p> |
| * Use the {@link #getProperty} method with a property name to get the value of |
| * a property. |
| * </p> |
| * |
| * @return an immutable {@link java.util.Collection collection} of property names. |
| * @see #getProperty |
| */ |
| public Collection<String> getPropertyNames(); |
| |
| |
| /** |
| * Binds an object to a given property name in the current request/response |
| * exchange context. If the name specified is already used for a property, |
| * this method will replace the value of the property with the new value. |
| * <p> |
| * A property allows a JAX-RS filters and interceptors to exchange |
| * additional custom information not already provided by this interface. |
| * </p> |
| * <p> |
| * A list of supported properties can be retrieved using {@link #getPropertyNames()}. |
| * Custom property names should follow the same convention as package names. |
| * </p> |
| * <p> |
| * If a {@code null} value is passed, the effect is the same as calling the |
| * {@link #removeProperty(String)} method. |
| * </p> |
| * |
| * @param name a {@code String} specifying the name of the property. |
| * @param object an {@code Object} representing the property to be bound. |
| */ |
| public void setProperty(String name, Object object); |
| |
| /** |
| * Removes a property with the given name from the current request/response |
| * exchange context. After removal, subsequent calls to {@link #getProperty} |
| * to retrieve the property value will return {@code null}. |
| * |
| * @param name a {@code String} specifying the name of the property to be removed. |
| */ |
| public void removeProperty(String name); |
| } |