#
# Copyright (C) 1999-2018. Christian Heller.
#
# This is a temporary helper file with information on
# how to structure the new container framework of CYBOI.
#
# Cybernetics Oriented Programming (CYBOP) <http://www.cybop.org/>
# CYBOP Developers <cybop-developers@nongnu.org>
#
# @author Christian Heller <christian.heller@cybop.org>
#

CYBOI-Java Comparison
=====================

memoriser
_________

+ allocate: malloc, new, constructor, create, DDL CREATE TABLE
+ reallocate: trimToSize
+ deallocate: free, delete, destructor, destroy, DDL DROP TABLE

modifier
________

+ copy: assign, place, copy, duplicate, copyValueOf, clone, SQL UPDATE

+ get: element, elementAt, charAt, codePointAt, retrieve, getChildAt, firstElement, lastElement, peek, first, lowest, last, highest, SQL SELECT
+ indicate (empty or exists): isEmpty
+ count: getChildCount, length, capacity, size, getSize

+ overwrite: set, append, add, push, put, offer, concat, appendAll, putAll, replace
+ overwrite_element: set

+ insert
+ insert_element: SQL INSERT, DDL ALTER TABLE

+ remove: delete, SQL DELETE, DDL ALTER TABLE, clear, empty

- sort_parts_by_name(destination container, source container)
- trim(character array): [delete all spaces preceding and following the string]
- reverse(character array) [reverse sequence]

--> based on "copy"
--> count and size adjusted automatically
--> meta elements are accessed via overwrite_element and insert_element
--> cyboi works with references/pointers only
--> even for primitive values an array with just one element exists
--> only references, but not actual values are retrieved (get)

comparator
__________

+ compare
+ compare_all: equals, ceiling, floor, higher, lower, equalsIgnoreCase, compareTo (lexicographically, i.e. position in ASCII/Unicode table)
+ compare_prefix: startsWith
+ compare_suffix: endsWith
+ compare_subsequence: containsAll

finder
______

+ find: links to "find_first" by default, same as "find_part"
- find_first_index: indexOf, contains, containsKey, containsValue, find, search
- find_last_index: lastIndexOf
- find_prefix (find that begins at index 0)
- find_suffix (find that begins at last index and counts backward)

- filter(regular expression): matches

representer
___________

+ deserialise: valueOf
+ serialise: toString
- encode_capitalisation_lower: toLowerCase
- encode_capitalisation_upper: toUpperCase

converter
_________

+ decode: utf-8
+ encode: utf-8

COMPOSITION
___________

- remove_first_element(element) = find_first_index + remove_element
- remove_last_element(element) = find_last_index + remove_element
- pop = poll = take = get_first_element + remove_first_element
- replace_elements(container, old element, new element) = loop + find_first_index + set_element

- move: COMPOSITION? = get(old container, index) + set(new container, element, index at end) + remove(old container, index)
- move_element(destination container, source container, source element index)
- move_element_by_name(destination container, source container, source element name)
- move_area(destination container, source container, source start index, source end index): drainTo
- move_elements(destination container, source container): drainTo
- move_signals(destination container, source container): drainTo
- move_parts(destination container, source container): drainTo

SUPERFLUOUS
___________

- hashCode:
  typically (e.g. in Java) implemented by converting the internal address of the object into an integer;
  CYBOI works with pointers anyway, so that distinct objects are identifiable

- subSequence, substring:
  it suffices to simply count up the pointer to the desired sub sequence of an array
