<?php
class Detail {
	private $label;
	private $link;
	private $summary;

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

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

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