SEO Domain Index
Crisopeya IM
v1.0.0

net.crisopeya.product.SEO_Domain_Index_rg
Class SEO_Domain_Index_rgStaticScheme

java.lang.Object
  extended by net.crisopeya.product.SEO_Domain_Index_rg.SEO_Domain_Index_rgStaticScheme
Direct Known Subclasses:
SEO_Domain_Index_rgScheme

public class SEO_Domain_Index_rgStaticScheme
extends Object

Holds all the SEO Domain Index (external link) application defined requirements. It is used by the CRISOPEYA Platform logic, together with the SEO_Domain_Index_rgStaticModel to retrieve SEO Domain Index (external link) IM scheme information.

It also contains all the required information to generate an updated version of the application.

Scheme Information

This class is a member of the Crisopeya IM Scheme Framework. The IM scheme information is divided into six classes according to the application layer scope and the interface implementation, as shown in the following diagram:

Crisopeya IM Scheme 
 Framework Diagram


For additional information about the Crisopeya IM Scheme Framework see SEO_Domain_Index_rgStaticModel, SEO_Domain_Index_rgModel, SEO_Domain_Index_rgDbStaticModel, SEO_Domain_Index_rgDbModel, SEO_Domain_Index_rgUiStaticModel and SEO_Domain_Index_rgUiModel

Java Interfaces limitation to define static methods

The Java programming language does not support static method declarations in an Interface. To provide the CRISOPEYA Platform the possibility to access that information through the public Scheme interface, the SEO_Domain_Index_rgScheme utility class is implemented.

This same approach is used in all Crisopeya IM Scheme Framework classes, as shown in the following diagram:

Crisopeya IM Scheme Interfaces 
 Diagram



Inmutable Scheme

For the management of the CRISOPEYA SEO Domain Index (external link) Information Module scheme, java.util.List lists are used to store scheme information, instead of arrays, because Java arrays objects cannot be immutable. An immutable object is one whose externally visible state cannot change after it is instantiated. Immutable objects are inherently thread-safe and cannot get into an inconsistent state. You can freely share and cache these object references without having to copy or clone them. Most of the CRISOPEYA IM Scheme information is immutable, and therefore the Class that bests suits for scheme information management should be referenced as immutable.

The final keyword is included in Java to declare immutability. However, while fields can be declared final; array, list and collection elements cannot. To avoid this limitation, the Collections.unmodifiableCollection wrapper implementation returns an unmodifiable view of the specified Lists, making that reference inmutable.

For example, if SEO_Domain_Index_rgStaticScheme DATATYPES field was declared as:
    static final String[] DATATYPES = {...}; 
 
Then the SEO Domain Index (external link) DATATYPES Scheme information would not be immutable for a caller who gets the field reference. With the field reference, he could modify the DATATYPES array content using, for example, the following assignment:
    DATATYPES[0] = DataTypes.TEXT; 
 
Instead, to overcome this limitation, a DATATYPE List is used for the scheme DATATYPES declaration:
    static final List<String> DATATYPES = Arrays.asList(...); 
 
And all DATATYPES field references get an unmodifiable DATATYPES List though SEO_Domain_Index_rgScheme using the Collections.unmodifiableCollection wrapper:
    public List<String> getDatatypes() {
       return Collections.unmodifiableList(DATATYPES);
    } 
 
If a caller who obtains a reference tries to change the list contents using, for example, the following code:

    DATATYPES.set(0, DataTypes.TEXT); 
 
Then no modification would be made and an UnsupportedOperationException will be thrown.

For more information on Java object mutability see Java: Inmutable Collections and IBM: To mutate or not to mutate?.

Version:
1.0.0, 09/28/08
Author:
C-SGE (crisopeya software generation engine)
See Also:
SEO_Domain_Index_rgScheme, SEO_Domain_Index_rgModel

Field Summary
protected static List<String> COLUMNNAMES
          Database column names for each field in the SEO Domain Index (external link) Information Module.
protected static List<String> DATATYPES
          Datatype for each field in the SEO Domain Index (external link) Information Module.
