protected function processPattern($pattern)
 {
     if ($this->isProcessed($pattern) || !isset($this->patternDataStore[$pattern]) || $this->patternDataStore[$pattern]['category'] != 'pattern') {
         return;
     }
     $this->setProcessed($pattern);
     $patternSpecificData = $this->processData(Data::getPatternSpecificData($pattern));
     $dataStore = Data::get();
     foreach (array_keys($patternSpecificData) as $key) {
         if (!isset($dataStore['patternSpecific'][$pattern]['data'][$key])) {
             // Value is default global data.
             if (is_object($dataStore[$key])) {
                 $patternSpecificData[$key] = clone $dataStore[$key];
             }
         }
     }
     Data::initPattern($pattern);
     Data::setPatternData($pattern, $patternSpecificData);
 }
 public function run()
 {
     $store = PatternData::get();
     foreach ($store as $patternStoreKey => $patternStoreData) {
         if ($patternStoreData["category"] == "pattern") {
             if (isset($patternStoreData["data"]) || isset($patternStoreData["listItems"])) {
                 Data::initPattern($patternStoreKey);
             }
             if (isset($patternStoreData["data"])) {
                 Data::setPatternData($patternStoreKey, $patternStoreData["data"]);
             }
             if (isset($patternStoreData["listItems"])) {
                 Data::setPatternListItems($patternStoreKey, $patternStoreData["listItems"]);
             }
         }
     }
     // walk across the data and change link.pattern-partial to real source
     Data::compareReplaceListVarsInit();
 }
 public function run()
 {
     $store = PatternData::get();
     foreach ($store as $patternStoreKey => $patternStoreData) {
         if ($patternStoreData["category"] == "pattern") {
             if (isset($patternStoreData["data"]) || isset($patternStoreData["listItems"])) {
                 Data::initPattern($patternStoreKey);
             }
             if (isset($patternStoreData["data"])) {
                 Data::setPatternData($patternStoreKey, $patternStoreData["data"]);
             }
             if (isset($patternStoreData["listItems"])) {
                 Data::setPatternListItems($patternStoreKey, $patternStoreData["listItems"]);
             }
         }
     }
     // walk across the data and change link.pattern-partial to real source
     $data = Data::get();
     array_walk_recursive($data, '\\PatternLab\\Util::compareReplace');
 }