+
Point of view
All features
class LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD]
Summary
Direct parents
Inherit list: HIERARCHIC_GRAPH_NODE
Class invariant
Overview
Creation features
{ANY}
Features
{ANY}
{ANY}
{LOADED_HIERARCHIC_GRAPH_NODE}
{ANY}
{HIERARCHIC_GRAPH_NODE}
{}
{HIERARCHIC_GRAPH_NODE}
{HIERARCHIC_GRAPH_NODE}
{ANY}
  • is_equal (other: LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD]): BOOLEAN
    Is other attached to an object considered equal to current object?
Maximum:
{}
Minimum:
{}
Bits:
{}
make (i: HASHABLE)
effective procedure
{ANY}
ensure
  • parents_count = 0
  • children_count = 0
  • item = i
parent_edge_load (i: INTEGER_32): LOAD
effective function
{ANY}
require
child_edge_load (i: INTEGER_32): LOAD
effective function
{ANY}
require
add_parent (node: LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD])
effective procedure
{ANY}
require
  • node /= Void
add_child (node: LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD])
effective procedure
{ANY}
require
  • node /= Void
remove_parent (node: LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD])
effective procedure
{ANY}
require
  • has_parent(node)
remove_child (node: LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD])
effective procedure
{ANY}
require
  • has_child(node)
parents_edge_load: FAST_ARRAY[LOAD]
writable attribute
children_edge_load: FAST_ARRAY[LOAD]
writable attribute
item: E_
writable attribute
{ANY}
max_rank: INTEGER_32
writable attribute
{ANY}
min_rank: INTEGER_32
writable attribute
{ANY}
parents: FAST_ARRAY[LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD]]
writable attribute
{ANY}
children: FAST_ARRAY[LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD]]
writable attribute
{ANY}
set_item (i: E_)
effective procedure
{ANY}
parents_count: INTEGER_32
effective function
{ANY}
children_count: INTEGER_32
effective function
{ANY}
has_parent_edge (id: INTEGER_32): BOOLEAN
effective function
{ANY}
has_child_edge (id: INTEGER_32): BOOLEAN
effective function
{ANY}
remove_parent_edge (id: INTEGER_32): LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD]
effective function
{ANY}
Return connected node.
require ensure
restore_parent_edge (id: INTEGER_32, node: LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD])
effective procedure
{ANY}
require ensure
remove_child_edge (id: INTEGER_32): LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD]
effective function
{ANY}
Return connected node.
require ensure
restore_child_edge (id: INTEGER_32, node: LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD])
effective procedure
{ANY}
require ensure
deep_reset_edges
effective procedure
{ANY}
Set edge identifiers with values starting from 0.
parent (i: INTEGER_32): LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD]
effective function
{ANY}
require
child (i: INTEGER_32): LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD]
effective function
{ANY}
require
has_parent (other: LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD]): BOOLEAN
effective function
{ANY}
ensure
has_child (other: LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD]): BOOLEAN
effective function
{ANY}
ensure
parent_edge (i: INTEGER_32): INTEGER_32
effective function
{ANY}
require
child_edge (i: INTEGER_32): INTEGER_32
effective function
{ANY}
require
has_cycle: BOOLEAN
effective function
{ANY}
has_parent_cycle: BOOLEAN
effective function
{ANY}
has_children_cycle: BOOLEAN
effective function
{ANY}
is_toplevel: BOOLEAN
effective function
{ANY}
ensure
is_leaf: BOOLEAN
effective function
{ANY}
ensure
is_connected_to (other: LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD]): BOOLEAN
effective function
{ANY}
require
  • other /= Void
ensure
distance (other: LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD]): INTEGER_32
effective function
{ANY}
require
  • other /= Void
ensure
set_rank
effective procedure
{ANY}
require
add_connected_nodes_in (list: COLLECTION[HIERARCHIC_GRAPH_NODE[E_]])
effective procedure
{ANY}
Add in list all nodes belonging to the same graph as Current
require
  • list /= Void
fill_path_to (path: COLLECTION[INTEGER_32], destination: LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD])
effective procedure
{ANY}
Add in path edges identifiers corresponding to a path from current node to destination node.
require
hash_code: INTEGER_32
effective function
{ANY}
The hash-code value of Current.
ensure
  • good_hash_value: Result >= 0
internal_has_parent_cycle: BOOLEAN
effective function
internal_has_children_cycle: BOOLEAN
effective function
internal_is_connected_to (other: LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD]): BOOLEAN
effective function
require
  • other /= Void
