/*
 * Copyright 2014 - 2020 Rafael Winterhalter
 *
 * Licensed 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 net.bytebuddy.description;

Represents a Java element with a name.
/** * Represents a Java element with a name. */
public interface NamedElement {
Indicates that an element is not named.
/** * Indicates that an element is not named. */
String NO_NAME = null;
Represents an element without a name in the source code.
/** * Represents an element without a name in the source code. */
String EMPTY_NAME = "";
Returns the name of this element as it is found in the source code. If no such name exists, an empty string is returned.
Returns:The name of this element as given in a Java program's source code.
/** * Returns the name of this element as it is found in the source code. If no such name exists, * an empty string is returned. * * @return The name of this element as given in a Java program's source code. */
String getActualName();
A named element with a name that has a particular meaning to the Java runtime.
/** * A named element with a name that has a particular meaning to the Java runtime. */
interface WithRuntimeName extends NamedElement {
Returns the internalName of this byte code element.
Returns:The internalName of this byte code element as visible from within a running Java application.
/** * Returns the internalName of this byte code element. * * @return The internalName of this byte code element as visible from within a running Java application. */
String getName();
Returns the internal internalName of this byte code element.
Returns:The internal internalName of this byte code element as used within the Java class file format.
/** * Returns the internal internalName of this byte code element. * * @return The internal internalName of this byte code element as used within the Java class file format. */
String getInternalName(); }
Describes a named element where naming the element is optional and an alternative default name is provided if no explicit name is given.
/** * Describes a named element where naming the element is optional and an alternative default name is provided if no explicit name is given. */
interface WithOptionalName extends NamedElement {
Returns true if this element has an explicit name.
Returns:true if this element has an explicit name.
/** * Returns {@code true} if this element has an explicit name. * * @return {@code true} if this element has an explicit name. */
boolean isNamed(); }
A named element with a generic type name.
/** * A named element with a generic type name. */
interface WithGenericName extends WithRuntimeName {
Returns a generic string of this byte code element.
Returns:A generic string of this byte code element.
/** * Returns a generic string of this byte code element. * * @return A generic string of this byte code element. */
String toGenericString(); }
A named element with a class file descriptor and a generic signature.
/** * A named element with a class file descriptor and a generic signature. */
interface WithDescriptor extends NamedElement {
The generic type signature of a non-generic byte code element.
/** * The generic type signature of a non-generic byte code element. */
String NON_GENERIC_SIGNATURE = null;
Returns the descriptor of this byte code element.
Returns:The descriptor of this byte code element.
/** * Returns the descriptor of this byte code element. * * @return The descriptor of this byte code element. */
String getDescriptor();
Returns the generic signature of this byte code element. If this element does not reference generic types or references malformed generic types, null is returned as a signature.
Returns:The generic signature or null if this element is not generic.
/** * Returns the generic signature of this byte code element. If this element does not reference generic types * or references malformed generic types, {@code null} is returned as a signature. * * @return The generic signature or {@code null} if this element is not generic. */
String getGenericSignature(); } }