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