internal_unmark_parents
effective procedure
internal_unmark_children
effective procedure
internal_unmark_connected
effective procedure
unmark parents and children
internal_deep_reset_edges: INTEGER_32
effective function
internal_deep_init_edges (use: INTEGER_32): INTEGER_32
effective function
internal_distance (other: LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD], pos: INTEGER_32, max: INTEGER_32): INTEGER_32
effective function
Returns Maximum_integer if inaccessibility detected Returns -1 when break needed Distance from current point otherwise Warning: max length and pos are from the search start.
require
clean_mark_score
effective procedure
internal_set_rank
effective procedure
internal_add_connected_nodes_in (list: COLLECTION[HIERARCHIC_GRAPH_NODE[E_]])
effective procedure
internal_fill_path_to (path: COLLECTION[INTEGER_32], destination: LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD], position: INTEGER_32): BOOLEAN
effective function
invariant_checking_mode: REFERENCE[BOOLEAN]
once function
{}
valid_parents: BOOLEAN
effective function
{}
valid_children: BOOLEAN
effective function
{}
valid_parents_and_children: BOOLEAN
effective function
{}
ensure
  • assertion_only: Result
set_invariant_checking_mode (new_mode: BOOLEAN)
effective procedure
{}
require
deconnect_current
effective procedure
{}
parents_edge: FAST_ARRAY[INTEGER_32]
writable attribute
children_edge: FAST_ARRAY[INTEGER_32]
writable attribute
mark: BOOLEAN
writable attribute
unmark
effective procedure
set_mark
effective procedure
deep_unmark_connected
effective procedure
deep unmark parents and children (paths stops at unmarked nodes)
mark_score: INTEGER_32
writable attribute
is_equal (other: LOADED_HIERARCHIC_GRAPH_NODE [E_ -> HASHABLE, LOAD]): BOOLEAN
deferred function
{ANY}
Is other attached to an object considered equal to current object?
require
  • other /= Void
ensure
  • Result implies hash_code = other.hash_code
  • commutative: generating_type = other.generating_type implies Result = other.is_equal(Current)
Maximum_character_code: INTEGER_16
{}
Largest supported code for CHARACTER values.
ensure
  • meaningful: Result >= 127
Maximum_integer_8: INTEGER_8
is 127
constant attribute
{}
Largest supported value of type INTEGER_8.
Maximum_integer_16: INTEGER_16
is 32767
constant attribute
{}
Largest supported value of type INTEGER_16.
Maximum_integer: INTEGER_32
is 2147483647
constant attribute
{}
Largest supported value of type INTEGER/INTEGER_32.
Maximum_integer_32: INTEGER_32
is 2147483647
constant attribute
{}
Largest supported value of type INTEGER/INTEGER_32.
Maximum_integer_64: INTEGER_64
is 9223372036854775807
constant attribute
{}
Largest supported value of type INTEGER_64.
Maximum_real_32: REAL_32
is {REAL_32 3.4028234663852885981170418348451692544e+38}
constant attribute
{}
Largest non-special (no NaNs nor infinity) supported value of type REAL_32.
Maximum_real: REAL_64
{}
Largest non-special (no NaNs nor infinity) supported value of type REAL.
Just to give an idea of this value: 1.79769313486231570....e+308
Maximum_real_64: REAL_64
{}
Largest non-special (no NaNs nor infinity) supported value of type REAL.
Just to give an idea of this value: 1.79769313486231570....e+308
Maximum_real_80: REAL_EXTENDED
{}
Largest supported value of type REAL_80.
ensure
Minimum_character_code: INTEGER_16
{}
Smallest supported code for CHARACTER values.
ensure
  • meaningful: Result <= 0
Minimum_integer_8: INTEGER_8
is -128
constant attribute
{}
Smallest supported value of type INTEGER_8.
Minimum_integer_16: INTEGER_16
is -32768
constant attribute
{}
Smallest supported value of type INTEGER_16.
Minimum_integer: INTEGER_32
is -2147483648
constant attribute
{}
Smallest supported value of type INTEGER/INTEGER_32.
Minimum_integer_32: INTEGER_32
is -2147483648
constant attribute
{}
Smallest supported value of type INTEGER/INTEGER_32.
Minimum_integer_64: INTEGER_64
is -9223372036854775808
constant attribute
{}
Smallest supported value of type INTEGER_64.
Minimum_real_32: REAL_32
is {REAL_32 -3.40282346638528859811704183484516925440e+38}
constant attribute
{}
Smallest non-special (no NaNs nor infinity) supported value of type REAL_32.
Minimum_real: REAL_64
{}
Smallest non-special (no NaNs nor infinity) supported value of type REAL.
Just to give an idea of this value: -1.79769313486231570....e+308
Minimum_real_64: REAL_64
{}
Smallest non-special (no NaNs nor infinity) supported value of type REAL.
Just to give an idea of this value: -1.79769313486231570....e+308
Minimum_real_80: REAL_64
{}
Smallest supported value of type REAL_80.
ensure
  • meaningful: Result <= 0.0
Boolean_bits: INTEGER_32
{}
Number of bits in a value of type BOOLEAN.
ensure
  • meaningful: Result >= 1
Character_bits: INTEGER_32
{}
Number of bits in a value of type CHARACTER.
ensure
Integer_bits: INTEGER_32
{}
Number of bits in a value of type INTEGER.
ensure
  • integer_definition: Result = 32
Real_bits: INTEGER_32
is 64
constant attribute
{}
Number of bits in a value of type REAL.
Pointer_bits: INTEGER_32
{}
Number of bits in a value of type POINTER.