<?php
class Dependency {
	private $label;
	private $link;

	function __construct( $label, $link ) {
		$this->label = $label;
		$this->link = $link;
	}

	function getLabel() {
		return $this->label;
	}

	function getLink() {
		return $this->link;
	}
	
	function render() {
		$result = $result . "<small><a href=\"" . $this->link . "\">" . $this->label . "</a></small>";
		
		if ( strlen( $this->size) > 0 )
		 	$result = $result . " (" . $this->size . ")" ;
		return $result;
	}
}
?>