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.locator;
018:
019: /**
020: * LocatorDescriptor
021: *
022: * @author <a href="mailto:taylor@apache.org">David Sean Taylor</a>
023: * @version $Id: LocatorDescriptor.java 516448 2007-03-09 16:25:47Z ate $
024: */
025: public interface LocatorDescriptor {
026: public final static String PARAM_TYPE = "type";
027: public final static String PARAM_MEDIA_TYPE = "media-type";
028: public final static String PARAM_NAME = "name";
029: public final static String PARAM_LANGUAGE = "language";
030: public final static String PARAM_COUNTRY = "country";
031: public final static String TYPE_EMAIL = "emails";
032: public final static String TYPE_PORTLET = "portlets";
033:
034: /*
035: * Gets the unique template locator string, which is a combination of the params
036: * The string must follow the one the sequences below, where bracketed items are optional:
037: *
038: * template/<templateType>/[media-type/<mediaType>]/[language/<language>]/[country/<country>]]/name/<templateName
039: *
040: * @return The template locator as a string
041: */
042: String toString();
043:
044: /*
045: * Gets the path locator string, which is a combination of the params without the name tags.
046: * The string must follow the one the sequences below, where bracketed items are optional:
047: *
048: * <templateType>/[<mediaType>]/[<language>]/[<country>]]/<templateName>
049: *
050: * @return The template locator path
051: */
052: String toPath();
053:
054: /*
055: * Gets the template type parameter for this template.
056: * Any value is valid if there the service supports it.
057: * Known values are email, portlet.
058: *
059: * @return The template type parameter for this template.
060: */
061: String getType();
062:
063: /*
064: * Sets the template type parameter for this template.
065: * Any value is valid if there the service supports it.
066: * Known values are email, portlet.
067: *
068: * @param The template type parameter for this template.
069: */
070: void setType(String type);
071:
072: /*
073: * Gets the resource name parameter for this template.
074: *
075: * @return The resource name parameter for this template.
076: */
077: String getName();
078:
079: /*
080: * Sets the resource name parameter for this template.
081: *
082: * @param name The resource name parameter for this template.
083: */
084: void setName(String name);
085:
086: /*
087: * Gets the media type parameter for this template.
088: * Media types are values such as html, wml, xml ...
089: * TODO: support for 2 or more media types
090: *
091: * @return The media type parameter for this template.
092: */
093: String getMediaType();
094:
095: /*
096: * Sets the media type parameter for this template.
097: * Media types are values such as html, wml, xml ...
098: * TODO: support for 2 or more media types
099: *
100: * @param mediaType The media type parameter for this template.
101: */
102: void setMediaType(String mediaType);
103:
104: /*
105: * Gets the language parameter for this template.
106: * Language values are ISO-639 standard language abbreviations
107: * en, fr, de, ...
108: *
109: * @return The language parameter for this template.
110: */
111: String getLanguage();
112:
113: /*
114: * Sets the language parameter for this template.
115: * Language values are ISO-639 standard language abbreviations
116: * en, fr, de, ...
117: *
118: * @param language The language parameter for this template.
119: */
120: void setLanguage(String language);
121:
122: /*
123: * Gets the country code parameter for this template.
124: * Country code values are ISO-3166 standard country code abbreviations.
125: * GB, US, FR, CA, DE, ...
126: *
127: * @return The country code parameter for this template.
128: */
129: String getCountry();
130:
131: /*
132: * Sets the country code parameter for this template.
133: * Country code values are ISO-3166 standard country code abbreviations.
134: * GB, US, FR, CA, DE, ...
135: *
136: * @param country The country code parameter for this template.
137: */
138: void setCountry(String country);
139:
140: /**
141: * @see Object#clone
142: * @return an instance copy of this object
143: */
144: Object clone() throws java.lang.CloneNotSupportedException;
145:
146: }
|