]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.project/src/org/simantics/project/features/registry/IProjectFeatureExtension.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.project / src / org / simantics / project / features / registry / IProjectFeatureExtension.java
1 /*******************************************************************************
2  * Copyright (c) 2007, 2010 Association for Decentralized Information Management
3  * in Industry THTH ry.
4  * All rights reserved. This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License v1.0
6  * which accompanies this distribution, and is available at
7  * http://www.eclipse.org/legal/epl-v10.html
8  *
9  * Contributors:
10  *     VTT Technical Research Centre of Finland - initial API and implementation
11  *******************************************************************************/
12 package org.simantics.project.features.registry;
13
14 import java.util.Collection;
15
16 import org.eclipse.core.runtime.CoreException;
17 import org.simantics.project.features.IProjectFeature;
18
19 /**
20  * @author Tuukka Lehtonen
21  */
22 public interface IProjectFeatureExtension {
23
24     /**
25      * @return id of this extension
26      */
27     String getId();
28
29     /**
30      * @return label of this extension
31      */
32     String getLabel();
33
34     /**
35      * @return description of this extension
36      */
37     String getDescription();
38
39     /**
40      * Informs whether this project feature should be published to users in UI's
41      * that visualize user selectable project features in some manner.
42      * 
43      * For example top level project features should always be published in
44      * order to give Simantics Project Manager users the possibility to select
45      * the feature to be used in their project.
46      * 
47      * @return <code>true</code> if the extension is published
48      */
49     boolean isPublished();
50
51     /**
52      * @return
53      */
54     Collection<ProjectFeatureReference> requires();
55
56     /**
57      * @return
58      */
59     Collection<InjectedDependency> injections();
60
61     /**
62      * @return
63      */
64     Collection<GroupReference> installGroups();
65
66     /**
67      * @return a new instance of the IProjectFeature described by this extension
68      */
69     IProjectFeature newInstance() throws CoreException;
70
71 }