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 }