<?php 

namespace NPS\DependencyInjection;

use NPS\Model\TraversableXMLElement as XML;

/**
 * Interface for a traversable XML parser
 * @author Lukas Korinek
 */
interface IXMLContentParser
{
    /**
     * Parses an XML content structure
     * @param XML $xml XML to parse
     * @param string $filesDiscriminatorTag Will filter files using this tag
     * @return bool
     */
    function parse(XML $xml, $filesDiscriminatorTag);

    /**
     * Parses a text string
     * For indexes support and future use
     * @param string $str 
     * @return string 
     */
    function parseText($str);

    /**
     * Gets the parsed title
     * @return string|null
     */
    function getTitle();

    /**
     * Gets the parsed description
     * @return string|null
     */
    function getDescription();

    /**
     * Gets the parsed images
     * @return array
     */
    function getImages();

    /**
     * Gets the parsed videos
     * @return array
     */
    function getVideos();

    /**
     * Gets the parsed sounds
     * @return array
     */
    function getSounds();
}

