public function __construct($settings, $records)
{
parent::__construct(array('title' => new FileString(32), 'attributes' => new FileShort(), 'version' => new FileShort(), 'creationTime' => new FileDate(), 'modificationTime' => new FileDate(), 'backupTime' => new FileDate(), 'modificationNumber' => new FileInt(), 'appInfoID' => new FileInt(), 'sortInfoID' => new FileInt(), 'prcType' => new FileString(4), 'creator' => new FileString(4), 'uniqueIDSeed' => new FileInt(), 'nextRecordListID' => new FileInt(), 'numberRecords' => new FileShort(), 'recordList' => new FileElement(), 'filler' => new FileShort(), 'records' => new FileElement()));
//Set values from the info block
foreach ($this->elements as $name => $val) {
if ($settings->exists($name)) {
$this->get($name)->set($settings->get($name));
}
}
$this->get('numberRecords')->set(sizeof($records));
$i = 0;
foreach ($records as $record) {
$offset = new FileInt();
$attr = new FileByte();
$uniqueID = new FileTri($i);
$this->elements['recordList']->add('Rec' . $i, new FileElement(array('offset' => $offset, 'attribute' => $attr, 'uniqueID' => $uniqueID)));
$this->elements['records']->add('Rec' . $i, $record);
++$i;
}
$this->updateOffsets($records);
}