1 /*
2 * Copyright (c) 2009 Texas Instruments and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 *
8 * Contributors:
9 * Texas Instruments - initial implementation
10 *
11 * */
12 package xdc.tools.product;
13
14 /*!
15 * ======== IProductView ========
16 * Define a product as a logical group of RTSC modules
17 *
18 * This interface allows a product to define logical groups of RTSC
19 * modules delivered with it. Implementations of this interface are
20 * typically consumed within development environments like IDE's to
21 * render a graphical tree view of the product consisting of these
22 * groups.
23 *
24 * This is an experimental interface and is subject to change.
25 */
26 metaonlyinterface IProductView
27 {
28 /*!
29 * ======== ProductElemDesc ========
30 * ProductElemDesc structure
31 *
32 * This structure is used to define the logical tree "view" of a
33 * product. This view is composed of elements that are either modules
34 * or groups: modules at the leaves of the tree and groups elsewhere.
35 *
36 * @field(elemName) Name of element. Elements can be either
37 * groups or modules
38 * @field(moduleName) In case of a leaf node this field will
39 * contain the module name. For intermediate
40 * tree nodes the module name will be set to
41 * `null`
42 * @field(iconFileName) The name of the icon file that is associated
43 * with this element
44 * @field(elemArray) Array used to define children of a node.
45 */
46 struct ProductElemDesc {
47 String elemName; /*! Name of group or module */
48 String moduleName; /*! Name of module */
49 String iconFileName; /*! Icon file name representing element */
50 ProductElemDesc elemArray[]; /*! Array of `ProductElemDesc` */
51 };
52
53 /*!
54 * ======== homeModule ========
55 * Top-level module for this product
56 *
57 * The `homeModule` is a distinguished "top-level" module that is used
58 * by GUI's as a starting point, or "home page", to navigate to the
59 * other content managed by this product.
60 */
61 config String homeModule;
62
63 /*!
64 * ======== linksToArray ========
65 * Array of IDs of products accessable from this product's home module
66 *
67 * This array of product IDs is used to determine a hierarchical
68 * relationship between products and if a product's modules can be
69 * reached from another product's home page. If product A "links to"
70 * product B, then product B's home page can be closed so long as
71 * product A's home page is open.
72 */
73 config String linksToArray[];
74
75 /*!
76 * ======== getProductDescriptor ========
77 * Return this product's tree view
78 *
79 * This method is typically invoked by development tools like IDE's
80 * to get the product view tree structure.
81 *
82 * @a(returns) 83 * Returns root node of tree of `{@link #ProductElemDesc}` structures
84 */
85 ProductElemDesc getProductDescriptor();
86 }
87 /*
88 * @(#) xdc.tools.product; 1, 0, 0,52; 4-27-2011 15:34:00; /db/ztree/library/trees/xdctools/xdctools-e14x/src/
89 */
90