ARoad0.gBase
Class ISFactoryUtilityImpl

java.lang.Object
  extended by ARoad0.gBase.ISFactoryUtilityImpl
All Implemented Interfaces:
Singleton

public class ISFactoryUtilityImpl
extends java.lang.Object
implements Singleton

This class is responsible to define the IS constraints and controls to use for an ImmutableNameISTree by BaseManager and other classes. It defines the node types which are allowed for each parent type.

The IS NameLinkTree structure has the following format, where the node types are constants. The nametree root is a node with a specific type (INFORMATION_SYSTEM_NODE), and there are 5 possible types for its direct children:

- a physical component (PHYSICAL_COMPONENT_NODE type),

- a logical component (LOGICAL_COMPONENT_NODE type),

- an ACS (ACS_NODE type),

- a composite ACS (COMPOSITE_ACS_NODE type).

- a composite subACS (COMPOSITE_SUB_ACS_NODE type).

For a physical component, there are 3 possible types for its direct children:

- a physical component,

- a logical component,

- an ACS.

For a logical component, there are 2 possible types for its direct children:

- a logical component,

- an ACS.

For an ACS, there are 2 possible types for its direct children:

- a logical component,

- a subACS (SUB_ACS_NODE type).

For a composite ACS, there are 1 possible type for its direct children:

- an ACS.

For a composite subACS, there are 1 possible type for its direct children:

- a subACS.

For a subACS, there are no direct children. The methods in this class return these values to apply these constraints on types.

The complementary static variables are:

- IS_AUTHORIZATION_SERVER for an ACS only, to set in NameISTree.Links.

- IS_TIED_CHILD for an ACS only, to set in NameISTree.Links.

- the AGO, ACL, Bridge and Linked Privielge Right types, to set in NameISTree.Links for the Alternate relation between two ACS or two subACS, to state that the alternate handles these rights for the ground.

The alternate replaces or changes the ground handling, depending on the alternate relation type.

See Also:
NameISTreeImpl, BaseManagerImpl.addSecondaryPropertiesToAcsOrSubNode(ARoad0.gBaseInterface.ImmutableName, ARoad0.gBaseInterface.ImmutableName, boolean, ARoad0.gBaseInterface.ImmutableName, ARoad0.gBaseInterface.ImmutableName[], java.util.Map, boolean)

Field Summary
static java.lang.String ACL_RIGHTS
          Access Control List Rights type, to set in NameISTree.Links for the Alternate relation, to say that the alternate handles these rights for the ground.
static java.lang.String ACS_NODE
          Type of a NameLinkTree node which represents an Access Control System.
static java.lang.String AGO_RIGHTS
          Account/Group/Other Rights type, to set in NameISTree.Links for the Alternate relation, to say that the alternate handles these rights for the ground.
static java.lang.String BDG_RIGHTS
          Bridge Rights type, to set in NameISTree.Links for the Alternate relation, to say that the alternate handles these rights for the ground.
static java.lang.String COMPOSITE_ACS_NODE
          Type of a NameLinkTree node which represents a Composite Access Control System.
static java.lang.String COMPOSITE_SUB_ACS_NODE
          Type of a NameLinkTree node which represents a Composite Sub Access Control System.
static java.lang.String DEFAULT_IS_NAME
          Type of a NameLinkTree node which represents an information system.
static java.lang.String INFORMATION_SYSTEM_NODE
          Type of a NameLinkTree node which represents an information system.
protected static ISFactoryUtilityImpl INSTANCE
           
static java.lang.String IPV4_ADDRESSES_SPACE
          Name of the IPv4 network addresses space, as a standard information system.
static java.lang.String IPV6_ADDRESSES_SPACE
          Name of the IPv6 network addresses space, as a standard information system.
static java.lang.String IS_ALTERNATE_OF
          Keyword for the optional property of a ground ACS or a subACS, to set in NameISTree.Alternates, to say that this node is a ground for an alternate in a name having the format 'IS_ALTERNATE_OF+alternate_name'.
static java.lang.String IS_AUTHORIZATION_SERVER
          Optional property for an ACS only, to set in NameISTree.Links.
static java.lang.String IS_SUBCOMPOSITE_OF
          Optional property for an ACS or a subACS, to use in the GUI.
static java.lang.String IS_TIED_CHILD
          Optional property for an ACS only, to set in NameISTree.Links.
static java.lang.String LIMITING_ALTERNATE
          Alternate relation type, to set in NameISTree.Links, to say that the alternate sets positive rights which limits the ground positive rights for the relevant right types.
static java.lang.String LOGICAL_COMPONENT_NODE
          Type of a NameLinkTree node which represents a logical component, in other words a software which is not an ACS, subACS, composite ACS or composite subACS.
static java.lang.String LPRI_RIGHTS
          Linked Privilege Rights type, to set in NameISTree.Links for the Alternate relation, to say that the alternate handles these rights for the ground.
static java.lang.String OPTIONAL_ALTERNATE
          Alternate relation when the alternate may be closed when the ground ACS or subACS is opened, To set in NameISTree.Links.
