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

com.yahoo.elide.modelconfig.DynamicConfiguration Maven / Gradle / Ivy

There is a newer version: 7.1.2
Show newest version
/*
 * Copyright 2021, Yahoo Inc.
 * Licensed under the Apache License, Version 2.0
 * See LICENSE file in project root for terms.
 */

package com.yahoo.elide.modelconfig;

import com.yahoo.elide.modelconfig.model.DBConfig;
import com.yahoo.elide.modelconfig.model.NamespaceConfig;
import com.yahoo.elide.modelconfig.model.Table;

import java.util.HashSet;
import java.util.Set;

/**
 * Returns the model, security role, and database connection configurations derived from HJSON
 * files or other dynamic configuration systems.
 */
public interface DynamicConfiguration {

    /**
     * Returns the set of dynamically configured tables.
     * @return a set of tables.
     */
    default Set getTables() {
        return new HashSet<>();
    }

    /**
     * Return the set of role names leveraged by dynamic models.
     * @return a set of role names.
     */
    default Set getRoles() {
        return new HashSet<>();
    }

    /**
     * Returns a set of database connection configurations.
     * @return a set of database configurations.
     */
    default Set getDatabaseConfigurations() {
        return new HashSet<>();
    }

    /**
     * Returns a set of Namespace configurations.
     * @return a set of Namespace configurations.
     */
    default Set getNamespaceConfigurations() {
        return new HashSet<>();
    }
}