[libgee] Adding a first very basic documentation to data types implementations.
- From: Didier 'Ptitjes' Villevalois <dvillevalois src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [libgee] Adding a first very basic documentation to data types implementations.
- Date: Sat, 5 Sep 2009 23:24:03 +0000 (UTC)
commit e1899db8fb4d7b5b17fe35007f288f8aa3718000
Author: Julien Peeters <contact julienpeeters fr>
Date: Fri Sep 4 18:07:08 2009 +0200
Adding a first very basic documentation to data types implementations.
When a data type method is already documented in a super class or
in an interface the '@inheritDoc' parameter is set.
gee/abstractcollection.vala | 47 ++++++++++++++++++++++----
gee/abstractlist.vala | 27 +++++++++++++++
gee/abstractmap.vala | 36 ++++++++++++++++++++
gee/arraylist.vala | 47 +++++++++++++++++++++++++++
gee/functions.vala | 32 ++++++++++++++++++
gee/hashset.vala | 27 +++++++++++++++
gee/linkedlist.vala | 47 +++++++++++++++++++++++++--
gee/readonlycollection.vala | 48 +++++++++++++++++++++++++++
gee/readonlylist.vala | 75 +++++++++++++++++++++++++++++++++++++++++++
gee/readonlyset.vala | 48 +++++++++++++++++++++++++++
gee/treemap.vala | 34 +++++++++++++++++++
gee/treeset.vala | 25 ++++++++++++++
12 files changed, 482 insertions(+), 11 deletions(-)
---
diff --git a/gee/abstractcollection.vala b/gee/abstractcollection.vala
index a93c0e5..9a1f412 100644
--- a/gee/abstractcollection.vala
+++ b/gee/abstractcollection.vala
@@ -26,24 +26,41 @@
*/
public abstract class Gee.AbstractCollection<G> : Object, Iterable<G>, Collection<G> {
- //
- // Inherited from Collection<G>
- //
-
+ /**
+ * @inheritDoc
+ */
public abstract int size { get; }
+ /**
+ * @inheritDoc
+ */
public virtual bool is_empty {
get { return size == 0; }
}
+ /**
+ * @inheritDoc
+ */
public abstract bool contains (G item);
+ /**
+ * @inheritDoc
+ */
public abstract bool add (G item);
+ /**
+ * @inheritDoc
+ */
public abstract bool remove (G item);
+ /**
+ * @inheritDoc
+ */
public abstract void clear ();
+ /**
+ * @inheritDoc
+ */
public virtual G[] to_array() {
G[] array = new G[size];
int index = 0;
@@ -53,6 +70,9 @@ public abstract class Gee.AbstractCollection<G> : Object, Iterable<G>, Collectio
return array;
}
+ /**
+ * @inheritDoc
+ */
public virtual bool add_all (Collection<G> collection) {
if (collection.is_empty) {
return false;
@@ -65,6 +85,9 @@ public abstract class Gee.AbstractCollection<G> : Object, Iterable<G>, Collectio
return changed;
}
+ /**
+ * @inheritDoc
+ */
public virtual bool contains_all (Collection<G> collection) {
if (collection.size > size) {
return false;
@@ -78,6 +101,9 @@ public abstract class Gee.AbstractCollection<G> : Object, Iterable<G>, Collectio
return true;
}
+ /**
+ * @inheritDoc
+ */
public virtual bool remove_all (Collection<G> collection) {
bool changed = false;
foreach (G item in collection) {
@@ -86,6 +112,9 @@ public abstract class Gee.AbstractCollection<G> : Object, Iterable<G>, Collectio
return changed;
}
+ /**
+ * @inheritDoc
+ */
public virtual bool retain_all (Collection<G> collection) {
bool changed = false;
G[] items = to_array ();
@@ -98,13 +127,15 @@ public abstract class Gee.AbstractCollection<G> : Object, Iterable<G>, Collectio
return changed;
}
- //
- // Inherited from Iterable<G>
- //
-
+ /**
+ * @inheritDoc
+ */
public Type element_type {
get { return typeof (G); }
}
+ /**
+ * @inheritDoc
+ */
public abstract Iterator<G> iterator ();
}
diff --git a/gee/abstractlist.vala b/gee/abstractlist.vala
index 5a4b919..6f4af8b 100644
--- a/gee/abstractlist.vala
+++ b/gee/abstractlist.vala
@@ -26,26 +26,53 @@
*/
public abstract class Gee.AbstractList<G> : Gee.AbstractCollection<G>, List<G> {
+ /**
+ * @inheritDoc
+ */
public abstract new G? get (int index);
+ /**
+ * @inheritDoc
+ */
public abstract new void set (int index, G item);
+ /**
+ * @inheritDoc
+ */
public abstract int index_of (G item);
+ /**
+ * @inheritDoc
+ */
public abstract void insert (int index, G item);
+ /**
+ * @inheritDoc
+ */
public abstract void remove_at (int index);
+ /**
+ * @inheritDoc
+ */
public abstract List<G>? slice (int start, int stop);
+ /**
+ * @inheritDoc
+ */
public virtual G? first () {
return get (0);
}
+ /**
+ * @inheritDoc
+ */
public virtual G? last () {
return get (size - 1);
}
+ /**
+ * @inheritDoc
+ */
public virtual void insert_all (int index, Collection<G> collection) {
foreach (G item in collection) {
insert(index, item);
diff --git a/gee/abstractmap.vala b/gee/abstractmap.vala
index 5676a34..a0192f5 100644
--- a/gee/abstractmap.vala
+++ b/gee/abstractmap.vala
@@ -26,32 +26,65 @@
*/
public abstract class Gee.AbstractMap<K,V> : Object, Map<K,V> {
+ /**
+ * @inheritDoc
+ */
public abstract int size { get; }
+ /**
+ * @inheritDoc
+ */
public virtual bool is_empty {
get { return size == 0; }
}
+ /**
+ * @inheritDoc
+ */
public abstract Set<K> get_keys ();
+ /**
+ * @inheritDoc
+ */
public abstract Collection<V> get_values ();
+ /**
+ * @inheritDoc
+ */
public abstract bool contains (K key);
+ /**
+ * @inheritDoc
+ */
public abstract new V? get (K key);
+ /**
+ * @inheritDoc
+ */
public abstract new void set (K key, V value);
+ /**
+ * @inheritDoc
+ */
public abstract bool remove (K key, out V? value = null);
+ /**
+ * @inheritDoc
+ */
public abstract void clear ();
+ /**
+ * @inheritDoc
+ */
public virtual void set_all (Map<K,V> map) {
foreach (K key in map.get_keys ()) {
set (key, map.get (key));
}
}
+ /**
+ * @inheritDoc
+ */
public virtual bool remove_all (Map<K,V> map) {
bool changed = false;
foreach (K key in map.get_keys ()) {
@@ -60,6 +93,9 @@ public abstract class Gee.AbstractMap<K,V> : Object, Map<K,V> {
return changed;
}
+ /**
+ * @inheritDoc
+ */
public virtual bool contains_all (Map<K,V> map) {
foreach (K key in map.get_keys ()) {
if (!contains (key)) {
diff --git a/gee/arraylist.vala b/gee/arraylist.vala
index 0496c48..8eae29b 100644
--- a/gee/arraylist.vala
+++ b/gee/arraylist.vala
@@ -40,6 +40,11 @@ public class Gee.ArrayList<G> : AbstractList<G> {
// concurrent modification protection
private int _stamp = 0;
+ /**
+ * Array list implementation constructor.
+ *
+ * @param equal_func an optional elements equality testing function.
+ */
public ArrayList (EqualFunc? equal_func = null) {
if (equal_func == null) {
equal_func = Functions.get_equal_func_for (typeof (G));
@@ -47,14 +52,23 @@ public class Gee.ArrayList<G> : AbstractList<G> {
this.equal_func = equal_func;
}
+ /**
+ * @inheritDoc
+ */
public override Gee.Iterator<G> iterator () {
return new Iterator<G> (this);
}
+ /**
+ * @inheritDoc
+ */
public override bool contains (G item) {
return (index_of (item) != -1);
}
+ /**
+ * @inheritDoc
+ */
public override int index_of (G item) {
for (int index = 0; index < _size; index++) {
if (equal_func (_items[index], item)) {
@@ -64,6 +78,9 @@ public class Gee.ArrayList<G> : AbstractList<G> {
return -1;
}
+ /**
+ * @inheritDoc
+ */
public override G? get (int index) {
assert (index >= 0);
assert (index < _size);
@@ -71,6 +88,9 @@ public class Gee.ArrayList<G> : AbstractList<G> {
return _items[index];
}
+ /**
+ * @inheritDoc
+ */
public override void set (int index, G item) {
assert (index >= 0);
assert (index < _size);
@@ -78,6 +98,9 @@ public class Gee.ArrayList<G> : AbstractList<G> {
_items[index] = item;
}
+ /**
+ * @inheritDoc
+ */
public override bool add (G item) {
if (_size == _items.length) {
grow_if_needed (1);
@@ -87,6 +110,9 @@ public class Gee.ArrayList<G> : AbstractList<G> {
return true;
}
+ /**
+ * @inheritDoc
+ */
public override void insert (int index, G item) {
assert (index >= 0);
assert (index <= _size);
@@ -99,6 +125,9 @@ public class Gee.ArrayList<G> : AbstractList<G> {
_stamp++;
}
+ /**
+ * @inheritDoc
+ */
public override bool remove (G item) {
for (int index = 0; index < _size; index++) {
if (equal_func (_items[index], item)) {
@@ -109,6 +138,9 @@ public class Gee.ArrayList<G> : AbstractList<G> {
return false;
}
+ /**
+ * @inheritDoc
+ */
public override void remove_at (int index) {
assert (index >= 0);
assert (index < _size);
@@ -120,6 +152,9 @@ public class Gee.ArrayList<G> : AbstractList<G> {
_stamp++;
}
+ /**
+ * @inheritDoc
+ */
public override void clear () {
for (int index = 0; index < _size; index++) {
_items[index] = null;
@@ -128,6 +163,9 @@ public class Gee.ArrayList<G> : AbstractList<G> {
_stamp++;
}
+ /**
+ * @inheritDoc
+ */
public override List<G>? slice (int start, int stop) {
return_val_if_fail (start <= stop, null);
return_val_if_fail (start >= 0, null);
@@ -141,6 +179,9 @@ public class Gee.ArrayList<G> : AbstractList<G> {
return slice;
}
+ /**
+ * @inheritDoc
+ */
public override bool add_all (Collection<G> collection) {
if (collection.is_empty) {
return false;
@@ -154,6 +195,9 @@ public class Gee.ArrayList<G> : AbstractList<G> {
return true;
}
+ /**
+ * @inheritDoc
+ */
public override bool remove_all (Collection<G> collection) {
bool changed = false;
for (int index = 0; index < _size; index++) {
@@ -166,6 +210,9 @@ public class Gee.ArrayList<G> : AbstractList<G> {
return changed;
}
+ /**
+ * @inheritDoc
+ */
public override bool retain_all (Collection<G> collection) {
bool changed = false;
for (int index = 0; index < _size; index++) {
diff --git a/gee/functions.vala b/gee/functions.vala
index 8b0c99e..9303e0d 100644
--- a/gee/functions.vala
+++ b/gee/functions.vala
@@ -26,6 +26,13 @@ namespace Gee {
public class Functions {
+ /**
+ * Get a equality testing function for a given type.
+ *
+ * @param t the type which to get an equality testing function for.
+ *
+ * @return the equality testing function corresponding to the given type.
+ */
public static EqualFunc get_equal_func_for (Type t) {
if (t == typeof (string)) {
return str_equal;
@@ -34,6 +41,13 @@ namespace Gee {
}
}
+ /**
+ * Get a hash function for a given type.
+ *
+ * @param t the type which to get the hash function for.
+ *
+ * @return the hash function corresponding to the given type.
+ */
public static HashFunc get_hash_func_for (Type t) {
if (t == typeof (string)) {
return str_hash;
@@ -42,6 +56,13 @@ namespace Gee {
}
}
+ /**
+ * Get a comparator function for a given type.
+ *
+ * @param t the type which to get a comparator function for.
+ *
+ * @return the comparator function corresponding to the given type.
+ */
public static CompareFunc get_compare_func_for (Type t) {
if (t == typeof (string)) {
return (CompareFunc) strcmp;
@@ -51,6 +72,17 @@ namespace Gee {
}
}
+ /**
+ * Compares to arbitrary elements together.
+ *
+ * The comparison is done on pointers and not on values behind.
+ *
+ * @param _val1 the first value to compare.
+ * @param _val2 the second value to compare.
+ *
+ * @return a negative value if _val1 is lesser than _val2, a positive value
+ * if _val1 is greater then _val2 and zero if both are equal.
+ */
public static int direct_compare (void* _val1, void* _val2) {
long val1 = (long)_val1, val2 = (long)_val2;
if (val1 > val2) {
diff --git a/gee/hashset.vala b/gee/hashset.vala
index d30d222..17e07c4 100644
--- a/gee/hashset.vala
+++ b/gee/hashset.vala
@@ -32,8 +32,14 @@ public class Gee.HashSet<G> : AbstractCollection<G>, Set<G> {
get { return _nnodes; }
}
+ /**
+ * Hash function.
+ */
public HashFunc hash_func { private set; get; }
+ /**
+ * Equality testing function.
+ */
public EqualFunc equal_func { private set; get; }
private int _array_size;
@@ -46,6 +52,12 @@ public class Gee.HashSet<G> : AbstractCollection<G>, Set<G> {
private const int MIN_SIZE = 11;
private const int MAX_SIZE = 13845163;
+ /**
+ * Hash set implementation constructor.
+ *
+ * @param hash_func an optional hash function.
+ * @param equal_func an optional equality testing function.
+ */
public HashSet (HashFunc? hash_func = null, EqualFunc? equal_func = null) {
if (hash_func == null) {
hash_func = Functions.get_hash_func_for (typeof (G));
@@ -71,15 +83,24 @@ public class Gee.HashSet<G> : AbstractCollection<G>, Set<G> {
return node;
}
+ /**
+ * @inheritDoc
+ */
public override bool contains (G key) {
Node<G>** node = lookup_node (key);
return (*node != null);
}
+ /**
+ * @inheritDoc
+ */
public override Gee.Iterator<G> iterator () {
return new Iterator<G> (this);
}
+ /**
+ * @inheritDoc
+ */
public override bool add (G key) {
Node<G>** node = lookup_node (key);
if (*node != null) {
@@ -94,6 +115,9 @@ public class Gee.HashSet<G> : AbstractCollection<G>, Set<G> {
}
}
+ /**
+ * @inheritDoc
+ */
public override bool remove (G key) {
Node<G>** node = lookup_node (key);
if (*node != null) {
@@ -112,6 +136,9 @@ public class Gee.HashSet<G> : AbstractCollection<G>, Set<G> {
return false;
}
+ /**
+ * @inheritDoc
+ */
public override void clear () {
for (int i = 0; i < _array_size; i++) {
Node<G> node = (owned) _nodes[i];
diff --git a/gee/linkedlist.vala b/gee/linkedlist.vala
index 98c35db..c3adc20 100644
--- a/gee/linkedlist.vala
+++ b/gee/linkedlist.vala
@@ -33,8 +33,16 @@ public class Gee.LinkedList<G> : AbstractList<G> {
private Node? _head = null;
private Node? _tail = null;
+ /**
+ * Equality testing between elements function.
+ */
public EqualFunc equal_func { private set; get; }
+ /**
+ * Linked list implementation constructor.
+ *
+ * @param equal_func an optional equality testing function.
+ */
public LinkedList (EqualFunc? equal_func = null) {
if (equal_func == null) {
equal_func = Functions.get_equal_func_for (typeof (G));
@@ -42,20 +50,30 @@ public class Gee.LinkedList<G> : AbstractList<G> {
this.equal_func = equal_func;
}
- // Iterable<G>
+ /**
+ * @inheritDoc
+ */
public override Gee.Iterator<G> iterator () {
return new Iterator<G> (this);
}
- // Collection<G>
+ /**
+ * @inheritDoc
+ */
public override int size {
get { return this._size; }
}
+ /**
+ * @inheritDoc
+ */
public override bool contains (G item) {
return this.index_of (item) != -1;
}
+ /**
+ * @inheritDoc
+ */
public override bool add (G item) {
Node<G> n = new Node<G> (item);
if (this._head == null && this._tail == null) {
@@ -73,6 +91,9 @@ public class Gee.LinkedList<G> : AbstractList<G> {
return true;
}
+ /**
+ * @inheritDoc
+ */
public override bool remove (G item) { // Should remove only the first occurence (a test should be added)
for (Node<G> n = this._head; n != null; n = n.next) {
if (this.equal_func (item, n.data)) {
@@ -83,13 +104,18 @@ public class Gee.LinkedList<G> : AbstractList<G> {
return false;
}
+ /**
+ * @inheritDoc
+ */
public override void clear () {
++this._stamp;
this._head = this._tail = null;
this._size = 0;
}
- // List<G>
+ /**
+ * @inheritDoc
+ */
public override G? get (int index) {
assert (index >= 0);
assert (index < this._size);
@@ -102,6 +128,9 @@ public class Gee.LinkedList<G> : AbstractList<G> {
}
}
+ /**
+ * @inheritDoc
+ */
public override void set (int index, G item) {
assert (index >= 0);
assert (index < this._size);
@@ -111,6 +140,9 @@ public class Gee.LinkedList<G> : AbstractList<G> {
n.data = item;
}
+ /**
+ * @inheritDoc
+ */
public override int index_of (G item) {
int result = -1;
int idx = 0;
@@ -125,6 +157,9 @@ public class Gee.LinkedList<G> : AbstractList<G> {
return result;
}
+ /**
+ * @inheritDoc
+ */
public override void insert (int index, G item) {
assert (index >= 0);
assert (index <= this._size);
@@ -155,6 +190,9 @@ public class Gee.LinkedList<G> : AbstractList<G> {
}
}
+ /**
+ * @inheritDoc
+ */
public override void remove_at (int index) {
assert (index >= 0);
assert (index < this._size);
@@ -164,6 +202,9 @@ public class Gee.LinkedList<G> : AbstractList<G> {
this._remove_node (n);
}
+ /**
+ * @inheritDoc
+ */
public override List<G>? slice (int start, int stop) {
return_val_if_fail (start <= stop, null);
return_val_if_fail (start >= 0, null);
diff --git a/gee/readonlycollection.vala b/gee/readonlycollection.vala
index 870eb1c..c3496e5 100644
--- a/gee/readonlycollection.vala
+++ b/gee/readonlycollection.vala
@@ -26,28 +26,49 @@ using GLib;
* Represents a read-only collection of items.
*/
public class Gee.ReadOnlyCollection<G> : Object, Iterable<G>, Collection<G> {
+
+ /**
+ * @inheritDoc
+ */
public int size {
get { return _collection.size; }
}
+ /**
+ * @inheritDoc
+ */
public bool is_empty {
get { return _collection.is_empty; }
}
+ /**
+ * Generic collection property.
+ */
public Collection<G> collection {
construct { _collection = value; }
}
private Collection<G> _collection;
+ /**
+ * Read only collection constructor.
+ *
+ * @param collection the collection to decorate (may be null).
+ */
public ReadOnlyCollection (Collection<G>? collection = null) {
this.collection = collection;
}
+ /**
+ * @inheritDoc
+ */
public Type element_type {
get { return typeof (G); }
}
+ /**
+ * @inheritDoc
+ */
public Gee.Iterator<G> iterator () {
if (_collection == null) {
return new Iterator<G> ();
@@ -56,6 +77,9 @@ public class Gee.ReadOnlyCollection<G> : Object, Iterable<G>, Collection<G> {
return _collection.iterator ();
}
+ /**
+ * @inheritDoc
+ */
public bool contains (G item) {
if (_collection == null) {
return false;
@@ -64,22 +88,37 @@ public class Gee.ReadOnlyCollection<G> : Object, Iterable<G>, Collection<G> {
return _collection.contains (item);
}
+ /**
+ * Unimplemented method (read only collection).
+ */
public bool add (G item) {
assert_not_reached ();
}
+ /**
+ * Unimplemented method (read only collection).
+ */
public bool remove (G item) {
assert_not_reached ();
}
+ /**
+ * Unimplemented method (read only collection).
+ */
public void clear () {
assert_not_reached ();
}
+ /**
+ * Unimplemented method (read only collection).
+ */
public bool add_all (Collection<G> collection) {
assert_not_reached ();
}
+ /**
+ * @inheritDoc
+ */
public bool contains_all (Collection<G> collection) {
foreach (G element in collection) {
if (!contains (element)) {
@@ -89,14 +128,23 @@ public class Gee.ReadOnlyCollection<G> : Object, Iterable<G>, Collection<G> {
return true;
}
+ /**
+ * Unimplemented method (read only collection).
+ */
public bool remove_all (Collection<G> collection) {
assert_not_reached ();
}
+ /**
+ * Unimplemented method (read only collection).
+ */
public bool retain_all(Collection<G> collection) {
assert_not_reached ();
}
+ /**
+ * @inheritDoc
+ */
public G[] to_array() {
return _collection.to_array ();
}
diff --git a/gee/readonlylist.vala b/gee/readonlylist.vala
index 0fc1b55..fdedc26 100644
--- a/gee/readonlylist.vala
+++ b/gee/readonlylist.vala
@@ -26,28 +26,49 @@ using GLib;
* Represents a read-only collection of items in a well-defined order.
*/
public class Gee.ReadOnlyList<G> : Object, Iterable<G>, Collection<G>, List<G> {
+
+ /**
+ * @inheritDoc
+ */
public int size {
get { return _list.size; }
}
+ /**
+ * @inheritDoc
+ */
public bool is_empty {
get { return _list.is_empty; }
}
+ /**
+ * @inheritDoc
+ */
public List<G> list {
construct { _list = value; }
}
private List<G> _list;
+ /**
+ * Read only list implementation constrcutor.
+ *
+ * @param list the list to decorate (may be null).
+ */
public ReadOnlyList (List<G>? list = null) {
this.list = list;
}
+ /**
+ * @inheritDoc
+ */
public Type element_type {
get { return typeof (G); }
}
+ /**
+ * @inheritDoc
+ */
public Gee.Iterator<G> iterator () {
if (_list == null) {
return new Iterator<G> ();
@@ -56,6 +77,9 @@ public class Gee.ReadOnlyList<G> : Object, Iterable<G>, Collection<G>, List<G> {
return _list.iterator ();
}
+ /**
+ * @inheritDoc
+ */
public bool contains (G item) {
if (_list == null) {
return false;
@@ -64,6 +88,9 @@ public class Gee.ReadOnlyList<G> : Object, Iterable<G>, Collection<G>, List<G> {
return _list.contains (item);
}
+ /**
+ * @inheritDoc
+ */
public int index_of (G item) {
if (_list == null) {
return -1;
@@ -72,22 +99,37 @@ public class Gee.ReadOnlyList<G> : Object, Iterable<G>, Collection<G>, List<G> {
return _list.index_of (item);
}
+ /**
+ * Unimplemented method (read only list).
+ */
public bool add (G item) {
assert_not_reached ();
}
+ /**
+ * Unimplemented method (read only list).
+ */
public bool remove (G item) {
assert_not_reached ();
}
+ /**
+ * Unimplemented method (read only list).
+ */
public void insert (int index, G item) {
assert_not_reached ();
}
+ /**
+ * Unimplemented method (read only list).
+ */
public void remove_at (int index) {
assert_not_reached ();
}
+ /**
+ * @inheritDoc
+ */
public new G? get (int index) {
if (_list == null) {
return null;
@@ -96,22 +138,37 @@ public class Gee.ReadOnlyList<G> : Object, Iterable<G>, Collection<G>, List<G> {
return _list.get (index);
}
+ /**
+ * Unimplemented method (read only list).
+ */
public new void set (int index, G o) {
assert_not_reached ();
}
+ /**
+ * @inheritDoc
+ */
public void clear () {
assert_not_reached ();
}
+ /**
+ * Unimplemented method (read only list).
+ */
public List<G>? slice (int start, int stop) {
assert_not_reached ();
}
+ /**
+ * Unimplemented method (read only list).
+ */
public bool add_all (Collection<G> collection) {
assert_not_reached ();
}
+ /**
+ * @inheritDoc
+ */
public bool contains_all (Collection<G> collection) {
if (_list == null) {
return false;
@@ -119,14 +176,23 @@ public class Gee.ReadOnlyList<G> : Object, Iterable<G>, Collection<G>, List<G> {
return _list.contains_all (collection);
}
+ /**
+ * Unimplemented method (read only list).
+ */
public bool remove_all (Collection<G> collection) {
assert_not_reached ();
}
+ /**
+ * Unimplemented method (read only list).
+ */
public bool retain_all (Collection<G> collection) {
assert_not_reached ();
}
+ /**
+ * @inheritDoc
+ */
public G? first () {
if (_list == null) {
return null;
@@ -135,6 +201,9 @@ public class Gee.ReadOnlyList<G> : Object, Iterable<G>, Collection<G>, List<G> {
return _list.first ();
}
+ /**
+ * @inheritDoc
+ */
public G? last () {
if (_list == null) {
return null;
@@ -143,10 +212,16 @@ public class Gee.ReadOnlyList<G> : Object, Iterable<G>, Collection<G>, List<G> {
return _list.last ();
}
+ /**
+ * Unimplemented method (read only list).
+ */
public void insert_all (int index, Collection<G> collection) {
assert_not_reached ();
}
+ /**
+ * @inheritDoc
+ */
public G[] to_array() {
return _list.to_array ();
}
diff --git a/gee/readonlyset.vala b/gee/readonlyset.vala
index b7bdb7a..828d0d0 100644
--- a/gee/readonlyset.vala
+++ b/gee/readonlyset.vala
@@ -26,28 +26,49 @@ using GLib;
* Represents a read-only collection of items without duplicates.
*/
public class Gee.ReadOnlySet<G> : Object, Iterable<G>, Collection<G>, Set<G> {
+
+ /**
+ * @inheritDoc
+ */
public int size {
get { return _set.size; }
}
+ /**
+ * @inheritDoc
+ */
public bool is_empty {
get { return _set.is_empty; }
}
+ /**
+ * @inheritDoc
+ */
public new Set<G> set {
construct { _set = value; }
}
private Set<G> _set;
+ /**
+ * Read only set implementation constructor.
+ *
+ * @param set the set to decorate.
+ */
public ReadOnlySet (Set<G>? set = null) {
this.set = set;
}
+ /**
+ * @inheritDoc
+ */
public Type element_type {
get { return typeof (G); }
}
+ /**
+ * @inheritDoc
+ */
public Gee.Iterator<G> iterator () {
if (_set == null) {
return new Iterator<G> ();
@@ -56,6 +77,9 @@ public class Gee.ReadOnlySet<G> : Object, Iterable<G>, Collection<G>, Set<G> {
return _set.iterator ();
}
+ /**
+ * @inheritDoc
+ */
public bool contains (G item) {
if (_set == null) {
return false;
@@ -64,22 +88,37 @@ public class Gee.ReadOnlySet<G> : Object, Iterable<G>, Collection<G>, Set<G> {
return _set.contains (item);
}
+ /**
+ * Unimplemented method (read only set).
+ */
public bool add (G item) {
assert_not_reached ();
}
+ /**
+ * Unimplemented method (read only set).
+ */
public bool remove (G item) {
assert_not_reached ();
}
+ /**
+ * Unimplemented method (read only set).
+ */
public void clear () {
assert_not_reached ();
}
+ /**
+ * Unimplemented method (read only set).
+ */
public bool add_all (Collection<G> collection) {
assert_not_reached ();
}
+ /**
+ * @inheritDoc
+ */
public bool contains_all (Collection<G> collection) {
foreach (G element in collection) {
if (!contains (element)) {
@@ -89,14 +128,23 @@ public class Gee.ReadOnlySet<G> : Object, Iterable<G>, Collection<G>, Set<G> {
return true;
}
+ /**
+ * Unimplemented method (read only set).
+ */
public bool remove_all (Collection<G> collection) {
assert_not_reached ();
}
+ /**
+ * Unimplemented method (read only set).
+ */
public bool retain_all (Collection<G> collection) {
assert_not_reached ();
}
+ /**
+ * @inheritDoc
+ */
public G[] to_array() {
return _set.to_array ();
}
diff --git a/gee/treemap.vala b/gee/treemap.vala
index db943cf..25111aa 100644
--- a/gee/treemap.vala
+++ b/gee/treemap.vala
@@ -30,11 +30,24 @@ public class Gee.TreeMap<K,V> : Gee.AbstractMap<K,V> {
get { return _size; }
}
+ /**
+ * The keys comparator function.
+ */
public CompareFunc key_compare_func { private set; get; }
+
+ /**
+ * The values equality testing function.
+ */
public EqualFunc value_equal_func { private set; get; }
private int _size = 0;
+ /**
+ * Tree map implementation constructor.
+ *
+ * @param key_compare_func an optional key comparator function.
+ * @param value_equal_func an optional values equality testing function.
+ */
public TreeMap (CompareFunc? key_compare_func = null, EqualFunc? value_equal_func = null) {
if (key_compare_func == null) {
key_compare_func = Functions.get_compare_func_for (typeof (K));
@@ -46,10 +59,16 @@ public class Gee.TreeMap<K,V> : Gee.AbstractMap<K,V> {
this.value_equal_func = value_equal_func;
}
+ /**
+ * @inheritDoc
+ */
public override Set<K> get_keys () {
return new KeySet<K,V> (this);
}
+ /**
+ * @inheritDoc
+ */
public override Collection<V> get_values () {
return new ValueCollection<K,V> (this);
}
@@ -80,6 +99,9 @@ public class Gee.TreeMap<K,V> : Gee.AbstractMap<K,V> {
return n == null || n.color == Node.Color.BLACK;
}
+ /**
+ * @inheritDoc
+ */
public override bool contains (K key) {
weak Node<K, V>? cur = root;
while (cur != null) {
@@ -95,6 +117,9 @@ public class Gee.TreeMap<K,V> : Gee.AbstractMap<K,V> {
return false;
}
+ /**
+ * @inheritDoc
+ */
public override V? get (K key) {
weak Node<K, V>? cur = root;
while (cur != null) {
@@ -135,6 +160,9 @@ public class Gee.TreeMap<K,V> : Gee.AbstractMap<K,V> {
fix_up (ref node);
}
+ /**
+ * @inheritDoc
+ */
public override void set (K key, V value) {
set_to_node (ref root, key, value, null, null);
root.color = Node.Color.BLACK;
@@ -227,6 +255,9 @@ public class Gee.TreeMap<K,V> : Gee.AbstractMap<K,V> {
}
}
+ /**
+ * @inheritDoc
+ */
public override bool remove (K key, out V? value = null) {
V node_value;
bool b = remove_from_node (ref root, key, out node_value);
@@ -242,6 +273,9 @@ public class Gee.TreeMap<K,V> : Gee.AbstractMap<K,V> {
return b;
}
+ /**
+ * @inheritDoc
+ */
public override void clear () {
root = null;
_size = 0;
diff --git a/gee/treeset.vala b/gee/treeset.vala
index 8b6d1fd..61537ff 100644
--- a/gee/treeset.vala
+++ b/gee/treeset.vala
@@ -30,10 +30,18 @@ public class Gee.TreeSet<G> : AbstractCollection<G>, Set<G> {
get {return _size;}
}
+ /**
+ * The elements comparator function.
+ */
public CompareFunc compare_func { private set; get; }
private int _size = 0;
+ /**
+ * Tree set implementation constructor.
+ *
+ * @param compare_func an optional elements comparator function.
+ */
public TreeSet (CompareFunc? compare_func = null) {
if (compare_func == null) {
compare_func = Functions.get_compare_func_for (typeof (G));
@@ -41,6 +49,9 @@ public class Gee.TreeSet<G> : AbstractCollection<G>, Set<G> {
this.compare_func = compare_func;
}
+ /**
+ * @inheritDoc
+ */
public override bool contains (G item) {
weak Node<G>? cur = root;
while (cur != null) {
@@ -120,6 +131,11 @@ public class Gee.TreeSet<G> : AbstractCollection<G>, Set<G> {
}
}
+ /**
+ * @inheritDoc
+ *
+ * If the element already exists in the set it will not be added twice.
+ */
public override bool add (G item) {
bool r = add_to_node (ref root, item, null, null);
root.color = Node.Color.BLACK;
@@ -202,6 +218,9 @@ public class Gee.TreeSet<G> : AbstractCollection<G>, Set<G> {
}
}
+ /**
+ * @inheritDoc
+ */
public override bool remove (G item) {
bool b = remove_from_node (ref root, item);
if (root != null) {
@@ -211,12 +230,18 @@ public class Gee.TreeSet<G> : AbstractCollection<G>, Set<G> {
return b;
}
+ /**
+ * @inheritDoc
+ */
public override void clear () {
root = null;
_size = 0;
stamp++;
}
+ /**
+ * @inheritDoc
+ */
public override Gee.Iterator<G> iterator () {
return new Iterator<G> (this);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]