HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers84/zuiderbos.nl/vendor/nqxcode/phpmorphy/src/phpMorphy/Dict/Source/Xml.php
<?php
/*
* This file is part of phpMorphy project
*
* Copyright (c) 2007-2012 Kamaev Vladimir <heromantor@users.sourceforge.net>
*
*     This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
*     This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
* Lesser General Public License for more details.
*
*     You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/

class phpMorphy_Dict_Source_Xml implements phpMorphy_Dict_Source_SourceInterface {
    protected
        $xml_file,
        $locale;

    function __construct($xmlFile) {
        $this->xml_file = $xmlFile;

        foreach(new phpMorphy_Dict_Source_Xml_Section_Options($xmlFile) as $key => $value) {
            if('locale' === $key) {
                $this->locale = $value;
                break;
            }
        }

        if(!strlen($this->locale)) {
            throw new Exception("Can`t find locale in '{$xmlFile}' file");
        }
    }

    function getName() {
        return 'morphyXml';
    }

    function getLanguage() {
        return $this->locale;
    }

    function getDescription() {
        return "Morphy xml file '{$this->xml_file}'";
    }

    function getAncodes() {
        return new phpMorphy_Dict_Source_Xml_Section_Ancodes($this->xml_file);
    }

    function getFlexias() {
        return new phpMorphy_Dict_Source_Xml_Section_Flexias($this->xml_file);
    }

    function getPrefixes() {
        return new phpMorphy_Dict_Source_Xml_Section_Prefixes($this->xml_file);
    }

    function getLemmas() {
        return new phpMorphy_Dict_Source_Xml_Section_Lemmas($this->xml_file);
    }

    function getAccents() {
        // HACK: all lemmas points to accent model with 0 index and length = 4096
        $accent_model = new phpMorphy_Dict_AccentModel(0);
        $accent_model->import(new ArrayIterator(array_fill(0, 4096, null)));

        return new ArrayIterator(array( 0 => $accent_model));
    }
}