blob: 304604fbf96271c940074f2b1c02125744570e37 [file] [log] [blame]
/*
* Copyright (c) 1998, 2021 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// 11/05/2014-2.6 Tomas Kraus
// - 449818: Initial API and implementation.
package org.eclipse.persistence.internal.mappings.converters;
import java.util.HashMap;
import java.util.Map;
/**
* INTERNAL:
* Attribute name prefixes.
* @author Tomas Kraus
*/
public enum AttributeNamePrefix {
/** INTERNAL: No attribute name prefix. */
NULL(""),
/** INTERNAL: Attribute name prefix is {@code "key"}. */
KEY("key"),
/** INTERNAL: Attribute name prefix is {@code "value"}. */
VALUE("value");
/** INTERNAL: Attribute name prefixes enumeration length. */
public static final int LENGTH = AttributeNamePrefix.values().length;
/** Stored {@code String} values for backward {@code String} conversion. */
private static final Map<String, AttributeNamePrefix> stringValuesMap
= new HashMap<>(LENGTH);
// Initialize backward String conversion Map.
static {
for (AttributeNamePrefix prefix : AttributeNamePrefix.values()) {
stringValuesMap.put(prefix.getName(), prefix);
}
}
/**
* INTERNAL:
* Returns an {@code AttributeNamePrefix} instance with {@code name} equal to the specified {@code String}.
* The {@code AttributeNamePrefix} returned represents existing value only if specified {@code String} matches
* any {@code String} returned by {@code getName} method. Search for {@code name} is case sensitive. Otherwise
* {@code null} value is returned.
* @param name {@code getName()} value to search for corresponding {@code AttributeNamePrefix} instance.
* @return {@code AttributeNamePrefix} value represented by {@code String} or {@code null} if value was
* not recognized.
*/
public static AttributeNamePrefix toValue(final String name) {
if (name != null) {
return (stringValuesMap.get(name));
} else {
return null;
}
}
/** Attribute name prefix identifier. */
private final String name;
/**
* Creates an instance of attribute name prefix enumeration element.
* @param name Attribute name prefix identifier.
*/
AttributeNamePrefix(final String name) {
this.name = name;
}
/**
* INTERNAL:
* Get attribute name prefix identifier.
* @return Attribute name prefix identifier.
*/
public String getName() {
return name;
}
/**
* INTERNAL:
* Get instance value in human readable form.
* @return Instance value in human readable form.
*/
@Override
public String toString() {
return name;
}
}