deferred class JSON_REPOSITORY_IMPL [O_ -> STORABLE]
Summary
Direct parents
Inherit list: JSON_VISITOR, REPOSITORY_IMPL
Insert list: JSON_STRINGS
Known children
Inherit list: JSON_FILE_REPOSITORY, JSON_STREAM_REPOSITORY
Class invariant
Overview
Features
Implementation of update
{}
{JSON_ARRAY}
{JSON_FALSE}
{JSON_NULL}
{JSON_NUMBER}
{JSON_OBJECT}
{JSON_STRING}
{JSON_TRUE}
Default transient objects
{}
{}
{}
Error handling on repository update
{ANY}
{}
Implementation of update
{}
Implementation of commit
{}
Internals
{}
Getting and setting objects in the repository:
{ANY}
  • has (object_name: STRING): BOOLEAN
    Is object_name the name of some stored object.
  • at (object_name: STRING): O_
    Return the object currently associated to object_name.
  • add (object: O_, object_name: STRING)
    Add a new object in the Current repository.
  • put (object: O_, object_name: STRING) assign at
    Update or add a new object in the Current repository.
  • remove (object_name: STRING)
    Remove entry object_name from the Current repository.
Counting:
{ANY}
Iterating facilities:
{ANY}
Really storing data:
{ANY}
  • update
    Update the repository objects.
  • commit
    Commit all the repository objects to the physical store.
  • is_connected: BOOLEAN
    True if the repository is connected to a physical store.
  • is_updateable: BOOLEAN
    True if the repository can be updated from data in the physical store.
  • is_commitable: BOOLEAN
    True if the repository can be committed to the underlying physical store.
