Added LGPL V3. License. Updated copyright. Code formatting.
[sixth-data.git] / src / main / java / eu / svjatoslav / sixth / data / model / InformationUnit.java
1 /*
2  * Sixth Data. Copyright ©2012-2018, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of version 3 of the GNU Lesser General Public License
6  * or later as published by the Free Software Foundation.
7  */
8
9 package eu.svjatoslav.sixth.data.model;
10
11 public interface InformationUnit {
12
13         /*
14      * Mobile. Can be shared and can move accross cores.
15          */
16
17     /*
18      * 0 integer
19      *
20      * 1 text
21      *
22      * 2 collection Can have any number of dimensions. Infinite in every
23      * dimension. Every dimension behaves similarly to a column in a table.
24      *
25      * Could be used as a stack FILO Could be used as a pipe FIFO
26      *
27      * List would correspond to 1 dimensional collection. Dict would correspond
28      * to 2 dimensional collection. Entries could be easilly appended, inserted
29      * and removed.
30      *
31      * All dimensions are indexed. It is possible to quickly retrieve any
32      * element(s) by querying against any dimensions.
33      *
34      * Queries can be geometrical too.
35      *
36      * Every dimension could be inclusive or exclusive. Inclusive dimension
37      * allows multiple same values in the same location simultaneously.
38      * Exclusive dimension allows only one value at the location.
39      *
40      * Attempt to store new value at the occupied location would overwrite the
41      * previous.
42      *
43      * Exclusive dimensions could be grouped. This will guarantee unique
44      * combination within group.
45      *
46      * Every dimension could have undefined or fixed type.
47      *
48      * Classes are multidimensional collections. Instances of classes are
49      * collection entries.
50      *
51      * 3 function
52      *
53      * list of input parameters list of output parameters
54      *
55      * 4 byte array
56      *
57      * 5 boolean
58      *
59      * 6 float
60      *
61      * 7 class
62      *
63      * 8 class instance
64      */
65     int getType();
66
67 }