001package de.deepamehta.core.model;
002
003import org.codehaus.jettison.json.JSONArray;
004
005
006
007/**
008 * @author <a href="mailto:jri@deepamehta.de">Jörg Richter</a>
009 */
010public interface ViewConfigurationModel {
011
012    Iterable<? extends TopicModel> getConfigTopics();
013
014    TopicModel getConfigTopic(String configTypeUri);
015
016    void addConfigTopic(TopicModel configTopic);
017
018    void updateConfigTopic(TopicModel configTopic);
019
020    // ---
021
022    /**
023     * FIXME: to be dropped.
024     * <p>
025     * Read out a view configuration setting.
026     * <p>
027     * Compare to client-side counterpart: function get_view_config() in webclient.js
028     *
029     * @param   configTypeUri   The type URI of the configuration topic, e.g. "dm4.webclient.view_config"
030     * @param   settingUri      The setting URI, e.g. "dm4.webclient.icon"
031     *
032     * @return  The setting value, or <code>null</code> if there is no such setting
033     */
034    Object getSetting(String configTypeUri, String settingUri);
035
036    // ---
037
038    JSONArray toJSONArray();
039}