DefaultStringLookup.java
- /*
- * 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;
- /**
- * An enumeration defining {@link StringLookup} objects available through {@link StringLookupFactory}.
- * <p>
- * This enum was adapted and expanded from Apache Commons Configuration 2.4.
- * </p>
- * <p><strong>NOTE:</strong> Starting in version 1.10.0, not all lookups defined in this class are
- * included by default in the
- * {@link StringLookupFactory#addDefaultStringLookups(java.util.Map) StringLookupFactory.addDefaultStringLookups}
- * method. See the {@link StringLookupFactory} class documentation for details.
- * </p>
- *
- * @see StringLookupFactory
- * @see StringLookup
- * @since 1.7
- */
- public enum DefaultStringLookup {
- /**
- * The lookup for Base64 decoding using the key {@code "base64Decoder"}.
- *
- * @see StringLookupFactory#KEY_BASE64_DECODER
- * @see StringLookupFactory#base64DecoderStringLookup()
- */
- BASE64_DECODER(StringLookupFactory.KEY_BASE64_DECODER, StringLookupFactory.INSTANCE.base64DecoderStringLookup()),
- /**
- * The lookup for Base64 encoding using the key {@code "base64Encoder"}.
- *
- * @see StringLookupFactory#KEY_BASE64_ENCODER
- * @see StringLookupFactory#base64EncoderStringLookup()
- */
- BASE64_ENCODER(StringLookupFactory.KEY_BASE64_ENCODER, StringLookupFactory.INSTANCE.base64EncoderStringLookup()),
- /**
- * The lookup for Java static class member constants using the key {@code "const"}.
- *
- * @see StringLookupFactory#KEY_CONST
- * @see StringLookupFactory#constantStringLookup()
- */
- CONST(StringLookupFactory.KEY_CONST, StringLookupFactory.INSTANCE.constantStringLookup()),
- /**
- * The lookup for formatting the current date using the key {@code "date"}.
- *
- * @see StringLookupFactory#KEY_DATE
- * @see StringLookupFactory#dateStringLookup()
- */
- DATE(StringLookupFactory.KEY_DATE, StringLookupFactory.INSTANCE.dateStringLookup()),
- /**
- * The lookup for DNS using the key {@code "dns"}.
- *
- * @see StringLookupFactory#KEY_DNS
- * @see StringLookupFactory#dnsStringLookup()
- * @since 1.8
- */
- DNS(StringLookupFactory.KEY_DNS, StringLookupFactory.INSTANCE.dnsStringLookup()),
- /**
- * The lookup for environment properties using the key {@code "env"}.
- *
- * @see StringLookupFactory#KEY_ENV
- * @see StringLookupFactory#environmentVariableStringLookup()
- */
- ENVIRONMENT(StringLookupFactory.KEY_ENV, StringLookupFactory.INSTANCE.environmentVariableStringLookup()),
- /**
- * The lookup for files using the key {@code "file"}.
- *
- * @see StringLookupFactory#KEY_FILE
- * @see StringLookupFactory#fileStringLookup()
- */
- FILE(StringLookupFactory.KEY_FILE, StringLookupFactory.INSTANCE.fileStringLookup()),
- /**
- * The lookup for Java platform information using the key {@code "java"}.
- *
- * @see StringLookupFactory#KEY_JAVA
- * @see StringLookupFactory#javaPlatformStringLookup()
- */
- JAVA(StringLookupFactory.KEY_JAVA, StringLookupFactory.INSTANCE.javaPlatformStringLookup()),
- /**
- * The lookup for local host information using the key {@code "localhost"}.
- *
- * @see StringLookupFactory#KEY_LOCALHOST
- * @see StringLookupFactory#localHostStringLookup()
- */
- LOCAL_HOST(StringLookupFactory.KEY_LOCALHOST, StringLookupFactory.INSTANCE.localHostStringLookup()),
- /**
- * The lookup for local host information using the key {@code "loopbackAddress"}.
- *
- * @see StringLookupFactory#KEY_LOOPBACK_ADDRESS
- * @see StringLookupFactory#loopbackAddressStringLookup()
- */
- LOOPBACK_ADDRESS(StringLookupFactory.KEY_LOOPBACK_ADDRESS, StringLookupFactory.INSTANCE.loopbackAddressStringLookup()),
- /**
- * The lookup for properties using the key {@code "properties"}.
- *
- * @see StringLookupFactory#KEY_PROPERTIES
- * @see StringLookupFactory#propertiesStringLookup()
- */
- PROPERTIES(StringLookupFactory.KEY_PROPERTIES, StringLookupFactory.INSTANCE.propertiesStringLookup()),
- /**
- * The lookup for resource bundles using the key {@code "resourceBundle"}.
- *
- * @see StringLookupFactory#KEY_RESOURCE_BUNDLE
- * @see StringLookupFactory#resourceBundleStringLookup()
- */
- RESOURCE_BUNDLE(StringLookupFactory.KEY_RESOURCE_BUNDLE, StringLookupFactory.INSTANCE.resourceBundleStringLookup()),
- /**
- * The lookup for scripts using the key {@code "script"}.
- *
- * @see StringLookupFactory#KEY_SCRIPT
- * @see StringLookupFactory#scriptStringLookup()
- */
- SCRIPT(StringLookupFactory.KEY_SCRIPT, StringLookupFactory.INSTANCE.scriptStringLookup()),
- /**
- * The lookup for system properties using the key {@code "sys"}.
- *
- * @see StringLookupFactory#KEY_SYS
- * @see StringLookupFactory#systemPropertyStringLookup()
- */
- SYSTEM_PROPERTIES(StringLookupFactory.KEY_SYS, StringLookupFactory.INSTANCE.systemPropertyStringLookup()),
- /**
- * The lookup for URLs using the key {@code "url"}.
- *
- * @see StringLookupFactory#KEY_URL
- * @see StringLookupFactory#urlStringLookup()
- */
- URL(StringLookupFactory.KEY_URL, StringLookupFactory.INSTANCE.urlStringLookup()),
- /**
- * The lookup for URL decoding using the key {@code "urlDecoder"}.
- *
- * @see StringLookupFactory#KEY_URL_DECODER
- * @see StringLookupFactory#urlDecoderStringLookup()
- */
- URL_DECODER(StringLookupFactory.KEY_URL_DECODER, StringLookupFactory.INSTANCE.urlDecoderStringLookup()),
- /**
- * The lookup for URL encoding using the key {@code "urlEncoder"}.
- *
- * @see StringLookupFactory#KEY_URL_ENCODER
- * @see StringLookupFactory#urlEncoderStringLookup()
- */
- URL_ENCODER(StringLookupFactory.KEY_URL_ENCODER, StringLookupFactory.INSTANCE.urlEncoderStringLookup()),
- /**
- * The lookup for XML decoding using the key {@code "xml"}.
- *
- * @see StringLookupFactory#KEY_XML
- * @see StringLookupFactory#xmlStringLookup()
- */
- XML(StringLookupFactory.KEY_XML, StringLookupFactory.INSTANCE.xmlStringLookup()),
- /**
- * The lookup for XML decoding using the key {@code "xmlDecoder"}.
- *
- * @see StringLookupFactory#KEY_XML_DECODER
- * @see StringLookupFactory#xmlDecoderStringLookup()
- * @since 1.11.0
- */
- XML_DECODER(StringLookupFactory.KEY_XML_DECODER, StringLookupFactory.INSTANCE.xmlDecoderStringLookup()),
- /**
- * The lookup for XML encoding using the key {@code "xmlEncoder"}.
- *
- * @see StringLookupFactory#KEY_XML_ENCODER
- * @see StringLookupFactory#xmlEncoderStringLookup()
- * @since 1.11.0
- */
- XML_ENCODER(StringLookupFactory.KEY_XML_ENCODER, StringLookupFactory.INSTANCE.xmlEncoderStringLookup());
- /** The prefix under which the associated lookup object is registered. */
- private final String key;
- /** The associated lookup instance. */
- private final StringLookup lookup;
- /**
- * Constructs a new instance of {@link DefaultStringLookup} and sets the key and the associated lookup instance.
- *
- * @param prefix the prefix
- * @param lookup the {@link StringLookup} instance
- */
- DefaultStringLookup(final String prefix, final StringLookup lookup) {
- this.key = prefix;
- this.lookup = lookup;
- }
- /**
- * Gets the standard prefix for the lookup object of this kind.
- *
- * @return the prefix
- */
- public String getKey() {
- return key;
- }
- /**
- * Gets the standard {@link StringLookup} instance of this kind.
- *
- * @return the associated {@link StringLookup} object
- */
- public StringLookup getStringLookup() {
- return lookup;
- }
- }