01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17: package org.apache.pluto.internal;
18:
19: import javax.portlet.PreferencesValidator;
20: import javax.portlet.ValidatorException;
21:
22: import org.apache.pluto.descriptors.portlet.PortletDD;
23: import org.apache.pluto.descriptors.servlet.ServletDD;
24:
25: /**
26: * The PortletEntity encapsulates all data pertaining to a single portlet
27: * instance. This instance may appear zero or more times per user. The
28: * PortletEntity consists of two primary peices of information, the Portlet
29: * Definition as defined by the {@link PortletDD} and the Wrapping Servlet
30: * information as defined by the{@link ServletDD}
31: *
32: */
33: public interface PortletEntity {
34:
35: /**
36: * Returns the URI to the controller servlet that wraps this portlet.
37: * <p>
38: * Note: this method has been deprecated as of Pluto 1.1.2. Future versions
39: * of Pluto will use the <code>PortletInvokerService</code> for resolving
40: * the invoker url pattern.
41: *
42: * @return the URI to the controller servlet that wraps this portlet.
43: * @deprecated
44: */
45: String getControllerServletUri();
46:
47: /**
48: * Returns an array of default preferences of this portlet. The default
49: * preferences are retrieved from the portlet application descriptor.
50: * <p>
51: * Data retrieved from <code>portlet.xml</code> are injected into the domain
52: * object <code>PortletPreferenceDD</code>. This method converts the domain
53: * objects into <code>PortletPreference</code> objects.
54: * </p>
55: * <p>
56: * Note that if no value is bound to a given preference key,
57: * <code>PortletPreferenceDD.getValues()</code> will return an empty string
58: * list, but the value array of <code>PortletPreference</code> should be set
59: * to null (instead of an empty array).
60: * </p>
61: * <p>
62: * This method never returns null, but the values held by PortletPreference
63: * may be null.
64: * </p>
65: * @return the preference set
66: *
67: * @see org.apache.pluto.descriptors.portlet.PortletPreferenceDD
68: */
69: InternalPortletPreference[] getDefaultPreferences();
70:
71: /**
72: * Returns the portlet description. The return value cannot be NULL.
73: * @return the portlet description.
74: */
75: PortletDD getPortletDefinition();
76:
77: /**
78: * Returns the preferences validator instance for this portlet.
79: * One validator instance is created per portlet definition.
80: * @return the preferences validator instance for this portlet.
81: * @throws ValidatorException if fail to instantiate the validator.
82: */
83: PreferencesValidator getPreferencesValidator()
84: throws ValidatorException;
85:
86: }
|