add

Usage    - $set->add($element)
Returns  - true if the element was successfully added
Args     - the element to be added
Function - adds an element to this set

add_all

Usage    - $set->add_all($ele1, $ele2, $ele3, ...)
Returns  - true if the elements were successfully added
Args     - the elements to be added
Function - adds the given elements to this set

get_set

Usage    - $set->get_set()
Returns  - this set
Args     - none
Function - returns this set

contains

Usage    - $set->contains($ele)
Returns  - 1 (true) if this set contains the given element
Args     - the element to be checked
Function - checks if this set constains the given element

size

Usage    - $set->size()
Returns  - the size of this set
Args     - none
Function - tells the number of elements held by this set

clear

Usage    - $set->clear()
Returns  - none
Args     - none
Function - clears this list

remove

Usage    - $set->remove($element_to_be_removed)
Returns  - 1 (true) if this set contained the given element
Args     - element to be removed from this set, if present
Function - removes an element from this set if it is present

is_empty

Usage    - $set->is_empty()
Returns  - true if this set is empty
Args     - none
Function - checks if this set is empty

equals

Usage    - $set->equals($another_set)
Returns  - either 1 (true) or 0 (false)
Args     - the set (Core::Util::Set) to compare with
Function - tells whether this set is equal to the given one

NAME

OBO::Util::Set - An implementation of a set of scalars (sensu PERL).

SYNOPSIS

use OBO::Util::Set;

use strict;

my $my_set = OBO::Util::Set->new();

$my_set->add("APO:P0000001");

print "contains" if ($my_set->contains("APO:P0000001"));

$my_set->add_all("APO:P0000002", "APO:P0000003", "APO:P0000004");

print "contains" if ($my_set->contains("APO:P0000002") && $my_set->contains("APO:P0000003") && $my_set->contains("APO:P0000004"));

foreach ($my_set->get_set()) {

print $_, "\n";

}

print "\nContained!\n" if ($my_set->contains("APO:P0000001"));

my $my_set2 = OBO::Util::Set->new();

$my_set2->add_all("APO:P0000001", "APO:P0000002", "APO:P0000003", "APO:P0000004");

print "contains" if ($my_set2->contains("APO:P0000002") && $my_set->contains("APO:P0000003") && $my_set->contains("APO:P0000004"));

$my_set->equals($my_set2);

$my_set2->size() == 4;

$my_set2->remove("APO:P0000003");

print "contains" if ($my_set2->contains("APO:P0000001") && $my_set->contains("APO:P0000002") && $my_set->contains("APO:P0000004"));

$my_set2->size() == 3;

$my_set2->remove("APO:P0000005");

print "contains" if ($my_set2->contains("APO:P0000001") && $my_set->contains("APO:P0000002") && $my_set->contains("APO:P0000004"));

$my_set2->size() == 3;

$my_set2->clear();

print "not contains" if (!$my_set2->contains("APO:P0000001") || !$my_set->contains("APO:P0000002") || !$my_set->contains("APO:P0000004"));

$my_set2->size() == 0;

if ($my_set2->is_empty()) { print "my_set2 is empty"; }

DESCRIPTION

A collection that contains no duplicate elements. More formally, sets contain no pair of elements $e1 and $e2 such that $e1->equals($e2). As implied by its name, this interface models the mathematical set abstraction.

AUTHOR

Erick Antezana, <erick.antezana -@- gmail.com>

COPYRIGHT AND LICENSE

Copyright (c) 2006-2015 by Erick Antezana. All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.7 or, at your option, any later version of Perl 5 you may have available.