View Javadoc

1   /*
2    * EL4J, the Extension Library for the J2EE, adds incremental enhancements to
3    * the spring framework, http://el4j.sf.net
4    * Copyright (C) 2005 by ELCA Informatique SA, Av. de la Harpe 22-24,
5    * 1000 Lausanne, Switzerland, http://www.elca.ch
6    *
7    * EL4J is published under the GNU Lesser General Public License (LGPL)
8    * Version 2.1. See http://www.gnu.org/licenses/
9    *
10   * This program is distributed in the hope that it will be useful,
11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13   * GNU Lesser General Public License for more details.
14   *
15   * For alternative licensing, please contact info@elca.ch
16   */
17  package ch.elca.el4j.util.objectwrapper.interfaces;
18  
19  import java.util.Collection;
20  
21  import ch.elca.el4j.util.objectwrapper.Wrappable;
22  
23  /**
24   * Apsect of having links to other objects. These links can be simple (fields containing the targets)
25   * or collections containing targets.
26   *
27   * @svnLink $Revision: 4083 $;$Date: 2010-01-08 13:32:17 +0100 (Fr, 08. Jan 2010) $;$Author: jonasha $;$URL: https://el4j.svn.sourceforge.net/svnroot/el4j/branches/el4j_3_1/el4j/framework/modules/hibernate/src/main/java/ch/elca/el4j/util/objectwrapper/interfaces/Linked.java $
28   *
29   * @author David Bernhard (DBD)
30   */
31  public interface Linked extends Wrappable {
32  
33  	/**
34  	 * @return The names of all (simple) links this object has.
35  	 */
36  	String[] getLinkNames();
37  	
38  	/**
39  	 * @return The names of all collection links this object has.
40  	 */
41  	String[] getCollectionLinkNames();
42  	
43  	/**
44  	 * Get a linked object by name.
45  	 * @param linkName The link name (from getLinkNames).
46  	 * @return The linked object.
47  	 */
48  	Object getlinkByName(String linkName);
49  	
50  	/**
51  	 * Get a collection of links by name.
52  	 * @param name The collection link name.
53  	 * @return The collection.
54  	 */
55  	Collection<?> getCollectionLinkByName(String name);
56  	
57  	/**
58  	 * Convenience method that returns all linked objects regardless of their location. 
59  	 * @return All linked objects.
60  	 */
61  	Object[] getAllLinked();
62  }