<?
//Here are some examples
//Let me start with an important note: YOU MUST EDIT THE CONFIG FILE!!! :)
require_once('GenericCollection.php');
require_once('GenericDictionary.php');
require_once('GenericQueue.php');
require_once('GenericStack.php');
//There are 4 collections in this package. Each of them has 2 versions: one generic and one not generic.
//All of the collections extend the Enumerable class so I'll start with some info about it's methods.
//The Enumerable class is abstract so I'll make a simple Collection to explain it's methods.
$a = new Collection(15, array(1,2,3,4,5));
//To clear the collection use:
$a->Clear();
//To get the number of elements in the collection use:
$a->Count();
//To check whether a collection is empty use:
$a->IsEmpty();
//To print the collection use:
$a->PrintCollection(false);
//If the parameter is true, the collection will be printed using var_dump, otherwise print_r will be used
//Default value is false
//To get the array in which the collection stores it's elements use:
$d = $a->GetArray();
//To get an iterator use:
$e = $a->getIterator();
//All collections have these methods.
//Now some info about the constructors of the collections
//Creates a Collection that contains the items in the array. You can also use anything that extends IteratorAggregate.
//Also sets the exceptions level to 13 (*)
$a = new Collection(13, array(1,2,3,4,5)); //All params optional
//Creates a GenericCollection that accepts only items of the primitive type int. (**)
$a = new GenericCollection(Type::GetType('`int`'), 15, array(1,2,3,4,5)); //last two params are optional
//Creates a Dictionary and sets the exceptions lavel (*)
$b = new Dictionary(ExceptionsManager::EX_FATAL); //the param is optional
//Creates a GenericDictionary with int keys and string values
$b = new GenericDictionary(Type::GetType('`int`'), Type::GetType('`string`'), 13); //the last param is optional
//Creates a Stack
$c = new Stack(ExceptionsManager::EX_HIGH); //the param is optional
//Creates a GenericStack with int elements
$c = new GenericStack(Type::GetType('`int`'), 12); //last param is optional
//Creates a Queue
$d = new Queue(10); //param optional
//Creates a GenericQueue with bool elements
$d= new GenericQueue(Type::GetType('`bool`'), 2); //last param is optional
//(*) - For more information read the example in the ExceptionsManager package
//(**) - For more information read the example in the Generics package
//It is very important to read the example in the Generics package if you want to use the Generic versions of the classes
//Now lets create one of each non-generic type
$a = new Collection();
$b = new Dictionary();
$c = new Stack();
$d = new Queue();
//To add an element use:
$a->Add(12);
$b->Add('key', 'value');
$c->Push(true);
$d->Enqueue(123.23);
//To remove an element use:
$a->Remove(12); //removes the element 12
$a->RemoveAt(0); //removes the element at position 0
$b->Remove('key');
//Stack and Queue don't have methods to do this
//To add multiple values from an array ot anything that extends IteratorAggregate use:
$a->AddRange(array(1,2));
$c->PushMultiple(array(1,2));
$d->EnqueueMultiple(array(1,2));
//Dictionary doesn't have a method for this
//To check whether some element is in a collection use:
$a->Contains(12);
$b->ContainsKey('key');
$b->ContainsValue('value');
$c->Contains(123);
$d->Contains('sdfsd');
//Collection and Dictionary implement ArrayAccess, so you can use them as arrays
//To get the index of the first occurance of an element in a Collection use:
$a->IndexOf('item', 2,5); //tha last two params are optional: first and last element positions to search
//For the last index use:
$a->LastIndexOf('item',2,3);
//To get an array of all positions at which an element occurs use:
$a->AllIndexesOf('item');
//To get the n-th element of a Collection use:
$n=123;
$a->ElementAt($n);
//Stack, Queue and Dictionary doesn't have methods for this
//In Collection you can insert an item in a specific position less than the number of elements in the collection
$a->Insert(2,'item');
//If $a has 1,2,3,4 before the insertion, after that $a will have 1,2,'item',3,4
//To get an array of all keys in a Dictionary use:
$b->Keys();
//To get the values use:
$b->Values();
$res;
$b->TryGetValue('key', $res);
//returns false if the key doesn't exist and true if it does and sets the velue of $res to the element corresponding to the key
$c->Peek(); //Returns the last element inserted into the Stack
$c->Pop(); //Returns the last element inserted into the Stack and removes it
$d->Peek(); //Returns the first element inserted into the Queue
$d->Dequeue(); //Returns the first element inserted into the Queue and removes it
//As seen above:
//The Stack class implements the LIFO data structure
//The Queue class implements the FIFO data structure
//GenericCollection, GenericStack and GenericQueue have the method GetType()
$a = new GenericCollection(Type::GetType('`int`'));
$a->GetType(); //Retrurns the Type object createed by Type::GetType('`int`')
//GenericDictionary has methods: GetKeyType() and GetValueType()
//All generic classes implement the IGeneric interface
//For more information on it's methods see the example in the Generics package
//If you need any help send me a mail :)
?>
|