All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.commons.text.lookup.StringLookupFactory Maven / Gradle / Ivy

/*
 * 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.text.lookup;

import java.util.Map;

/**
 * Provides access to lookups defined in this package.
 * 

* The default lookups are: *

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
Default String Lookups
KeyImplementationFactory MethodSince
{@value #KEY_BASE64_DECODER}{@link Base64DecoderStringLookup}{@link #base64DecoderStringLookup()}1.6
{@value #KEY_BASE64_ENCODER}{@link Base64EncoderStringLookup}{@link #base64EncoderStringLookup()}1.6
{@value #KEY_CONST}{@link ConstantStringLookup}{@link #constantStringLookup()}1.5
{@value #KEY_DATE}{@link DateStringLookup}{@link #dateStringLookup()}1.5
{@value #KEY_ENV}{@link EnvironmentVariableStringLookup}{@link #environmentVariableStringLookup()}1.3
{@value #KEY_FILE}{@link FileStringLookup}{@link #fileStringLookup()}1.5
{@value #KEY_JAVA}{@link JavaPlatformStringLookup}{@link #javaPlatformStringLookup()}1.5
{@value #KEY_LOCALHOST}{@link LocalHostStringLookup}{@link #localHostStringLookup()}1.3
{@value #KEY_PROPERTIES}{@link PropertiesStringLookup}{@link #propertiesStringLookup()}1.5
{@value #KEY_RESOURCE_BUNDLE}{@link ResourceBundleStringLookup}{@link #resourceBundleStringLookup()}1.6
{@value #KEY_SCRIPT}{@link ScriptStringLookup}{@link #scriptStringLookup()}1.5
{@value #KEY_SYS}{@link SystemPropertyStringLookup}{@link #systemPropertyStringLookup()}1.3
{@value #KEY_URL}{@link UrlStringLookup}{@link #urlStringLookup()}1.5
{@value #KEY_URL_DECODER}{@link UrlDecoderStringLookup}{@link #urlDecoderStringLookup()}1.5
{@value #KEY_URL_ENCODER}{@link UrlEncoderStringLookup}{@link #urlEncoderStringLookup()}1.5
{@value #KEY_XML}{@link XmlStringLookup}{@link #xmlStringLookup()}1.5
* * @since 1.3 */ public final class StringLookupFactory { /** * Defines the singleton for this class. */ public static final StringLookupFactory INSTANCE = new StringLookupFactory(); /** * Default lookup key for interpolation. * * @since 1.6 */ public static final String KEY_BASE64_DECODER = "base64Decoder"; /** * Default lookup key for interpolation. * * @since 1.6 */ public static final String KEY_BASE64_ENCODER = "base64Encoder"; /** * Default lookup key for interpolation. * * @since 1.6 */ public static final String KEY_CONST = "const"; /** * Default lookup key for interpolation. * * @since 1.6 */ public static final String KEY_DATE = "date"; /** * Default lookup key for interpolation. * * @since 1.6 */ public static final String KEY_ENV = "env"; /** * Default lookup key for interpolation. * * @since 1.6 */ public static final String KEY_FILE = "file"; /** * Default lookup key for interpolation. * * @since 1.6 */ public static final String KEY_JAVA = "java"; /** * Default lookup key for interpolation. * * @since 1.6 */ public static final String KEY_LOCALHOST = "localhost"; /** * Default lookup key for interpolation. * * @since 1.6 */ public static final String KEY_PROPERTIES = "properties"; /** * Default lookup key for interpolation. * * @since 1.6 */ public static final String KEY_RESOURCE_BUNDLE = "resourceBundle"; /** * Default lookup key for interpolation. * * @since 1.6 */ public static final String KEY_SCRIPT = "script"; /** * Default lookup key for interpolation. * * @since 1.6 */ public static final String KEY_SYS = "sys"; /** * Default lookup key for interpolation. * * @since 1.6 */ public static final String KEY_URL = "url"; /** * Default lookup key for interpolation. * * @since 1.6 */ public static final String KEY_URL_DECODER = "urlDecoder"; /** * Default lookup key for interpolation. * * @since 1.6 */ public static final String KEY_URL_ENCODER = "urlEncoder"; /** * Default lookup key for interpolation. * * @since 1.6 */ public static final String KEY_XML = "xml"; /** * Clears any static resources. * * @since 1.5 */ public static void clear() { ConstantStringLookup.clear(); } /** * No need to build instances for now. */ private StringLookupFactory() { // empty } /** * Adds the {@link StringLookupFactory default lookups}. * * @param stringLookupMap * the map of string lookups. * @since 1.5 */ public void addDefaultStringLookups(final Map stringLookupMap) { if (stringLookupMap != null) { // "base64" is deprecated in favor of KEY_BASE64_DECODER. stringLookupMap.put("base64", Base64DecoderStringLookup.INSTANCE); stringLookupMap.put(KEY_BASE64_DECODER, Base64DecoderStringLookup.INSTANCE); stringLookupMap.put(KEY_BASE64_ENCODER, Base64EncoderStringLookup.INSTANCE); stringLookupMap.put(KEY_CONST, ConstantStringLookup.INSTANCE); stringLookupMap.put(KEY_DATE, DateStringLookup.INSTANCE); stringLookupMap.put(KEY_ENV, EnvironmentVariableStringLookup.INSTANCE); stringLookupMap.put(KEY_FILE, FileStringLookup.INSTANCE); stringLookupMap.put(KEY_JAVA, JavaPlatformStringLookup.INSTANCE); stringLookupMap.put(KEY_LOCALHOST, LocalHostStringLookup.INSTANCE); stringLookupMap.put(KEY_PROPERTIES, PropertiesStringLookup.INSTANCE); stringLookupMap.put(KEY_RESOURCE_BUNDLE, ResourceBundleStringLookup.INSTANCE); stringLookupMap.put(KEY_SCRIPT, ScriptStringLookup.INSTANCE); stringLookupMap.put(KEY_SYS, SystemPropertyStringLookup.INSTANCE); stringLookupMap.put(KEY_URL, UrlStringLookup.INSTANCE); stringLookupMap.put(KEY_URL_DECODER, UrlDecoderStringLookup.INSTANCE); stringLookupMap.put(KEY_URL_ENCODER, UrlEncoderStringLookup.INSTANCE); stringLookupMap.put(KEY_XML, XmlStringLookup.INSTANCE); } } /** * Returns the Base64StringLookup singleton instance to format the current date with the format given in the key in * a format compatible with {@link java.text.SimpleDateFormat}. * * @return the DateStringLookup singleton instance. * @since 1.5 */ public StringLookup base64DecoderStringLookup() { return Base64DecoderStringLookup.INSTANCE; } /** * Returns the Base64StringLookup singleton instance to format the current date with the format given in the key in * a format compatible with {@link java.text.SimpleDateFormat}. * * @return the DateStringLookup singleton instance. * @since 1.6 */ public StringLookup base64EncoderStringLookup() { return Base64EncoderStringLookup.INSTANCE; } /** * Returns the Base64StringLookup singleton instance to format the current date with the format given in the key in * a format compatible with {@link java.text.SimpleDateFormat}. * * @return the DateStringLookup singleton instance. * @since 1.5 * @deprecated Use {@link #base64DecoderStringLookup()}. */ @Deprecated public StringLookup base64StringLookup() { return Base64DecoderStringLookup.INSTANCE; } /** * Returns the ConstantStringLookup singleton instance to get the value of a fully-qualified static final value. * * @return the DateStringLookup singleton instance. * @since 1.5 */ public StringLookup constantStringLookup() { return ConstantStringLookup.INSTANCE; } /** * Returns the DateStringLookup singleton instance to format the current date with the format given in the key in a * format compatible with {@link java.text.SimpleDateFormat}. * * @return the DateStringLookup singleton instance. */ public StringLookup dateStringLookup() { return DateStringLookup.INSTANCE; } /** * Returns the EnvironmentVariableStringLookup singleton instance where the lookup key is an environment variable * name. * * @return the EnvironmentVariableStringLookup singleton instance. */ public StringLookup environmentVariableStringLookup() { return EnvironmentVariableStringLookup.INSTANCE; } /** * Returns the FileStringLookup singleton instance. *

* Looks up the value for the key in the format "CharsetName:Path". *

*

* For example: "UTF-8:com/domain/document.properties". *

* * @return the FileStringLookup singleton instance. * @since 1.5 */ public StringLookup fileStringLookup() { return FileStringLookup.INSTANCE; } /** * Returns a new InterpolatorStringLookup using the {@link StringLookupFactory default lookups}. * * @return a new InterpolatorStringLookup. */ public StringLookup interpolatorStringLookup() { return InterpolatorStringLookup.INSTANCE; } /** * Returns a new InterpolatorStringLookup using the {@link StringLookupFactory default lookups}. *

* If {@code addDefaultLookups} is true, the following lookups are used in addition to the ones provided in * {@code stringLookupMap}: *

* * @param stringLookupMap * the map of string lookups. * @param defaultStringLookup * the default string lookup. * @param addDefaultLookups * whether to use lookups as described above. * @return a new InterpolatorStringLookup. * @since 1.4 */ public StringLookup interpolatorStringLookup(final Map stringLookupMap, final StringLookup defaultStringLookup, final boolean addDefaultLookups) { return new InterpolatorStringLookup(stringLookupMap, defaultStringLookup, addDefaultLookups); } /** * Returns a new InterpolatorStringLookup using the {@link StringLookupFactory default lookups}. * * @param * the value type the default string lookup's map. * @param map * the default map for string lookups. * @return a new InterpolatorStringLookup. */ public StringLookup interpolatorStringLookup(final Map map) { return new InterpolatorStringLookup(map); } /** * Returns a new InterpolatorStringLookup using the {@link StringLookupFactory default lookups}. * * @param defaultStringLookup * the default string lookup. * @return a new InterpolatorStringLookup. */ public StringLookup interpolatorStringLookup(final StringLookup defaultStringLookup) { return new InterpolatorStringLookup(defaultStringLookup); } /** * Returns the JavaPlatformStringLookup singleton instance. Looks up keys related to Java: Java version, JRE * version, VM version, and so on. *

* The lookup keys with examples are: *

*
    *
  • version: "Java version 1.8.0_181"
  • *
  • runtime: "Java(TM) SE Runtime Environment (build 1.8.0_181-b13) from Oracle Corporation"
  • *
  • vm: "Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)"
  • *
  • os: "Windows 10 10.0, architecture: amd64-64"
  • *
  • hardware: "processors: 4, architecture: amd64-64, instruction sets: amd64"
  • *
  • locale: "default locale: en_US, platform encoding: iso-8859-1"
  • *
* * @return the JavaPlatformStringLookup singleton instance. */ public StringLookup javaPlatformStringLookup() { return JavaPlatformStringLookup.INSTANCE; } /** * Returns the LocalHostStringLookup singleton instance where the lookup key is one of: *
    *
  • name: for the local host name, for example {@code EXAMPLE}.
  • *
  • canonical-name: for the local canonical host name, for example {@code EXAMPLE.apache.org}.
  • *
  • address: for the local host address, for example {@code 192.168.56.1}.
  • *
* * @return the DateStringLookup singleton instance. */ public StringLookup localHostStringLookup() { return LocalHostStringLookup.INSTANCE; } /** * Returns a new map-based lookup where the request for a lookup is answered with the value for that key. * * @param * the map value type. * @param map * the map. * @return a new MapStringLookup. */ public StringLookup mapStringLookup(final Map map) { return MapStringLookup.on(map); } /** * Returns the NullStringLookup singleton instance which always returns null. * * @return the NullStringLookup singleton instance. */ public StringLookup nullStringLookup() { return NullStringLookup.INSTANCE; } /** * Returns the PropertiesStringLookup singleton instance. *

* Looks up the value for the key in the format "DocumentPath:Key". *

*

* For example: "com/domain/document.properties:Key". *

* * @return the PropertiesStringLookup singleton instance. * @since 1.5 */ public StringLookup propertiesStringLookup() { return PropertiesStringLookup.INSTANCE; } /** * Returns the ResourceBundleStringLookup singleton instance. *

* Looks up the value for a given key in the format "BundleName:BundleKey". *

*

* For example: "com.domain.messages:MyKey". *

* * @return the ResourceBundleStringLookup singleton instance. */ public StringLookup resourceBundleStringLookup() { return ResourceBundleStringLookup.INSTANCE; } /** * Returns a ResourceBundleStringLookup instance for the given bundle name. *

* Looks up the value for a given key in the format "BundleKey". *

*

* For example: "MyKey". *

* * @param bundleName * Only lookup in this bundle. * @return a ResourceBundleStringLookup instance for the given bundle name. * @since 1.5 */ public StringLookup resourceBundleStringLookup(final String bundleName) { return new ResourceBundleStringLookup(bundleName); } /** * Returns the ScriptStringLookup singleton instance. *

* Looks up the value for the key in the format "ScriptEngineName:Script". *

*

* For example: "javascript:\"HelloWorld\"". *

* * @return the ScriptStringLookup singleton instance. * @since 1.5 */ public StringLookup scriptStringLookup() { return ScriptStringLookup.INSTANCE; } /** * Returns the SystemPropertyStringLookup singleton instance where the lookup key is a system property name. * * @return the SystemPropertyStringLookup singleton instance. */ public StringLookup systemPropertyStringLookup() { return SystemPropertyStringLookup.INSTANCE; } /** * Returns the UrlDecoderStringLookup singleton instance. *

* Decodes URL Strings using the UTF-8 encoding. *

*

* For example: "Hello%20World%21" becomes "Hello World!". *

* * @return the UrlStringLookup singleton instance. * @since 1.6 */ public StringLookup urlDecoderStringLookup() { return UrlDecoderStringLookup.INSTANCE; } /** * Returns the UrlDecoderStringLookup singleton instance. *

* Decodes URL Strings using the UTF-8 encoding. *

*

* For example: "Hello World!" becomes "Hello+World%21". *

* * @return the UrlStringLookup singleton instance. * @since 1.6 */ public StringLookup urlEncoderStringLookup() { return UrlEncoderStringLookup.INSTANCE; } /** * Returns the UrlStringLookup singleton instance. *

* Looks up the value for the key in the format "CharsetName:URL". *

*

* For example, using the HTTP scheme: "UTF-8:http://www.google.com" *

*

* For example, using the file scheme: * "UTF-8:file:///C:/somehome/commons/commons-text/src/test/resources/document.properties" *

* * @return the UrlStringLookup singleton instance. * @since 1.5 */ public StringLookup urlStringLookup() { return UrlStringLookup.INSTANCE; } /** * Returns the XmlStringLookup singleton instance. *

* Looks up the value for the key in the format "DocumentPath:XPath". *

*

* For example: "com/domain/document.xml:/path/to/node". *

* * @return the XmlStringLookup singleton instance. * @since 1.5 */ public StringLookup xmlStringLookup() { return XmlStringLookup.INSTANCE; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy