+
Point of view
All features
class JSON_REPOSITORY_OUTPUT
Summary
Direct parents
Inherit list: REPOSITORY_OUTPUT
Insert list: JSON_HANDLER, JSON_STRINGS
Class invariant
Overview
Creation features
{JSON_REPOSITORY_IMPL}
Features
{REPOSITORY_IMPL}
{}
{}
{JSON_HANDLER}
{}
is_connected: BOOLEAN
effective function
start_write
effective procedure
require
  • is_connected
end_write
effective procedure
require
  • is_connected
write_reference (ref: INTEGER_32, name: STRING)
effective procedure
require
  • is_connected
  • ref > 0
write_transient_reference (ref: STRING, name: STRING)
effective procedure
require
  • is_connected
  • not ref.is_empty
start_layout (ref: INTEGER_32, type: STRING)
effective procedure
require
  • is_connected
  • ref >= 0
  • not type.is_empty
end_layout
effective procedure
require
  • is_connected
write_character_layout_object (internals: INTERNALS, name: STRING)
effective procedure
require
  • is_connected
  • internals.type_generating_type.is_equal("CHARACTER")
write_boolean_layout_object (internals: INTERNALS, name: STRING)
effective procedure
require
  • is_connected
  • internals.type_generating_type.is_equal("BOOLEAN")
write_integer_8_layout_object (internals: INTERNALS, name: STRING)
effective procedure
require
  • is_connected
  • internals.type_generating_type.is_equal("INTEGER_8")
write_integer_16_layout_object (internals: INTERNALS, name: STRING)
effective procedure
require
  • is_connected
  • internals.type_generating_type.is_equal("INTEGER_16")
write_integer_32_layout_object (internals: INTERNALS, name: STRING)
effective procedure
require
  • is_connected
  • internals.type_generating_type.is_equal("INTEGER_32")
write_integer_64_layout_object (internals: INTERNALS, name: STRING)
effective procedure
require
  • is_connected
  • internals.type_generating_type.is_equal("INTEGER_64")
write_integer_layout_object (internals: INTERNALS, name: STRING)
effective procedure
require
  • is_connected
  • internals.type_generating_type.is_equal("INTEGER")
write_real_32_layout_object (internals: INTERNALS, name: STRING)
effective procedure
require
  • is_connected
  • internals.type_generating_type.is_equal("REAL_32")
write_real_64_layout_object (internals: INTERNALS, name: STRING)
effective procedure
require
  • is_connected
  • internals.type_generating_type.is_equal("REAL_64")
write_real_80_layout_object (internals: INTERNALS, name: STRING)
effective procedure
require
  • is_connected
  • internals.type_generating_type.is_equal("REAL_80")
write_real_128_layout_object (internals: INTERNALS, name: STRING)
effective procedure
require
  • is_connected
  • internals.type_generating_type.is_equal("REAL_128")
write_real_layout_object (internals: INTERNALS, name: STRING)
effective procedure
require
  • is_connected
  • internals.type_generating_type.is_equal("REAL")
write_real_expanded_layout_object (internals: INTERNALS, name: STRING)
effective procedure
require
  • is_connected
  • internals.type_generating_type.is_equal("REAL_EXPANDED")
start_array_layout (array: INTERNALS, name: STRING)
effective procedure
require
  • is_connected
  • array.type_is_native_array
  • array.type_attribute_count > 0
end_array_layout (array: INTERNALS, name: STRING)
effective procedure
require
  • is_connected
start_embedded_layout (layout: INTERNALS, name: STRING)
effective procedure
require
  • is_connected
  • layout.type_is_expanded
  • not layout.type_is_native_array
  • layout.type_attribute_count > 0
end_embedded_layout (layout: INTERNALS, name: STRING)
effective procedure
require
  • is_connected
out_stream: OUTPUT_STREAM
writable attribute
{}
version: STRING
writable attribute
{}
writable attribute
{}
writable attribute
{}
current_array: FAST_ARRAY[JSON_VALUE]
writable attribute
{}
references: FAST_ARRAY[JSON_VALUE]
writable attribute
{}
add_shell_object (name: STRING, ref: INTEGER_32, shell_object: LINKED_HASHED_DICTIONARY[JSON_VALUE, JSON_STRING], to_object: LINKED_HASHED_DICTIONARY[JSON_VALUE, JSON_STRING], to_array: FAST_ARRAY[JSON_VALUE])
effective procedure
{}
require
  • ref >= 0
  • shell_object /= Void
  • name /= Void implies to_object /= Void or to_array /= Void
  • to_object /= Void implies to_array = Void
  • to_array /= Void implies to_object = Void
add_object (name: STRING, ref: INTEGER_32, shell_object: LINKED_HASHED_DICTIONARY[JSON_VALUE, JSON_STRING])
effective procedure
{}
require ensure
effective procedure
{}
require ensure
pop_object
effective procedure
{}
require ensure
create_object (shell_object: LINKED_HASHED_DICTIONARY[JSON_VALUE, JSON_STRING])
effective procedure
{}
ensure
create_array (shell_object: LINKED_HASHED_DICTIONARY[JSON_VALUE, JSON_STRING])
effective procedure
{}
ensure
make (a_out_stream: OUTPUT_STREAM, a_version: STRING)
effective procedure
{}
require
  • a_out_stream /= Void
  • a_version /= Void
ensure
valid_generating_type_for_internals (type: STRING): BOOLEAN
frozen
{}
require
  • type /= Void
ensure
  • Result implies not type.has_prefix("NATIVE_ARRAY")
internals_from_generating_type (type: STRING): INTERNALS
frozen
{}
require ensure
  • Result /= Void
  • Result.object_can_be_modified
valid_generating_type_for_native_array_internals (type: STRING): BOOLEAN
frozen
{}
require
  • type /= Void
ensure
  • Result implies type.has_prefix("NATIVE_ARRAY")
native_array_internals_from_generating_type (type: STRING, capacity: INTEGER_32): INTERNALS
frozen
{}
require ensure
  • Result /= Void
  • Result.object_can_be_modified
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
require
  • type.has_prefix("NATIVE_ARRAY[")
  • type.has_suffix("]")
json_string (a_string: ABSTRACT_STRING): JSON_STRING
effective function
ensure
  • Result.is_valid
json_array_element_types: HASHED_DICTIONARY[JSON_STRING, FIXED_STRING]
once function
{}
once function
{}