/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.apache.commons.configuration2.interpol;

import org.apache.commons.text.lookup.StringLookupFactory;

An enumeration class defining constants for the Lookup objects available for each Configuration object per default.

When a new configuration object derived from AbstractConfiguration is created it installs a ConfigurationInterpolator with a default set of Lookup objects. These lookups are defined by this enumeration class.

All the default Lookup classes are state-less, thus their instances can be shared between multiple configuration objects. Therefore, it makes sense to keep shared instances in this enumeration class.

Provides access to lookups defined in Apache Commons Text:
  • "base64Decoder" for the Base64DecoderStringLookup since Apache Commons Text 1.6.
  • "base64Encoder" for the Base64EncoderStringLookup since Apache Commons Text 1.6.
  • "const" for the ConstantStringLookup since Apache Commons Text 1.5.
  • "date" for the DateStringLookup.
  • "env" for the EnvironmentVariableStringLookup.
  • "file" for the FileStringLookup since Apache Commons Text 1.5.
  • "java" for the JavaPlatformStringLookup.
  • "localhost" for the LocalHostStringLookup, see #localHostStringLookup() for key names; since Apache Commons Text 1.3.
  • "properties" for the PropertiesStringLookup since Apache Commons Text 1.5.
  • "resourceBundle" for the ResourceBundleStringLookup since Apache Commons Text 1.5.
  • "script" for the ScriptStringLookup since Apache Commons Text 1.5.
  • "sys" for the SystemPropertyStringLookup.
  • "url" for the UrlStringLookup since Apache Commons Text 1.5.
  • "urlDecoder" for the UrlDecoderStringLookup since Apache Commons Text 1.6.
  • "urlEncoder" for the UrlEncoderStringLookup since Apache Commons Text 1.6.
  • "xml" for the XmlStringLookup since Apache Commons Text 1.5.
