/*******************************************************************************
* Copyright (c) 2007, 2014 compeople AG and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* compeople AG - initial API and implementation
*******************************************************************************/
package org.eclipse.riena.navigation;
import org.eclipse.riena.core.injector.extension.ExtensionInterface;
import org.eclipse.riena.core.injector.extension.MapName;
import org.eclipse.riena.navigation.extension.ICommonNavigationAssemblyExtension;
/**
* Interface for a NavigationNodeType extension that defines how to create a
* node or a subtree in the application model tree.
*/
@ExtensionInterface
public interface INavigationAssemblyExtension extends ICommonNavigationAssemblyExtension {
String EXTENSIONPOINT = "org.eclipse.riena.navigation.assemblies"; //$NON-NLS-1$
/**
* Returns a sub-application definitions of this assembly.
*
* @return sub-application node definition
*/
@MapName("subapplication")
ISubApplicationNodeExtension getSubApplicationNode();
/**
* Returns a module group definitions of this assembly.
*
* @return module group node definition
*/
@MapName("modulegroup")
IModuleGroupNodeExtension getModuleGroupNode();
/**
* Returns a module definitions of this assembly.
*
* @return module node definition
*/
@MapName("module")
IModuleNodeExtension getModuleNode();
/**
* Returns a sub-module definitions of this assembly.
*
* @return sub-module node definition
*/
@MapName("submodule")
ISubModuleNodeExtension getSubModuleNode();
/**
* Returns the ID of the parent indicating where to insert a node or subtree
* created with this definition in the application model tree.
*
* @return ID of the parent node
*/
@MapName("parentTypeId")
String getParentNodeId();
/**
* Returns the index that this assembly takes in the system startup
* sequence. 0 or less indicates that automatic startup of this assembly is
* not desired.
*
* @return >0 start order; otherwise no auto start
*/
@MapName("autostartsequence")
int getStartOrder();
}