001    /*
002    // $Id: //open/mondrian/src/main/mondrian/rolap/RolapConnectionProperties.java#20 $
003    // This software is subject to the terms of the Common Public License
004    // Agreement, available at the following URL:
005    // http://www.opensource.org/licenses/cpl.html.
006    // Copyright (C) 2003-2008 Julian Hyde
007    // All Rights Reserved.
008    // You must accept the terms of that agreement to use this software.
009    //
010    // jhyde, Mar 18, 2003
011    */
012    package mondrian.rolap;
013    
014    /**
015     * <code>RolapConnectionProperties</code> enumerates the allowable values of
016     * keywords in a Mondrian connect string.
017     *
018     * <p><b>Note to developers</b>: If you add or modify a connection-string
019     * property, you must also modify the
020     * <a target="_top" href="{@docRoot}/../configuration.html#Connect_string_properties">
021     * Configuration Specification</a>.
022     *
023     * @version $Id: //open/mondrian/src/main/mondrian/rolap/RolapConnectionProperties.java#20 $
024     * @author jhyde
025     */
026    public enum RolapConnectionProperties {
027        /**
028         * The "Provider" property must have the value <code>"Mondrian"</code>.
029         */
030        Provider,
031    
032        /**
033         * The "Jdbc" property is the URL of the JDBC database where the data is
034         * stored. You must specify either {@link #DataSource} or {@link #Jdbc}.
035         */
036        Jdbc,
037    
038        /**
039         * The "JdbcDrivers" property is a comma-separated list of JDBC driver
040         * classes, for example,
041         * <code>"sun.jdbc.odbc.JdbcOdbcDriver,oracle.jdbc.OracleDriver"</code>.
042         */
043        JdbcDrivers,
044    
045        /**
046         * The "JdbcUser" property is the name of the user to log on to the JDBC
047         * database. (You don't need to specify this parameter if it is already
048         * specified in the JDBC URL.)
049         */
050        JdbcUser,
051    
052        /**
053         * The "JdbcPassword" property is the password to log on to the JDBC
054         * database. (You don't need to specify this parameter if it is already
055         * specified in the JDBC URL.)
056         */
057        JdbcPassword,
058    
059        /**
060         * The "Catalog" property is the URL of the catalog, an XML file which
061         * describes the schema: cubes, hierarchies, and so forth.
062         * Catalogs are described in <a target="_top"
063         * href="{@docRoot}/../schema.html">the Schema Guide</a>.
064         * See also {@link #CatalogContent}.
065         */
066        Catalog,
067    
068        /**
069         * The "CatalogContent" property is an XML string representing the schema:
070         * cubes, hierarchies, and so forth.
071         * Catalogs are described in <a target="_top"
072         * href="{@docRoot}/../schema.html">the Schema Guide</a>.
073         * See also {@link #Catalog}.
074         */
075        CatalogContent,
076    
077        /**
078         * The "CatalogName" property is not used. If, in future, we support
079         * multiple catalogs, this property will specify which catalog to use.
080         * See also {@link #Catalog}.
081         */
082        CatalogName,
083    
084        /**
085         * The "DataSource" property is the name of a data source class. It must
086         * implement the {@link javax.sql.DataSource} interface.
087         * You must specify either {@link #DataSource} or {@link #Jdbc}.
088         */
089        DataSource,
090    
091        /**
092         * The "PoolNeeded" property tells Mondrian whether to add a layer of
093         * connection pooling.
094         *
095         * <p>If no value is specified, we assume that:<ul>
096         * <li>connections created via the {@link #Jdbc} property are not pooled,
097         *     and therefore need to be pooled,
098         * <li>connections created via the {@link #DataSource} are already pooled.
099         * </ul>
100         */
101        PoolNeeded,
102    
103        /**
104         * The "Role" property is the name of the {@link mondrian.olap.Role role}
105         * to adopt. If not specified, the connection uses a role which has access
106         * to every object in the schema.
107         */
108        Role,
109    
110        /**
111         * Allows to work with dynamically changing schema. If this property is set
112         * to <code>true</code> and schema content has changed (previous checksum
113         * doesn't equal with current), schema would be reloaded. Could be used in
114         * combination with <code>DynamicSchemaProcessor</code> property
115         */
116        UseContentChecksum,
117    
118        /**
119         * The "UseSchemaPool" property disables the schema cache. If false, the
120         * schema is not shared with connections which have a textually identical
121         * schema. Default is "true".
122         */
123        UseSchemaPool,
124    
125        /**
126         * The name of a class implementing the
127         * {@link mondrian.spi.DynamicSchemaProcessor} interface.
128         * A dynamic schema processor is called at runtime in order to modify the
129         * schema content.
130         */
131        DynamicSchemaProcessor,
132    
133        /**
134         * The "Locale" property is the requested Locale for the
135         * LocalizingDynamicSchemaProcessor.  Example values are "en",
136         * "en_US", "hu". If Locale is not specified, then the name of system's
137         * default will be used, as per {@link java.util.Locale#getDefault()}.
138         */
139        Locale,
140    
141        /**
142         * The name of a class implementing the
143         * {@link mondrian.spi.DataSourceChangeListener} interface.
144         * A data source change listener is used to flush the cache of
145         * mondrian every time the datasource is changed.
146         */
147        DataSourceChangeListener,
148    
149        /**
150         * The "Ignore" property is a boolean value. If true, mondrian ignores
151         * warnings and non-fatal errors while loading the schema. The resulting
152         * errors can be obtained by calling
153         * {@link mondrian.olap.Schema#getWarnings}.
154         */
155        Ignore;
156    
157        /**
158         * Any property beginning with this value will be added to the
159         * JDBC connection properties, after removing this prefix. This
160         * allows you to specify connection properties without a URL.
161         */
162        public static final String JdbcPropertyPrefix = "jdbc.";
163    
164    }
165    
166    // End RolapConnectionProperties.java