<commit_before>import GomlNodeListElement = require("./GomlNodeListElement");
import JThreeObject = require("../Base/JThreeObject");
import EasingFunction = require("./Easing/EasingFunctionBase");
import AssociativeArray = require("../Base/Collections/AssociativeArray");
import AttributeConvrterBase = require("./Converter/AttributeConverterBase");
import GomlTreeNodeBase = require('./GomlTreeNodeBase');

declare function require(string): any;

/**
 * Provides configurations that will be used when parse GOML.
 * These properties is intended to be used for extending by plugin feature.
 */
class GomlConfigurator extends JThreeObject
{
    /**
     * List of easing function to indicate how animation will be.
     */
    private easingFunctions: AssociativeArray<EasingFunction> = new AssociativeArray<EasingFunction>();
    /**
     * List of converter function classes.
     */
    private converters: AssociativeArray<AttributeConvrterBase> = new AssociativeArray<AttributeConvrterBase>();
    /**
     * All list of goml tags that will be parsed and instanciated when parse GOML.
     *
     * Keyはタグ名の文字列(大文字)、ValueはGomlNodeのコンストラクタ
     */
    private gomlNodes: AssociativeArray<GomlTreeNodeBase> = new AssociativeArray<GomlTreeNodeBase>();

    public getConverter(name: string): AttributeConvrterBase
    {
        return this.converters.get(name);
    }

    public getEasingFunction(name: string): EasingFunction
    {
        return this.easingFunctions.get(name);
    }

    /**
     * タグ名からGomlNodeを取得します
     *
     * @param  {string} tagName タグ名
     * @return {GomlTreeNodeBase}
     */
    public createNode(tagName: string): GomlTreeNodeBase
    {
        return this.gomlNodes.get(tagName.toUpperCase());
    }

    /**
     * `TagFactory`, `Converter`の定義を行っています
     *
     * `TagFactory`はNodeを生成するために必要です。ここではタグ名とTagFactoryの関連付けを行っております。
     */
    constructor()
    {
        super();
        this.initializeEasingFunctions();
        this.initializeConverters();
        this.initializeGomlNodes();
    }<commit_msg>GomlConfigurator will manage GomlNodes insteed of TagFactory<commit_after>import GomlNodeListElement = require("./GomlNodeListElement");
import JThreeObject = require("../Base/JThreeObject");
import EasingFunction = require("./Easing/EasingFunctionBase");
import AssociativeArray = require("../Base/Collections/AssociativeArray");
import AttributeConvrterBase = require("./Converter/AttributeConverterBase");
import GomlTreeNodeBase = require('./GomlTreeNodeBase');

declare function require(string): any;

/**
 * Provides configurations that will be used when parse GOML.
 * These properties is intended to be used for extending by plugin feature.
 */
class GomlConfigurator extends JThreeObject
{
    /**
     * List of easing function to indicate how animation will be.
     */
    private easingFunctions: AssociativeArray<EasingFunction> = new AssociativeArray<EasingFunction>();
    /**
     * List of converter function classes.
     */
    private converters: AssociativeArray<AttributeConvrterBase> = new AssociativeArray<AttributeConvrterBase>();
    /**
     * All list of goml tags that will be parsed and instanciated when parse GOML.
     *
     * Keyはタグ名の文字列(大文字)、ValueはGomlNodeのコンストラクタ
     */
    private gomlNodes: AssociativeArray<GomlTreeNodeBase> = new AssociativeArray<GomlTreeNodeBase>();

    public getConverter(name: string): AttributeConvrterBase
    {
        return this.converters.get(name);
    }

    public getEasingFunction(name: string): EasingFunction
    {
        return this.easingFunctions.get(name);
    }

    /**
     * タグ名からGomlNodeを取得します
     *
     * @param  {string} tagName タグ名
     * @return {GomlTreeNodeBase}
     */
    public getGomlNode(tagName: string): GomlTreeNodeBase
    {
        return this.gomlNodes.get(tagName.toUpperCase());
    }

    /**
     * `TagFactory`, `Converter`の定義を行っています
     *
     * `TagFactory`はNodeを生成するために必要です。ここではタグ名とTagFactoryの関連付けを行っております。
     */
    constructor()
    {
        super();
        this.initializeEasingFunctions();
        this.initializeConverters();
        this.initializeGomlNodes();
    }
{'fraction_non_alphanumeric': 0.10241545893719807, 'fraction_numerical': 0.0, 'mean_word_length': 3.616499442586399, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 15, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1062660', 'n_tokens_mistral': 1302, 'n_tokens_neox': 1272, 'n_words': 256}