view flys-artifacts/src/main/java/de/intevation/flys/themes/Theme.java @ 4255:670e98f5a441

Fixed leak while merging facets. The ThemeList that is used by OutputHelper to sort the Facets for an Output now uses a list to store the ManagedFacets. The correct order is made up by sorting the List using Collections.sort() function of the Java JDK. Therfore, the ManagedFacet class implements the Comparable interface. The return value of its compareTo(other) method depends on the value of the 'position' field.
author Ingo Weinzierl <weinzierl.ingo@googlemail.com>
date Thu, 25 Oct 2012 14:01:46 +0200
parents 6566c7868456
children
line wrap: on
line source
package de.intevation.flys.themes;

import org.w3c.dom.Document;
import org.w3c.dom.Node;


/**
 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
 */
public interface Theme {

    /**
     * Method to initialize the theme.
     *
     * @param config The configuration node.
     */
    void init(Node config);


    /**
     * Returns the name of the theme.
     *
     * @return the name of the theme.
     */
    String getName();


    /**
     * Returns the description of the theme.
     *
     * @return the description of the theme.
     */
    String getDescription();


    String getFacet();

    void setFacet(String facet);

    int getIndex();

    void setIndex(int index);


    /**
     * Adds a new attribute.
     *
     * @param name The name of the attribute.
     * @param value The value of the attribute.
     */
    void addAttribute(String name, String value);


    /**
     * Returns the value of a specific attribute.
     *
     * @param name the name of the attribute.
     *
     * @return the value of the attribute <i>name</i>.
     */
    String getAttribute(String name);


    /**
     * Adds a new field to the theme.
     *
     * @param name The name of the field.
     * @param field The field.
     */
    void addField(String name, ThemeField field);


    /**
     * Sets the value of an field.
     *
     * @param name The name of the field.
     * @param value The new value of the field.
     */
    void setFieldValue(String name, Object value);


    /**
     * Returns the field specified by name.
     *
     * @param name The name of the desired field.
     *
     * @return an field.
     */
    ThemeField getField(String name);


    /**
     * Returns the typename of a field.
     *
     * @param name the name of the field.
     *
     * @return the typename of a field.
     */
    String getFieldType(String name);


    /**
     * Returns the value of a field.
     *
     * @param name The name of the field.
     *
     * @return the value of a field.
     */
    Object getFieldValue(String name);


    /**
     * Dumps the theme to XML.
     *
     * @return a document.
     */
    Document toXML();
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org