01: /*****************************************************************************
02: * Java Plug-in Framework (JPF)
03: * Copyright (C) 2004-2007 Dmitry Olshansky
04: *
05: * This library is free software; you can redistribute it and/or
06: * modify it under the terms of the GNU Lesser General Public
07: * License as published by the Free Software Foundation; either
08: * version 2.1 of the License, or (at your option) any later version.
09: *
10: * This library 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 GNU
13: * Lesser General Public License for more details.
14: *
15: * You should have received a copy of the GNU Lesser General Public
16: * License along with this library; if not, write to the Free Software
17: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18: *****************************************************************************/package org.java.plugin.registry;
19:
20: /**
21: * This interface abstracts a plug-in element - a thing that is declared in
22: * plug-in or plug-in fragment descriptor.
23: * @param <T> type of plug-in element
24: * @version $Id$
25: */
26: public interface PluginElement<T extends PluginElement<T>> extends
27: Identity, Documentable<T> {
28: /**
29: * Returns plug-in descriptor, this element belongs to. This method
30: * should never return <code>null</code>.
31: * @return plug-in descriptor, this element belongs to
32: */
33: PluginDescriptor getDeclaringPluginDescriptor();
34:
35: /**
36: * Returns descriptor of plug-in fragment that contributes this element.
37: * This method may return <code>null</code>, if element is contributed by
38: * plug-in directly.
39: * @return descriptor of plug-in fragment that contributes this element
40: */
41: PluginFragment getDeclaringPluginFragment();
42: }
|