| 
<?
//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 :)
 ?>
 |