/* [<][>][^][v][top][bottom][index][help] */
DEFINITIONS
This source file includes following definitions.
- setOptions
 - getOptions
 - getSkipifKey
 - getSkipifExt
 - hasSkipif
 - hasSkipifKey
 - hasSkipifExt
 - hasIni
 - hasClean
 - hasDone
 
<?php
class gtOptionalSections {
  private $optSections = array(
    'skipif' => false,
    'ini'    => false,
    'clean'  => false,
    'done'   => false,
  );
  private $skipifKey = '';
  private $skipifExt = '';
  public function setOptions($commandLineOptions) {
    if($commandLineOptions->hasOption('s')) {
      $options = explode(':', $commandLineOptions->getOption('s'));
      foreach($options as $option) {
        if(array_key_exists($option, $this->optSections )) {
          $this->optSections[$option] = true;
        } else {
          throw new gtUnknownSectionException('Unrecognised optional section');
        }
      }
      if($commandLineOptions->hasOption('k')) {
        $this->skipifKey = $commandLineOptions->getOption('k');
      }
      
      if($commandLineOptions->hasOption('x')) {
        $this->skipifExt = $commandLineOptions->getOption('x');
      }
      
    }
  }
  public function getOptions() {
    return $this->optSections;
  }
  public function getSkipifKey() {
    return $this->skipifKey;
  }
  
  public function getSkipifExt() {
    return $this->skipifExt;
  }
  public function hasSkipif() {
    return $this->optSections['skipif'];
  }
  public function hasSkipifKey() {
    if($this->skipifKey != '') {
      return true;
    }
    return false;
  }
  
  public function hasSkipifExt() {
    if($this->skipifExt != '') {
      return true;
    }
    return false;
  }
  public function hasIni() {
    return $this->optSections['ini'];
  }
  public function hasClean() {
    return $this->optSections['clean'];
  }
  
  public function hasDone() {
    return $this->optSections['done'];
  }
}