View Javadoc
1   /*******************************************************************************
2    * Copyhacked (H) 2012-2025.
3    * This program and the accompanying materials
4    * are made available under no term at all, use it like
5    * you want, but share and discuss it
6    * every time possible with every body.
7    * 
8    * Contributors:
9    *      ron190 at ymail dot com - initial implementation
10   ******************************************************************************/
11  package com.jsql.model.bean.database;
12  
13  /**
14   * Class used by the model to properly define components of the database.
15   * When the model ends a process of injection, it builds the corresponding database elements
16   * and provides them to the view.
17   * You can traverse elements from columns, to its corresponding table, to its corresponding database,
18   * inverse isn't required (database>table>column is not used)
19   * Concern only databases, tables and columns, values are raw data directly processed by the view
20   */
21  public abstract class AbstractElementDatabase {
22      
23      /**
24       * Label of the current element.
25       */
26      protected String elementValue;
27  
28      /**
29       * Traverse upward, and return the parent.
30       */
31      public abstract AbstractElementDatabase getParent();
32      
33      /**
34       * Return the number of elements contained by current element :<br>
35       * - for database: number of tables,<br>
36       * - for table: number of rows.<br>
37       */
38      public abstract int getChildCount();
39      
40      /**
41       * Return a readable label displayed by the view.
42       */
43      public abstract String getLabelWithCount();
44      
45      /**
46       * Return the label of current element.
47       */
48      @Override
49      public String toString() {
50          return this.elementValue;
51      }
52      
53      public void setElementValue(String elementValue) {
54          this.elementValue = elementValue;
55      }
56  }