All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.glassdoor.planout4j.demos.ManualNoBackend Maven / Gradle / Ivy

The newest version!
package com.glassdoor.planout4j.demos;

import java.io.FileReader;
import java.nio.file.Paths;
import java.util.Map;

import com.google.common.collect.ImmutableMap;

import com.glassdoor.planout4j.Namespace;
import com.glassdoor.planout4j.NamespaceConfig;
import com.glassdoor.planout4j.compiler.YAMLConfigParser;

/**
 * Planout4J with manually loading namespace (no config file, no backend classes utilized) demo.
 * Run using mvn exec:java -Dexec.mainClass=com.glassdoor.planout4j.demos.ManualNoBackend [-Dexec.args=unit_value]
 */
public class ManualNoBackend {

    private NamespaceConfig nsConf;

    ManualNoBackend(final NamespaceConfig nsConf) {
        this.nsConf = nsConf;
    }

    public void run(String unit) {
        Namespace ns = new Namespace(nsConf, ImmutableMap.of("user_guid", unit), null);
        // get all params at once
        Map allParams = ns.getParams();
        // get params individually using defaults
        int pageSize = ns.getParam("page_size", 15);
        boolean showFullDetails = ns.getParam("full_details", false);
        System.out.println("allParams: " + allParams);
        System.out.println("pageSize: " + pageSize);
        System.out.println("showFullDetails: " + showFullDetails);
    }

    public static void main(String[] args) throws Exception {
        String nsName = "demo_namespace";
        new ManualNoBackend(new YAMLConfigParser().parseAndValidate(
                new FileReader(Paths.get("conf", nsName + ".yaml").toFile()), nsName))
                .run(args.length > 0 ? args[0] : "");
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy