/** * Copyright 2006 OCLC Online Computer Library Center Licensed under the Apache * License, Version 2.0 (the "License"); you may not use this file except in * compliance with the License. You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law * or agreed to in writing, software distributed under the License is * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the specific language * governing permissions and limitations under the License. */ package info.openurl.oom; import java.util.Map; /** * The class contains information from that HTTP request * that has been transformed into the OpenURL Object Model. * * @author Jeffrey A. Young */ public interface OpenURLRequest { /** * This Map contains key/value pairs defined by the OpenURL * spec as "OpenURL keys". OpenURL keys don't deserve the * special attention given them in the spec. They are artifacts * of the peculiar and unfriendly transports used in the spec * as examples: * openurl-by-ref, openurl-by-val, and openurl-inline. * * @return a Map containing String key and String[] values * for OpenURL administrative keys. * @deprecated Proper Transports should consume these in * the process of generating ContextObjects and not defer * them to the Service classes. */ public Map getOpenURLKeys(); /** * This Map contains key/value pairs defined by the OpenURL * spec as "foreign keys". Foreign keys don't deserve the * special attention given them in the spec. They are artifacts * of the peculiar and unfriendly transports used in the spec * as examples: * openurl-by-ref, openurl-by-val, and openurl-inline. * * @return a Map containing String key and String[] values * for OpenURL foreign keys. * @deprecated Proper Transports should consume these in * the process of generating ContextObjects and not defer * them to the Service classes. */ public Map getForeignKeys(); /** * ContextObjects represent, in the form of OpenURL Object Model * classes, the sequence of Services implied in a web service * request. For example, the Transport might generate a login * ContextObject followed by an edit ContextObject, if it sees * that the Requester hasn't logged in yet. * * @return an array of ContextObjects */ public ContextObject[] getContextObjects(); }