protected static List<String> fieldOrdering
          Field ordering direction for the default ordering configuration for the SEO Domain Index (external link) Information Module.
protected static List<Integer> fieldPriority
          Field priority for the default ordering configuration for the SEO Domain Index (external link) Information Module.
protected static List<String> FIELDSSIZE
          Where applicable, datatype size on the database for the fields in the SEO Domain Index (external link) Information Module.
static int label
          The index of the SEO Domain Index (external link) module field to be used as label.
protected static List<String> longLabels
          Long label for the SEO Domain Index (external link) Information Module fields.
static String MODELNAME
          Internal name of the SEO Domain Index (external link) Information Module.
protected static List<Boolean> NULLALLOWED
          Boolean array containing whether the "null allowed" constraint applies for each field in the SEO Domain Index (external link) Information Module.
static int NUMBEROFFIELDS
          Number of fields for the SEO Domain Index (external link) Information Module.
protected static List<String> shortLabels
          Short label for the SEO Domain Index (external link) Information Module fields.
protected static List<Integer> uiColumnSizes
          Graphical User Interface column size for each field in the SEO Domain Index (external link) Information Module.
static String UIMODELNAME
          Name of the SEO Domain Index (external link) Information Module for the User Interface.
protected static List<Boolean> UNIQUE
          Boolean array containing whether the "unique" constraint applies for each field in the SEO Domain Index (external link) Information Module.
 
Constructor Summary
SEO_Domain_Index_rgStaticScheme()
           
 
Method Summary
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MODELNAME

public static final String MODELNAME
Internal name of the SEO Domain Index (external link) Information Module.

See Also:
Constant Field Values

UIMODELNAME

public static final String UIMODELNAME
Name of the SEO Domain Index (external link) Information Module for the User Interface.

See Also:
Constant Field Values

NUMBEROFFIELDS

public static final int NUMBEROFFIELDS
Number of fields for the SEO Domain Index (external link) Information Module.

See Also:
Constant Field Values

UNIQUE

protected static final List<Boolean> UNIQUE
Boolean array containing whether the "unique" constraint applies for each field in the SEO Domain Index (external link) Information Module.


NULLALLOWED

protected static final List<Boolean> NULLALLOWED
Boolean array containing whether the "null allowed" constraint applies for each field in the SEO Domain Index (external link) Information Module.


label

public static int label
The index of the SEO Domain Index (external link) module field to be used as label.


COLUMNNAMES

protected static final List<String> COLUMNNAMES
Database column names for each field in the SEO Domain Index (external link) Information Module.


DATATYPES

protected static final List<String> DATATYPES
Datatype for each field in the SEO Domain Index (external link) Information Module.


FIELDSSIZE

protected static final List<String> FIELDSSIZE
Where applicable, datatype size on the database for the fields in the SEO Domain Index (external link) Information Module.


fieldPriority

protected static List<Integer> fieldPriority
Field priority for the default ordering configuration for the SEO Domain Index (external link) Information Module. If not used, it is set to -1.

See Also:
fieldOrdering

fieldOrdering

protected static List<String> fieldOrdering
Field ordering direction for the default ordering configuration for the SEO Domain Index (external link) Information Module. It defaults to "ascending".

See Also:
fieldPriority

longLabels

protected static List<String> longLabels
Long label for the SEO Domain Index (external link) Information Module fields.


shortLabels

protected static List<String> shortLabels
Short label for the SEO Domain Index (external link) Information Module fields.


uiColumnSizes

protected static List<Integer> uiColumnSizes
Graphical User Interface column size for each field in the SEO Domain Index (external link) Information Module.

Constructor Detail

SEO_Domain_Index_rgStaticScheme

public SEO_Domain_Index_rgStaticScheme()

SEO Domain Index
Crisopeya IM
v1.0.0

This software application has been automatically built and generated by the Crisopeya Technology. It has been freely shared and contributed to the Crisopeya Software 2.0 Community Software Catalog by one of its users.

You can download this application from the Crisopeya Software 2.0 Community Software Catalog.
You can join the Crisopeya community and build and share your own software applications.

© 2004-2009 Crisopeya Team at Business Excellence by Information Technologies SL (BE I.T.)