1   /*
2    * Copyright 2000-2001,2004 The Apache Software Foundation.
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    * 
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    * 
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  /* 
18  
19   */
20  
21  package org.apache.wsrp4j.producer.provider;
22  
23  import java.util.Iterator;
24  
25  /**
26   * Provides an interface to a class encapsulating a ProducerOfferedPortlet-
27   * object.
28   * 
29   * @author <a href="mailto:stefan.behl@de.ibm.com">Stefan Behl</a>
30   *
31   * @see     Portlet
32   */
33  public interface ProducerOfferedPortlet extends Portlet {
34  
35      /**
36       * Returns a flag indicating whether registration is required or not.
37       *
38       * @return    Boolean flag.
39       */
40      public boolean isRegistrationRequired();
41  
42      /**
43       * Sets the flag indicating whether registration is required or not. 
44       *
45       * @param  required  Boolean to be assigned to the requiresReg.-flag.
46       */
47      public void setRegistrationRequired(boolean required);
48  
49      /**
50       * Adds a clone referencing a ConsumerConfiguredPortlet.
51       *
52       */
53      public void addClone(ConsumerConfiguredPortlet cce);
54  
55      /**
56       * Deletes a clone-handle referencing a ConsumerConfiguredPortlet.
57       *
58       * @param   cce  String representing the portlet-handle of the
59       *                 corresponding ConsumerConfiguredPortlet.
60       */
61      public void deleteClone(ConsumerConfiguredPortlet cce);
62  
63      /**
64       * Returns an iterator containing all clones.
65       *
66       * @return  Iterator
67       */
68      public Iterator getClones();
69  
70      /**
71       * Redefines the clone-method of the Cloneable-interface. This is necessary
72       * as the clone-method is declared protected in the Object class.
73       *
74       * @return  Object Object representing the cloned object.
75       */
76      public Object clone();
77  
78  }