static java.lang.String OPTIONAL_GROUND
          Alternate relation when the ground may be closed when the alternate ACS or subACS is opened, To set in NameISTree.Links.
static java.lang.String PHYSICAL_COMPONENT_NODE
          Type of a NameLinkTree node which represents a physical component.
static java.lang.String STRUCTURE_ROOT_STRING
          This string signal the root of the tree in the 'IS structure' window, by TreeManager, and also the nodes searched by an ISTreeBaseListener for adding or removing an ACS object.
static java.lang.String SUB_ACS_NODE
          Type of a NameLinkTree node which represents a Sub Access Control System.
static java.lang.String SUBTRACTING_ALTERNATE
          Alternate relation type, to set in NameISTree.Links, to say that the alternate sets negative rights which are subtracted from the ground positive rights, for the relevant right types.
static java.lang.String SWITCHING_ALTERNATE
          Alternate relation type, to set in NameISTree.Links, to say that the alternate replaces the groung handling for the relevant right types.
 
Constructor Summary
ISFactoryUtilityImpl()
           
 
Method Summary
static java.util.List<java.lang.String> getAlternateTypes()
          Gets the 3 types for an alternate relation between an ACS or a subACS and another ACS or subACS.
static java.util.List<java.lang.String> getChildTypesForISnode(java.lang.String _parentType)
          Get the allowed types for the children of an IS NameTree node, following this class policy which constraints the NameTree structure.
static java.util.List<java.lang.String> getMainAcsTypes()
          Get the 3 types of ACS and subACS, without COMPOSITE_SUB_ACS_NODE.
static java.util.List<java.lang.String> getNodeTypesForIS()
          Does not return the type for the IS structure root.
static java.util.List<java.lang.String> getOptionsForAlternate()
          Get the 2 options.
static java.util.List<java.lang.String> getRightTypesForAlternate()
          Get the 4 right types, that are AGO, ACL, BDG and LPRI.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

STRUCTURE_ROOT_STRING

public static final java.lang.String STRUCTURE_ROOT_STRING
This string signal the root of the tree in the 'IS structure' window, by TreeManager, and also the nodes searched by an ISTreeBaseListener for adding or removing an ACS object.

See Also:
Constant Field Values

DEFAULT_IS_NAME

public static final java.lang.String DEFAULT_IS_NAME
Type of a NameLinkTree node which represents an information system.

See Also:
Constant Field Values

INFORMATION_SYSTEM_NODE

public static final java.lang.String INFORMATION_SYSTEM_NODE
Type of a NameLinkTree node which represents an information system.

See Also:
Constant Field Values

PHYSICAL_COMPONENT_NODE

public static final java.lang.String PHYSICAL_COMPONENT_NODE
Type of a NameLinkTree node which represents a physical component. Named 'physical' in NameISTrees.

See Also:
Constant Field Values

LOGICAL_COMPONENT_NODE

public static final java.lang.String LOGICAL_COMPONENT_NODE
Type of a NameLinkTree node which represents a logical component, in other words a software which is not an ACS, subACS, composite ACS or composite subACS. Named 'logical' in NameISTrees.

See Also:
Constant Field Values

ACS_NODE

public static final java.lang.String ACS_NODE
Type of a NameLinkTree node which represents an Access Control System.

See Also:
Constant Field Values

SUB_ACS_NODE

public static final java.lang.String SUB_ACS_NODE
Type of a NameLinkTree node which represents a Sub Access Control System.

See Also:
Constant Field Values

COMPOSITE_ACS_NODE

public static final java.lang.String COMPOSITE_ACS_NODE
Type of a NameLinkTree node which represents a Composite Access Control System.

See Also:
Constant Field Values

COMPOSITE_SUB_ACS_NODE

public static final java.lang.String COMPOSITE_SUB_ACS_NODE
Type of a NameLinkTree node which represents a Composite Sub Access Control System.

See Also:
Constant Field Values

IS_AUTHORIZATION_SERVER

public static final java.lang.String IS_AUTHORIZATION_SERVER
Optional property for an ACS only, to set in NameISTree.Links.

See Also:
Constant Field Values

IS_TIED_CHILD

public static final java.lang.String IS_TIED_CHILD
Optional property for an ACS only, to set in NameISTree.Links.

See Also:
Constant Field Values

IS_SUBCOMPOSITE_OF

public static final java.lang.String IS_SUBCOMPOSITE_OF
Optional property for an ACS or a subACS, to use in the GUI.

See Also:
Constant Field Values

IS_ALTERNATE_OF

public static final java.lang.String IS_ALTERNATE_OF
Keyword for the optional property of a ground ACS or a subACS, to set in NameISTree.Alternates, to say that this node is a ground for an alternate in a name having the format 'IS_ALTERNATE_OF+alternate_name'.

See Also:
Constant Field Values

SWITCHING_ALTERNATE

public static final java.lang.String SWITCHING_ALTERNATE
Alternate relation type, to set in NameISTree.Links, to say that the alternate replaces the groung handling for the relevant right types. For instance, LDAP is a SWITCHING_ALTERNATE ACS of the Linux Network SubACS.

