1 package com.loribel.commons.abstraction; 2 3 /*** 4 * Abstraction to represent a hierarchy. 5 * A SimpleNode is a abstraction that : 6 * - has a value 7 * - has a labelIcon representation 8 * - may has children 9 * <br /> 10 * An other abstraction with setter exists : {@link GB_SimpleNodeSet}. 11 * See the default implementation : 12 * - {@link com.loribel.commons.util.impl.GB_SimpleNodeAbstract} 13 * - {@link com.loribel.commons.util.impl.GB_SimpleNodeImpl} 14 * - {@link com.loribel.commons.file.GB_FileSimpleNode} 15 * 16 * @author Grégory Borelli 17 */ 18 public interface GB_SimpleNode 19 extends 20 GB_LabelIconOwner 21 { 22 /*** 23 * Return the value of this node. 24 * 25 * @return Object 26 */ 27 Object getValue(); 28 29 /*** 30 * Return the child with index i. 31 * 32 * @param a_index int - 33 * 34 * @return GB_SimpleNode 35 */ 36 GB_SimpleNode getChildAt( 37 int a_index); 38 39 /*** 40 * Return the count of the children. 41 * 42 * @return int 43 */ 44 int getChildCount(); 45 46 /*** 47 * Return an array of the children. 48 * 49 * @return GB_SimpleNode[] 50 */ 51 GB_SimpleNode[] getChildArray(); 52 53 /*** 54 * Return the last child. 55 * 56 * @return GB_SimpleNode 57 */ 58 GB_SimpleNode getLastChild(); 59 60 /*** 61 * Return the last child for level a_level. 62 * If level = 1 return the last child of this node. 63 * 64 * @param a_level int - the level must be equal or superior than 1 65 * 66 * @return GB_SimpleNode 67 */ 68 GB_SimpleNode getLastChild( 69 int a_level); 70 71 }