haxeui/haxeui-core

View on GitHub
haxe/ui/parsers/modules/Module.hx

Summary

Maintainability
Test Coverage
package haxe.ui.parsers.modules;

class Module {
    public static inline var DEFAULT_HAXEUI_PREFIX = "core";
    public static inline var DEFAULT_HAXEUI_NAMESPACE = "urn::haxeui::org";

    public var id(default, default):String;
    public var preloader(default, default):String;
    public var rootPath(default, default):String;
    public var classPath(default, default):String;
    public var priority(default, default):Int = 0;
    public var preloadList(default, default):String;
    public var resourceEntries(default, default):Array<ModuleResourceEntry>;
    public var componentEntries(default, default):Array<ModuleComponentEntry>;
    public var layoutEntries(default, default):Array<ModuleLayoutEntry>;
    public var themeEntries(default, default):Map<String, ModuleThemeEntry>;
    public var properties(default, default):Array<ModulePropertyEntry>;
    public var preload(default, default):Array<ModulePreloadEntry>;
    public var locales(default, default):Array<ModuleLocaleEntry>;
    public var validators(default, default):Array<ModuleValidatorEntry>;
    public var actionInputSources(default, default):Array<ModuleActionInputSourceEntry>;
    public var namespaces(default, default):Map<String, String>;
    public var imageLoaders(default, default):Array<ModuleImageLoaderEntry>;
    public var cssFunctions(default, default):Array<ModuleCssFunctionEntry>;
    public var cssFilters(default, default):Array<ModuleCssFilterEntry>;
    public var cssDirectives(default, default):Array<ModuleCssDirectiveEntry>;

    public function new() {
        resourceEntries = [];
        componentEntries = [];
        layoutEntries = [];
        themeEntries = new Map<String, ModuleThemeEntry>();
        properties = [];
        preload = [];
        locales = [];
        validators = [];
        actionInputSources = [];
        namespaces = new Map<String, String>();
        imageLoaders = [];
        cssFunctions = [];
        cssFilters = [];
        cssDirectives = [];
    }

    public function validate() {
        var namespaceCount = 0;
        for (_ in namespaces.keys()) {
            namespaceCount++;
        }
        if (namespaceCount == 0) { // if no namespaces set, we'll consider the module in the core namespace
            namespaces.set(DEFAULT_HAXEUI_PREFIX, DEFAULT_HAXEUI_NAMESPACE);
        }
    }
}

class ModuleResourceEntry {
    public static var globalExclusions(default, default):Array<String> = [];
    public static var globalInclusions(default, default):Array<String> = [];
    
    public var path(default, default):String;
    public var prefix(default, default):String;
    public var exclusions(default, default):Array<String>;
    public var inclusions(default, default):Array<String>;

    public function new() {
        exclusions = [];
        inclusions = [];
    }
}

class ModuleClassEntry {
    public var classPackage(default, default):String;
    public var className(default, default):String;
    public var classFolder(default, default):String;
    public var classFile(default, default):String;
    public var loadAll(default, default):Bool;

    public function new() {
    }
}

class ModuleComponentEntry extends ModuleClassEntry {
}

class ModuleLayoutEntry extends ModuleClassEntry {
}

class ModuleThemeEntry {
    public var name(default, default):String;
    public var parent(default, default):String;
    public var styles(default, default):Array<ModuleThemeStyleEntry>;
    public var images(default, default):Array<ModuleThemeImageEntry>;
    public var vars(default, default):Map<String, String>;

    public function new() {
        styles = [];
        images = [];
        vars = new Map<String, String>();
    }
}

class ModuleThemeStyleEntry {
    public var resource:String;
    public var styleData:String;
    public var priority:Float = 0;

    public function new() {
    }
}

class ModuleThemeImageEntry {
    public var id:String;
    public var resource:String;
    public var priority:Float = 0;

    public function new() {
    }
}

class ModulePropertyEntry {
    public var name(default, default):String;
    public var value(default, default):String;

    public function new() {
    }
}

class ModulePreloadEntry {
    public var type(default, default):String;
    public var id(default, default):String;

    public function new() {
    }
}

class ModuleLocaleEntry {
    public var id(default, default):String;
    public var resources(default, default):Array<String> = [];
    
    public function new() {
    }
}

class ModuleLocaleResourceEntry {
    public var path(default, default):String;
    
    public function new() {
    }
}

class ModuleValidatorEntry {
    public var id(default, default):String;
    public var className(default, default):String;
    public var properties(default, default):Map<String, Any>;

    public function new() {
        properties = new Map<String, Any>();
    }
}

class ModuleActionInputSourceEntry {
    public var className(default, default):String;
    
    public function new() {
    }
}

class ModuleImageLoaderEntry {
    public var prefix(default, default):String;
    public var pattern(default, default):String;
    public var className(default, default):String;
    public var isDefault(default, default):Bool;
    public var singleInstance(default, default):Bool;

    public function new() {
    }
}

class ModuleCssFunctionEntry {
    public var name(default, default):String;
    public var call(default, default):String;

    public function new() {
    }
}

class ModuleCssFilterEntry {
    public var name(default, default):String;
    public var className(default, default):String;

    public function new() {
    }
}

class ModuleCssDirectiveEntry {
    public var name(default, default):String;
    public var className(default, default):String;

    public function new() {
    }
}