001    /*
002    // $Id: MetadataElement.java 229 2009-05-08 19:11:29Z jhyde $
003    // This software is subject to the terms of the Eclipse Public License v1.0
004    // Agreement, available at the following URL:
005    // http://www.eclipse.org/legal/epl-v10.html.
006    // Copyright (C) 2006-2008 Julian Hyde
007    // All Rights Reserved.
008    // You must accept the terms of that agreement to use this software.
009    */
010    package org.olap4j.metadata;
011    
012    import java.util.Locale;
013    
014    /**
015     * An element which describes the structure of an OLAP schema.
016     *
017     * @author jhyde
018     * @version $Id: MetadataElement.java 229 2009-05-08 19:11:29Z jhyde $
019     * @since Oct 13, 2006
020     */
021    public interface MetadataElement {
022        /**
023         * Returns the name of this element.
024         *
025         * @return name
026         */
027        String getName();
028    
029        /**
030         * Returns the unique name of this element within its schema.
031         *
032         * @return unique name of this element
033         */
034        String getUniqueName();
035    
036        /**
037         * Returns the caption of this element in the given locale.
038         *
039         * <p>If <code>locale</code> is null or if no caption has been defined for
040         * the element in that locale, returns the caption in base locale.</p>
041         *
042         * <p>This method may return the empty string, but never returns null.</p>
043         *
044         * @param locale Locale
045         * @return Caption of this element in the given locale, or the base locale;
046         *         never null.
047         */
048        String getCaption(Locale locale);
049    
050        /**
051         * Returns the description of this element in the given locale.
052         *
053         * <p>If <code>locale</code> is null or if no description has been defined
054         * for the element in that locale, returns the description in base
055         * locale.</p>
056         *
057         * <p>This method may return the empty string, but never returns null.</p>
058         *
059         * @param locale Locale
060         * @return description of this element in the given locale, or the base
061         *         locale; never null.
062         */
063        String getDescription(Locale locale);
064    }
065    
066    // End MetadataElement.java