Implementation
{}
{}
{JSON_HANDLER}
{}
last_line: INTEGER_32
writable attribute
{}
last_column: INTEGER_32
writable attribute
{}
do_update (in_stream: INPUT_STREAM)
effective procedure
{}
parser: JSON_PARSER
writable attribute
{}
last_name: STRING
writable attribute
{}
last_string: STRING
writable attribute
{}
last_number: INTEGER_32
writable attribute
{}
visit_array (json: JSON_ARRAY)
effective procedure
visit_false (json: JSON_FALSE)
effective procedure
visit_null (json: JSON_NULL)
effective procedure
visit_number (json: JSON_NUMBER)
effective procedure
visit_object (json: JSON_OBJECT)
effective procedure
everything happens here because the repository structure is well defined
visit_string (json: JSON_STRING)
effective procedure
visit_true (json: JSON_TRUE)
effective procedure
register_transient_objects
effective procedure
{}
unregister_transient_objects
effective procedure
{}
version: STRING
is "1"
frozen
constant attribute
{}
make
effective procedure
{}
Create a not-connected empty repository.
_inline_agent44 (value: JSON_VALUE, string: JSON_STRING, refs: JSON_ARRAY)
frozen
effective procedure
{}
_inline_agent45 (value: JSON_VALUE, string: JSON_STRING)
frozen
effective procedure
{}
_inline_agent46 (value: JSON_VALUE, index: INTEGER_32)
frozen
effective procedure
{}
_inline_agent47 (value: JSON_VALUE, string: JSON_STRING)
frozen
effective procedure
{}
register_update_error_handler (a_error_handler: PROCEDURE[TUPLE 3[ABSTRACT_STRING, INTEGER_32, INTEGER_32]])
effective procedure
{ANY}
writable attribute
{}
fire_update_error (message: ABSTRACT_STRING, line: INTEGER_32, column: INTEGER_32)
effective procedure
{}
solve_again: BOOLEAN
writable attribute
{}
update_layouts: STACK[REPOSITORY_LAYOUT]
once function
{}
updated_internals: AVL_DICTIONARY[INTERNALS, INTEGER_32]
once function
{}
internals_references: HASHED_DICTIONARY[INTEGER_32, POINTER]
once function
{}
once function
{}
once function
{}
solve (ref: INTEGER_32): INTERNALS
effective function
{}
internals_reference (internals: INTERNALS): INTEGER_32
effective function
{}
once function
{}
read_from_stream (in_stream: INPUT_STREAM)
effective procedure
{}
update_from_stream (in_stream: INPUT_STREAM)
effective procedure
{}
record_object (ref: INTEGER_32, name: STRING, line: INTEGER_32, column: INTEGER_32)
effective procedure
{}
Register the object as a high-level one, i.e.
check_non_empty_data (a_data: STRING, data_type: STRING, line: INTEGER_32, column: INTEGER_32)
effective procedure
{}
open_repository (a_repository: REPOSITORY_LAYOUT, line: INTEGER_32, column: INTEGER_32)
effective procedure
{}
open_layout (a_type: STRING, a_ref: INTEGER_32, a_layout: REPOSITORY_LAYOUT, line: INTEGER_32, column: INTEGER_32)
effective procedure
{}
open_reference (a_name: STRING, a_ref: INTEGER_32, a_reference: REPOSITORY_LAYOUT, line: INTEGER_32, column: INTEGER_32)
effective procedure
{}
open_embedded (a_name: STRING, a_type: STRING, a_embedded: REPOSITORY_LAYOUT, line: INTEGER_32, column: INTEGER_32)
effective procedure
{}
open_basic (a_name: STRING, a_type: STRING, a_value: STRING, a_basic: REPOSITORY_LAYOUT, line: INTEGER_32, column: INTEGER_32)
effective procedure
{}
open_array (a_name: STRING, a_type: STRING, a_capacity: INTEGER_32, a_array: REPOSITORY_LAYOUT, line: INTEGER_32, column: INTEGER_32)
effective procedure
{}
close_repository (line: INTEGER_32, column: INTEGER_32)
effective procedure
{}
close_layout (line: INTEGER_32, column: INTEGER_32)
effective procedure
{}
close_reference (line: INTEGER_32, column: INTEGER_32)
effective procedure
{}
close_embedded (line: INTEGER_32, column: INTEGER_32)
effective procedure
{}
close_basic (line: INTEGER_32, column: INTEGER_32)
effective procedure
{}
close_array (line: INTEGER_32, column: INTEGER_32)
effective procedure
{}
commit_map: SET[POINTER]
once function
{}
Used when committing object not to commit them twice
write_to_stream (out_stream: REPOSITORY_OUTPUT)
effective procedure
{}
write_object (name: STRING, object: STORABLE, out_stream: REPOSITORY_OUTPUT)
effective procedure
{}
write_internals (int: INTERNALS, name: STRING, out_stream: REPOSITORY_OUTPUT)
effective procedure
{}
write_reference_layout (reference: INTERNALS, name: STRING, out_stream: REPOSITORY_OUTPUT)
effective procedure
{}
write_layout (layout: INTERNALS, out_stream: REPOSITORY_OUTPUT)
effective procedure
{}
write_contents (layout: INTERNALS, out_stream: REPOSITORY_OUTPUT)
effective procedure
{}
write_array_contents (layout: INTERNALS, out_stream: REPOSITORY_OUTPUT)
effective procedure
{}
write_array_fields_layouts (array: INTERNALS, out_stream: REPOSITORY_OUTPUT)
effective procedure
{}
write_expanded (internals: INTERNALS, name: STRING, out_stream: REPOSITORY_OUTPUT)
effective procedure
{}
write_array_layout_object (internals: INTERNALS, name: STRING, out_stream: REPOSITORY_OUTPUT)
effective procedure
{}
write_embedded_layout_object (internals: INTERNALS, name: STRING, out_stream: REPOSITORY_OUTPUT)
effective procedure
{}
once function
{}
new_layout (a_kind: STRING): REPOSITORY_LAYOUT
effective function
{}
release_layout (a_layout: REPOSITORY_LAYOUT)
effective procedure
{}
writable attribute
{}
has (object_name: STRING): BOOLEAN
frozen
effective function
{ANY}
Is object_name the name of some stored object.
at (object_name: STRING): O_
frozen
effective function
{ANY}
Return the object currently associated to object_name.
add (object: O_, object_name: STRING)
frozen
effective procedure
{ANY}
Add a new object in the Current repository.
put (object: O_, object_name: STRING) assign at
frozen
effective procedure
{ANY}
Update or add a new object in the Current repository.
remove (object_name: STRING)
effective procedure
{ANY}
Remove entry object_name from the Current repository.
count: INTEGER_32
effective function
{ANY}
Actual count of stored elements.
is_empty: BOOLEAN
effective function
{ANY}
Is it empty ?
lower: INTEGER_32
is 1
constant attribute
{ANY}
upper: INTEGER_32
effective function
{ANY}
valid_index (index: INTEGER_32): BOOLEAN
effective function
{ANY}
item (index: INTEGER_32): O_
effective function
{ANY}
key (index: INTEGER_32): STRING
effective function
{ANY}
new_iterator_on_items: ITERATOR[O_]
effective function
{ANY}
new_iterator_on_keys: ITERATOR[STRING]
effective function
{ANY}
key_map_in (buffer: COLLECTION[STRING])
effective procedure
{ANY}
Append in buffer, all available keys (this may be useful to speed up the traversal).
item_map_in (buffer: COLLECTION[O_])
effective procedure
{ANY}
Append in buffer, all available items (this may be useful to speed up the traversal).
update
deferred procedure
{ANY}
Update the repository objects.
commit
deferred procedure
{ANY}
Commit all the repository objects to the physical store.
is_connected: BOOLEAN
deferred function
{ANY}
True if the repository is connected to a physical store.
is_updateable: BOOLEAN
deferred function
{ANY}
True if the repository can be updated from data in the physical store.
is_commitable: BOOLEAN
deferred function
{ANY}
True if the repository can be committed to the underlying physical store.
repository: DICTIONARY[O_, STRING]
writable attribute
{}
objects_are_expanded: BOOLEAN
effective function
{}
valid_generating_type_for_internals (type: STRING): BOOLEAN
frozen
{}
internals_from_generating_type (type: STRING): INTERNALS
frozen
{}
valid_generating_type_for_native_array_internals (type: STRING): BOOLEAN
frozen
{}
native_array_internals_from_generating_type (type: STRING, capacity: INTEGER_32): INTERNALS
frozen
{}
json_star: JSON_STRING
once function
json_type: JSON_STRING
once function
json_repository: JSON_STRING
once function
json_version: JSON_STRING
once function
json_data: JSON_STRING
once function
json_refs: JSON_STRING
once function
json_basic: JSON_STRING
once function
json_value: JSON_STRING
once function
json_array: JSON_STRING
once function
json_capacity: JSON_STRING
once function
json_layout: JSON_STRING
once function
json_ref: JSON_STRING
once function
json_embedded: JSON_STRING
once function
json_type_character: JSON_STRING
once function
json_type_boolean: JSON_STRING
once function
json_type_integer_8: JSON_STRING
once function
json_type_integer_16: JSON_STRING
once function
json_type_integer_32: JSON_STRING
once function
json_type_integer_64: JSON_STRING
once function
json_type_integer: JSON_STRING
once function
json_type_real_32: JSON_STRING
once function
json_type_real_64: JSON_STRING
once function
json_type_real_80: JSON_STRING
once function
json_type_real_128: JSON_STRING
once function
json_type_real_expanded: JSON_STRING
once function
json_type_real: JSON_STRING
once function
json_array_element_type (type: ABSTRACT_STRING): JSON_STRING
effective function
json_string (a_string: ABSTRACT_STRING): JSON_STRING
effective function
json_array_element_types: HASHED_DICTIONARY[JSON_STRING, FIXED_STRING]
once function
{}
once function
{}