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
    19     *  logical groups of RTSC modules delivered with it. Implementations
    20     *  maybe consumed within development environments like IDE's to render a
    21     *  graphical tree view of the product comprising of these groups.
    22     *  This is an experimental interface and is subject to change.
    23     *
    24     */ 
    25    metaonly interface IProductView
    26    {
    27        /*!
    28         *  ======== ProductElemDesc ======== 
    29         *  ProductElemDesc structure
    30         * 
    31         *  Structure that should be used by the implementor to
    32         *  define the logical tree "view" of the product. The product view is 
    33         *  composed of elements that are either modules or groups.
    34         *  Groups can contain other groups or modules. The implementor will 
    35         *  start with a root node and then logically build a tree
    36         *  comprising of groups and modules.
    37         *
    38         *  @field(elemName)        Name of element. Elements can be either
    39         *                          groups or modules
    40         *  @field(moduleName)      In case of a leaf node this field will
    41         *                          contain the module name. For intermediate
    42         *                          tree nodes the module name will be set to 
    43         *                          `null`
    44         *  @field(iconFileName)    The name of the icon file that is associated
    45         *                          with this element
    46         *  @field(elemArray)       Array used to define children of a node.
    47         */ 
    48        metaonly struct ProductElemDesc {
    49            String elemName;             /*! Name of group or module */
    50            String moduleName;           /*! Name of module */
    51            String iconFileName;         /*! Icon file name representing element */
    52            ProductElemDesc elemArray[]; /*! Array of `ProductElemDesc` */
    53        };
    54        
    55        /*!
    56         *  ======== getProductDescriptor ========
    57         *  Return product descriptor
    58         *
    59         *  This method is typically invoked by development tools like IDE's 
    60         *  to get the product view tree structure.
    61         *
    62         *  @a(returns)
    63         *  Returns root node of the tree of `{@link #ProductElemDesc}` structures
    64         */ 
    65        ProductElemDesc getProductDescriptor();
    66    }
    67    /*
    68     *  @(#) xdc.tools.product; 1, 0, 0,38; 8-17-2010 16:39:21; /db/ztree/library/trees/xdctools/xdctools-d43x/src/
    69     */
    70