public function parse()
    {
        if (!empty($this->transformed_data)) {
            return;
        }

        $data = $this->data;
        if (count($data)===1 && !isset($data['src']) && isset($data[0])) {
            $data = array( 'src' => $data[0] );
        }
        $data = array_merge(self::$defaults, $data);

        $src = $data['src'];
        if (!empty($src)) {
            if (substr_count($src, ':')) {
                unset($data['src']);
                $substrs = explode(':', $src);
                if (count($substrs)>4) {
                    throw new \Exception(
                        sprintf('Statement css of preset "%s" is malformed (%s)!', $this->preset->getName(), $src)
                    );
                }
                foreach ($substrs as $substr) {
                    switch ($substr) {
                        case 'min': $data['minified'] = true; break;
                        case 'first': $data['position'] = Preset::FILES_STACK_FIRST; break;
                        case 'last': $data['position'] = Preset::FILES_STACK_LAST; break;
                        default:
                            if (is_numeric($substr)) {
                                if (!((-1 <= $substr) && (100 >= $substr))) {
                                    throw new \Exception(
                                        sprintf('A position must be in range [-1;100] for css statement of preset "%s" (got %s)!',
                                            $this->preset->getName(), $substr)
                                    );
                                }
                                $data['position'] = $substr;
                            } else {
                                if (empty($data['src'])) {
                                    $data['src'] = $substr;
                                } else {
                                    $data['media'] = $substr;
                                }
                            }
                            break;
                    }
                }
            }
        } else {
            throw new \Exception(
                sprintf('No source file defined for statement css of preset "%s"!', $this->preset->getName())
            );
        }

        $this->transformed_data = $data;
        if (! \AssetsManager\Loader::isUrl($this->transformed_data['src'])) {
            $this->transformed_data['src'] = $this->preset->findInPackage($this->transformed_data['src']);
        }
    }