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.om.folder;
018:
019: import java.util.List;
020: import java.util.Locale;
021:
022: import org.apache.jetspeed.om.common.GenericMetadata;
023:
024: /**
025: * This interface describes the object used to define
026: * portal site menus comprised of nested menus, options,
027: * and separators.
028: *
029: * @author <a href="mailto:rwatler@apache.org">Randy Watler</a>
030: * @version $Id: MenuDefinition.java 516448 2007-03-09 16:25:47Z ate $
031: */
032: public interface MenuDefinition {
033: /**
034: * ANY_PROFILE_LOCATOR - wildcard value for profile locator names
035: */
036: String ANY_PROFILE_LOCATOR = MenuOptionsDefinition.ANY_PROFILE_LOCATOR;
037:
038: /**
039: * getName - get menu name
040: *
041: * @return menu name
042: */
043: String getName();
044:
045: /**
046: * setName - set menu name
047: *
048: * @param name menu name
049: */
050: void setName(String name);
051:
052: /**
053: * getOptions - get comma separated menu options if not specified as elements
054: *
055: * @return option paths specification
056: */
057: String getOptions();
058:
059: /**
060: * setOptions - set comma separated menu options if not specified as elements
061: *
062: * @param option option paths specification
063: */
064: void setOptions(String options);
065:
066: /**
067: * getDepth - get depth of inclusion for folder menu options
068: *
069: * @return inclusion depth
070: */
071: int getDepth();
072:
073: /**
074: * setDepth - set depth of inclusion for folder menu options
075: *
076: * @param depth inclusion depth
077: */
078: void setDepth(int depth);
079:
080: /**
081: * isPaths - get generate ordered path options for specified options
082: *
083: * @return paths options flag
084: */
085: boolean isPaths();
086:
087: /**
088: * setPaths - set generate ordered path options for specified options
089: *
090: * @param paths paths options flag
091: */
092: void setPaths(boolean paths);
093:
094: /**
095: * isRegexp - get regexp flag for interpreting specified options
096: *
097: * @return regexp flag
098: */
099: boolean isRegexp();
100:
101: /**
102: * setRegexp - set regexp flag for interpreting specified options
103: *
104: * @param regexp regexp flag
105: */
106: void setRegexp(boolean regexp);
107:
108: /**
109: * getProfile - get profile locator used to filter specified options
110: *
111: * @return profile locator name
112: */
113: String getProfile();
114:
115: /**
116: * setProfile - set profile locator used to filter specified options
117: *
118: * @param locatorName profile locator name
119: */
120: void setProfile(String locatorName);
121:
122: /**
123: * getOrder - get comma separated regexp ordering patterns for options
124: *
125: * @return ordering patterns list
126: */
127: String getOrder();
128:
129: /**
130: * setOrder - set comma separated regexp ordering patterns for options
131: *
132: * @param order ordering patterns list
133: */
134: void setOrder(String order);
135:
136: /**
137: * getSkin - get skin name for menu
138: *
139: * @return skin name
140: */
141: String getSkin();
142:
143: /**
144: * setSkin - set skin name for menu
145: *
146: * @param name skin name
147: */
148: void setSkin(String name);
149:
150: /**
151: * getTitle - get default title for menu
152: *
153: * @return title text
154: */
155: String getTitle();
156:
157: /**
158: * setTitle - set default title for menu
159: *
160: * @param title title text
161: */
162: void setTitle(String title);
163:
164: /**
165: * getShortTitle - get default short title for menu
166: *
167: * @return short title text
168: */
169: String getShortTitle();
170:
171: /**
172: * setShortTitle - set default short title for menu
173: *
174: * @param title short title text
175: */
176: void setShortTitle(String title);
177:
178: /**
179: * getTitle - get locale specific title for menu from metadata
180: *
181: * @param locale preferred locale
182: * @return title text
183: */
184: String getTitle(Locale locale);
185:
186: /**
187: * getShortTitle - get locale specific short title for menu from metadata
188: *
189: * @param locale preferred locale
190: * @return short title text
191: */
192: String getShortTitle(Locale locale);
193:
194: /**
195: * getMetadata - get generic metadata instance for menu
196: *
197: * @return metadata instance
198: */
199: GenericMetadata getMetadata();
200:
201: /**
202: * getMenuElements - get ordered list of menu options,
203: * nested menus, separators, included
204: * menu, and excluded menu elements
205: *
206: * @return element list
207: */
208: List getMenuElements();
209:
210: /**
211: * setMenuElements - set ordered list of menu options
212: *
213: * @param elements element list
214: */
215: void setMenuElements(List elements);
216: }
|