See Also:
Constant Field Values

LIMITING_ALTERNATE

public static final java.lang.String LIMITING_ALTERNATE
Alternate relation type, to set in NameISTree.Links, to say that the alternate sets positive rights which limits the ground positive rights for the relevant right types. For instance, SELinux is a LIMITING_ALTERNATE SubACS of the Linux Files SubACS.

See Also:
Constant Field Values

SUBTRACTING_ALTERNATE

public static final java.lang.String SUBTRACTING_ALTERNATE
Alternate relation type, to set in NameISTree.Links, to say that the alternate sets negative rights which are subtracted from the ground positive rights, for the relevant right types.

See Also:
Constant Field Values

AGO_RIGHTS

public static final java.lang.String AGO_RIGHTS
Account/Group/Other Rights type, to set in NameISTree.Links for the Alternate relation, to say that the alternate handles these rights for the ground. The alternate replaces or changes the ground handling, depending on the alternate relation type.

See Also:
Constant Field Values

ACL_RIGHTS

public static final java.lang.String ACL_RIGHTS
Access Control List Rights type, to set in NameISTree.Links for the Alternate relation, to say that the alternate handles these rights for the ground. The alternate replaces or changes the ground handling, depending on the alternate relation type.

See Also:
Constant Field Values

BDG_RIGHTS

public static final java.lang.String BDG_RIGHTS
Bridge Rights type, to set in NameISTree.Links for the Alternate relation, to say that the alternate handles these rights for the ground. The alternate replaces or changes the ground handling, depending on the alternate relation type.

See Also:
Constant Field Values

LPRI_RIGHTS

public static final java.lang.String LPRI_RIGHTS
Linked Privilege Rights type, to set in NameISTree.Links for the Alternate relation, to say that the alternate handles these rights for the ground. The alternate replaces or changes the ground handling, depending on the alternate relation type.

See Also:
Constant Field Values

OPTIONAL_ALTERNATE

public static final java.lang.String OPTIONAL_ALTERNATE
Alternate relation when the alternate may be closed when the ground ACS or subACS is opened, To set in NameISTree.Links.

See Also:
Constant Field Values

OPTIONAL_GROUND

public static final java.lang.String OPTIONAL_GROUND
Alternate relation when the ground may be closed when the alternate ACS or subACS is opened, To set in NameISTree.Links.

See Also:
Constant Field Values

IPV4_ADDRESSES_SPACE

public static final java.lang.String IPV4_ADDRESSES_SPACE
Name of the IPv4 network addresses space, as a standard information system.

See Also:
Constant Field Values

IPV6_ADDRESSES_SPACE

public static final java.lang.String IPV6_ADDRESSES_SPACE
Name of the IPv6 network addresses space, as a standard information system.

See Also:
Constant Field Values

INSTANCE

protected static final ISFactoryUtilityImpl INSTANCE
Constructor Detail

ISFactoryUtilityImpl

public ISFactoryUtilityImpl()
Method Detail

getNodeTypesForIS

public static final java.util.List<java.lang.String> getNodeTypesForIS()
Does not return the type for the IS structure root.

Returns:
immutable list of the allowed types for an IS NameLinkTree node.

getChildTypesForISnode

public static final java.util.List<java.lang.String> getChildTypesForISnode(java.lang.String _parentType)
Get the allowed types for the children of an IS NameTree node, following this class policy which constraints the NameTree structure.

Parameters:
_parentType - is an ISImpl allowed node type of a node in the IS NameTree. Returns null otherwise.
Returns:
immutable list of the allowed types for the direct children of a _parentType node. May be empty (it is then Collections.EMPTY_LIST) for instance if the argument is SUB_ACS_NODE. Never null.

getAlternateTypes

public static final java.util.List<java.lang.String> getAlternateTypes()
Gets the 3 types for an alternate relation between an ACS or a subACS and another ACS or subACS. SWITCHING_ALTERNATE says that the alternate replaces the groung handling for the relevant right types. For instance, LDAP is a SWITCHING_ALTERNATE ACS of the Linux Network SubACS. LIMITING_ALTERNATE says that the alternate sets positive rights which limits the ground positive rights for the relevant right types. For instance, SELinux is a LIMITING_ALTERNATE SubACS of the Linux Files SubACS. SUBTRACTING_ALTERNATE says that the alternate sets negative rights which are subtracted from the ground positive rights, for the relevant right types.

Returns:
immutable list of the allowed types for an Alternate relation.

getRightTypesForAlternate

public static final java.util.List<java.lang.String> getRightTypesForAlternate()
Get the 4 right types, that are AGO, ACL, BDG and LPRI.

Returns:
immutable list of the rights types.

getOptionsForAlternate

public static final java.util.List<java.lang.String> getOptionsForAlternate()
Get the 2 options.

Returns:
immutable list of optional_ground, optional_alternate.

getMainAcsTypes

public static final java.util.List<java.lang.String> getMainAcsTypes()
Get the 3 types of ACS and subACS, without COMPOSITE_SUB_ACS_NODE.

Returns:
immutable list of the ACS types.