]>
Commit | Line | Data |
---|---|---|
4188f38a | 1 | <?php |
2 | ||
3 | /** | |
4 | * Description of FileElement | |
5 | * | |
6 | * @author Sander | |
7 | */ | |
8 | class FileElement { | |
9 | /** | |
10 | * @var FileObject | |
11 | */ | |
12 | public $elements; | |
13 | ||
14 | /** | |
15 | * Make a record to be stored in a file | |
16 | * @param Record $record | |
17 | */ | |
18 | public function __construct($elements = array()){ | |
19 | $this->elements = $elements; | |
20 | } | |
21 | ||
22 | public function getByteLength(){ | |
23 | return $this->getLength(); | |
24 | } | |
25 | ||
26 | public function getLength(){ | |
27 | $total = 0; | |
28 | foreach($this->elements as $val){ | |
29 | $total += $val->getByteLength(); | |
30 | } | |
31 | return $total; | |
32 | } | |
33 | ||
34 | public function offsetToEntry($name){ | |
35 | $pos = 0; | |
36 | foreach($this->elements as $key=>$value){ | |
37 | if($name == $key){ | |
38 | break; | |
39 | } | |
40 | $pos += $value->getByteLength(); | |
41 | } | |
42 | return $pos; | |
43 | } | |
44 | ||
45 | public function exists($key){ | |
46 | return isset($this->elements[$key]); | |
47 | } | |
48 | /** | |
49 | * @param string $key | |
50 | * @return FileObject | |
51 | */ | |
52 | public function get($key){ | |
53 | return $this->elements[$key]; | |
54 | } | |
55 | ||
56 | /** | |
57 | * @param string $key | |
58 | * @param FileObject $value | |
59 | */ | |
60 | public function set($key, $value){ | |
61 | $this->elements[$key] = $value; | |
62 | } | |
63 | ||
64 | public function add($key, $value){ | |
65 | $this->elements[$key] = $value; | |
66 | } | |
67 | ||
68 | public function serialize() { | |
69 | $result = ""; | |
70 | foreach($this->elements as $val){ | |
71 | $result .= $val->serialize(); | |
72 | } | |
73 | return $result; | |
74 | } | |
75 | ||
76 | public function unserialize($data) { | |
77 | //TODO: If reading is needed -> way more complex | |
78 | } | |
79 | ||
80 | public function __toString(){ | |
81 | $output = "FileElement (".$this->getByteLength()." bytes): {\n"; | |
82 | foreach($this->elements as $key=>$value){ | |
83 | $output .= "\t".$key.": ".$value."\n"; | |
84 | } | |
85 | $output .= "}"; | |
86 | return $output; | |
87 | } | |
88 | } | |
89 | ?> |