Since:2.0
/** * <p> * An enumeration class defining constants for the {@code Lookup} objects available for each {@code Configuration} * object per default. * </p> * <p> * When a new configuration object derived from {@code AbstractConfiguration} is created it installs a * {@link ConfigurationInterpolator} with a default set of {@link Lookup} objects. These lookups are defined by this * enumeration class. * </p> * <p> * All the default {@code Lookup} classes are state-less, thus their instances can be shared between multiple * configuration objects. Therefore, it makes sense to keep shared instances in this enumeration class. * </p> * * Provides access to lookups defined in Apache Commons Text: * <ul> * <li>"base64Decoder" for the {@code Base64DecoderStringLookup} since Apache Commons Text 1.6.</li> * <li>"base64Encoder" for the {@code Base64EncoderStringLookup} since Apache Commons Text 1.6.</li> * <li>"const" for the {@code ConstantStringLookup} since Apache Commons Text 1.5.</li> * <li>"date" for the {@code DateStringLookup}.</li> * <li>"env" for the {@code EnvironmentVariableStringLookup}.</li> * <li>"file" for the {@code FileStringLookup} since Apache Commons Text 1.5.</li> * <li>"java" for the {@code JavaPlatformStringLookup}.</li> * <li>"localhost" for the {@code LocalHostStringLookup}, see {@code #localHostStringLookup()} for key names; since * Apache Commons Text 1.3.</li> * <li>"properties" for the {@code PropertiesStringLookup} since Apache Commons Text 1.5.</li> * <li>"resourceBundle" for the {@code ResourceBundleStringLookup} since Apache Commons Text 1.5.</li> * <li>"script" for the {@code ScriptStringLookup} since Apache Commons Text 1.5.</li> * <li>"sys" for the {@code SystemPropertyStringLookup}.</li> * <li>"url" for the {@code UrlStringLookup} since Apache Commons Text 1.5.</li> * <li>"urlDecoder" for the {@code UrlDecoderStringLookup} since Apache Commons Text 1.6.</li> * <li>"urlEncoder" for the {@code UrlEncoderStringLookup} since Apache Commons Text 1.6.</li> * <li>"xml" for the {@code XmlStringLookup} since Apache Commons Text 1.5.</li> * </ul> * * @since 2.0 */
public enum DefaultLookups {
The lookup for Base64 decoding.
Since:2.4
/** * The lookup for Base64 decoding. * * @since 2.4 */
BASE64_DECODER(StringLookupFactory.KEY_BASE64_DECODER, new StringLookupAdapter(StringLookupFactory.INSTANCE.base64DecoderStringLookup())),
The lookup for Base64 decoding.
Since:2.4
/** * The lookup for Base64 decoding. * * @since 2.4 */
BASE64_ENCODER(StringLookupFactory.KEY_BASE64_ENCODER, new StringLookupAdapter(StringLookupFactory.INSTANCE.base64EncoderStringLookup())),
The lookup for constants.
Since:2.4
/** * The lookup for constants. * * @since 2.4 */
CONST(StringLookupFactory.KEY_CONST, new StringLookupAdapter(StringLookupFactory.INSTANCE.constantStringLookup())),
The lookup for dates.
Since:2.4
/** * The lookup for dates. * * @since 2.4 */
DATE(StringLookupFactory.KEY_DATE, new StringLookupAdapter(StringLookupFactory.INSTANCE.dateStringLookup())),
The lookup for DNS.
Since:2.6
/** * The lookup for DNS. * * @since 2.6 */
DNS(StringLookupFactory.KEY_DNS, new StringLookupAdapter(StringLookupFactory.INSTANCE.dnsStringLookup())),
The lookup for environment properties.
/** * The lookup for environment properties. */
ENVIRONMENT(StringLookupFactory.KEY_ENV, new StringLookupAdapter(StringLookupFactory.INSTANCE.environmentVariableStringLookup())),
The lookup for files.
Since:2.4
/** * The lookup for files. * * @since 2.4 */
FILE(StringLookupFactory.KEY_FILE, new StringLookupAdapter(StringLookupFactory.INSTANCE.fileStringLookup())),
The lookup for Java platform information.
Since:2.4
/** * The lookup for Java platform information. * * @since 2.4 */
JAVA(StringLookupFactory.KEY_JAVA, new StringLookupAdapter(StringLookupFactory.INSTANCE.javaPlatformStringLookup())),
The lookup for localhost information.
Since:2.4
/** * The lookup for localhost information. * * @since 2.4 */
LOCAL_HOST(StringLookupFactory.KEY_LOCALHOST, new StringLookupAdapter(StringLookupFactory.INSTANCE.localHostStringLookup())),
The lookup for properties.
Since:2.4
/** * The lookup for properties. * * @since 2.4 */
PROPERTIES(StringLookupFactory.KEY_PROPERTIES, new StringLookupAdapter(StringLookupFactory.INSTANCE.propertiesStringLookup())),
The lookup for resource bundles.
Since:2.4
/** * The lookup for resource bundles. * * @since 2.4 */
RESOURCE_BUNDLE(StringLookupFactory.KEY_RESOURCE_BUNDLE, new StringLookupAdapter(StringLookupFactory.INSTANCE.resourceBundleStringLookup())),
The lookup for scripts.
Since:2.4
/** * The lookup for scripts. * * @since 2.4 */
SCRIPT(StringLookupFactory.KEY_SCRIPT, new StringLookupAdapter(StringLookupFactory.INSTANCE.scriptStringLookup())),
The lookup for system properties.
/** * The lookup for system properties. */
SYSTEM_PROPERTIES(StringLookupFactory.KEY_SYS, new StringLookupAdapter(StringLookupFactory.INSTANCE.systemPropertyStringLookup())),
The lookup for URLs.
Since:2.4
/** * The lookup for URLs. * * @since 2.4 */
URL(StringLookupFactory.KEY_URL, new StringLookupAdapter(StringLookupFactory.INSTANCE.urlStringLookup())),
The lookup for URL decoding.
Since:2.4
/** * The lookup for URL decoding. * * @since 2.4 */
URL_DECODER(StringLookupFactory.KEY_URL_DECODER, new StringLookupAdapter(StringLookupFactory.INSTANCE.urlDecoderStringLookup())),
The lookup for URL decoding.
Since:2.4
/** * The lookup for URL decoding. * * @since 2.4 */
URL_ENCODER(StringLookupFactory.KEY_URL_ENCODER, new StringLookupAdapter(StringLookupFactory.INSTANCE.urlEncoderStringLookup())),
The lookup for URL decoding.
Since:2.4
/** * The lookup for URL decoding. * * @since 2.4 */
XML(StringLookupFactory.KEY_XML, new StringLookupAdapter(StringLookupFactory.INSTANCE.xmlStringLookup()));
The associated lookup instance.
/** The associated lookup instance. */
private final Lookup lookup;
The prefix under which the associated lookup object is registered.
/** The prefix under which the associated lookup object is registered. */
private final String prefix;
Creates a new instance of DefaultLookups and sets the prefix and the associated lookup instance.
Params:
  • prefix – the prefix
  • lookup – the Lookup instance
/** * Creates a new instance of {@code DefaultLookups} and sets the prefix and the associated lookup instance. * * @param prefix * the prefix * @param lookup * the {@code Lookup} instance */
private DefaultLookups(final String prefix, final Lookup lookup) { this.prefix = prefix; this.lookup = lookup; }
Returns the standard Lookup instance of this kind.
Returns:the associated Lookup object
/** * Returns the standard {@code Lookup} instance of this kind. * * @return the associated {@code Lookup} object */
public Lookup getLookup() { return lookup; }
Returns the standard prefix for the lookup object of this kind.
Returns:the prefix
/** * Returns the standard prefix for the lookup object of this kind. * * @return the prefix */
public String getPrefix() { return prefix; } }