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.jetspeed.capabilities;
018:
019: import java.util.Iterator;
020:
021: /**
022: * This interface provides lookup features on the capabilities supported
023: * by a client user agent.
024: *
025: * @author <a href="mailto:raphael@apache.org">Rapha\u00ebl Luta</a>
026: * @author <a href="mailto:burton@apache.org">Kevin A. Burton</a>
027: * @version $Id: CapabilityMap.java 516448 2007-03-09 16:25:47Z ate $
028: */
029: public interface CapabilityMap {
030:
031: /**
032: * Sets the client for the CapabilityMap
033: *
034: * @param client The client associated with this map
035: */
036: public void setClient(Client client);
037:
038: /**
039: * Returns the Client for the CapabilityMap
040: *
041: * @return The client associated with this map
042: */
043: public Client getClient();
044:
045: /**
046: * Add capability to the CapabilityMap
047: *
048: * @param capability
049: */
050: public void addCapability(Capability capability);
051:
052: /**
053: * Add Mimetype to the MimetypeMap
054: *
055: * @param mimetype
056: */
057: public void addMimetype(MimeType mimetype);
058:
059: /**
060: * Add MediaType to the MediaTypeMap
061: *
062: * @param Mediatype to add
063: */
064: public void addMediaType(MediaType mediatype);
065:
066: /**
067: * @return Returns the preferred MIME type for the current user-agent
068: */
069: public MimeType getPreferredType();
070:
071: /**
072: * @return Returns the preferred media type for the current user-agent
073: */
074: public MediaType getPreferredMediaType();
075:
076: /**
077: * Sets the preferred MediaType for this CapabilityMap
078: * @param MediaTypeEntry
079: */
080: public void setPreferredMediaType(MediaType type);
081:
082: /**
083: * Returns an ordered list of supported media-types, from most preferred
084: * to least preferred
085: */
086: public Iterator listMediaTypes();
087:
088: /**
089: * @return Returns the user-agent string
090: */
091: public String getAgent();
092:
093: /**
094: * @parm userAgent Agent from the request
095: *
096: * Set the userAgent in the capabilityMap
097: */
098: public void setAgent(String userAgent);
099:
100: /**
101: * @param CApabilityID
102: * @return Returns true if the current agent has the specified capabilityID
103: */
104: public boolean hasCapability(int cap);
105:
106: /**
107: * @param Capability
108: * @return returns true if the current agent has the specified capability
109: */
110: public boolean hasCapability(String capability);
111:
112: /**
113: * Get the mime types that this CapabilityMap supports.
114: * @return Returns an Iterator over the MimeType map
115: */
116: public Iterator getMimeTypes();
117:
118: /**
119: * @param MimeType
120: * @return Return true if this CapabilityMap supports the given MimeType
121: */
122: public boolean supportsMimeType(MimeType mimeType);
123:
124: /**
125: * Return true if this CapabilityMap supports the given media type
126: *
127: * @param media the name of a media type registered in the
128: * MediaType registry
129: *
130: * @return true is the capabilities of this agent at least match those
131: * required by the media type
132: */
133: public boolean supportsMediaType(String media);
134:
135: /**
136: * @return Create a map -> string representation
137: */
138: public String toString();
139:
140: }
|