Interface ByteCodeElement
- All Superinterfaces:
AnnotationSource,DeclaredByType,ModifierReviewable,ModifierReviewable.OfByteCodeElement,NamedElement,NamedElement.WithDescriptor,NamedElement.WithRuntimeName
- All Known Subinterfaces:
ByteCodeElement.Member,FieldDescription,FieldDescription.InDefinedShape,FieldDescription.InGenericShape,InstrumentedType,InstrumentedType.WithFlexibleName,MethodDescription,MethodDescription.InDefinedShape,MethodDescription.InGenericShape,TypeDescription
- All Known Implementing Classes:
FieldDescription.AbstractBase,FieldDescription.ForLoadedField,FieldDescription.InDefinedShape.AbstractBase,FieldDescription.Latent,FieldDescription.TypeSubstituting,Implementation.Context.Default.AbstractPropertyAccessorMethod,Implementation.Context.Default.AccessorMethod,Implementation.Context.Default.CacheValueField,Implementation.Context.Default.FieldGetter,Implementation.Context.Default.FieldSetter,InstrumentedType.Default,InstrumentedType.Frozen,JavaType.LatentTypeWithSimpleName,MethodDescription.AbstractBase,MethodDescription.ForLoadedConstructor,MethodDescription.ForLoadedMethod,MethodDescription.InDefinedShape.AbstractBase,MethodDescription.InDefinedShape.AbstractBase.ForLoadedExecutable,MethodDescription.Latent,MethodDescription.Latent.TypeInitializer,MethodDescription.TypeSubstituting,MethodRebaseResolver.Resolution.ForRebasedConstructor.RebasedConstructor,MethodRebaseResolver.Resolution.ForRebasedMethod.RebasedMethod,Transformer.ForField.TransformedField,Transformer.ForMethod.TransformedMethod,TypeDescription.AbstractBase,TypeDescription.AbstractBase.OfSimpleType,TypeDescription.AbstractBase.OfSimpleType.WithDelegation,TypeDescription.ArrayProjection,TypeDescription.ForLoadedType,TypeDescription.ForPackageDescription,TypeDescription.Latent,TypeDescription.SuperTypeLoading,TypePool.Default.LazyTypeDescription,TypePool.Default.LazyTypeDescription.LazyFieldDescription,TypePool.Default.LazyTypeDescription.LazyMethodDescription,TypePool.Default.WithLazyResolution.LazyTypeDescription,TypePool.LazyFacade.LazyTypeDescription,TypeWriter.MethodPool.Record.AccessBridgeWrapper.AccessorBridge,TypeWriter.MethodPool.Record.AccessBridgeWrapper.BridgeTarget,TypeWriter.MethodPool.Record.ForDefinedMethod.OfVisibilityBridge.VisibilityBridge
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceA byte code element that is declared by a type.static interfaceByteCodeElement.Token<T extends ByteCodeElement.Token<T>>A token representing a byte code element.static interfaceByteCodeElement.TypeDependant<T extends ByteCodeElement.TypeDependant<?,S>, S extends ByteCodeElement.Token<S>> A type dependant describes an element that is an extension of a type definition, i.e.Nested classes/interfaces inherited from interface net.bytebuddy.description.annotation.AnnotationSource
AnnotationSource.Empty, AnnotationSource.ExplicitNested classes/interfaces inherited from interface net.bytebuddy.description.DeclaredByType
DeclaredByType.WithMandatoryDeclarationNested classes/interfaces inherited from interface net.bytebuddy.description.ModifierReviewable
ModifierReviewable.AbstractBase, ModifierReviewable.ForFieldDescription, ModifierReviewable.ForMethodDescription, ModifierReviewable.ForParameterDescription, ModifierReviewable.ForTypeDefinition, ModifierReviewable.OfAbstraction, ModifierReviewable.OfByteCodeElement, ModifierReviewable.OfEnumerationNested classes/interfaces inherited from interface net.bytebuddy.description.NamedElement
NamedElement.WithDescriptor, NamedElement.WithGenericName, NamedElement.WithOptionalName, NamedElement.WithRuntimeName -
Field Summary
Fields inherited from interface net.bytebuddy.description.ModifierReviewable
EMPTY_MASKFields inherited from interface net.bytebuddy.description.NamedElement
EMPTY_NAME, NO_NAMEFields inherited from interface net.bytebuddy.description.NamedElement.WithDescriptor
NON_GENERIC_SIGNATURE -
Method Summary
Modifier and TypeMethodDescriptionbooleanisAccessibleTo(TypeDescription typeDescription) Checks if this element is accessible from a given type.booleanisVisibleTo(TypeDescription typeDescription) Checks if this element is visible from a given type.Methods inherited from interface net.bytebuddy.description.annotation.AnnotationSource
getDeclaredAnnotationsMethods inherited from interface net.bytebuddy.description.DeclaredByType
getDeclaringTypeMethods inherited from interface net.bytebuddy.description.ModifierReviewable
getModifiers, getSyntheticState, isFinal, isSyntheticMethods inherited from interface net.bytebuddy.description.ModifierReviewable.OfByteCodeElement
getOwnership, getVisibility, isDeprecated, isPackagePrivate, isPrivate, isProtected, isPublic, isStaticMethods inherited from interface net.bytebuddy.description.NamedElement
getActualNameMethods inherited from interface net.bytebuddy.description.NamedElement.WithDescriptor
getDescriptor, getGenericSignatureMethods inherited from interface net.bytebuddy.description.NamedElement.WithRuntimeName
getInternalName, getName
-
Method Details
-
isVisibleTo
Checks if this element is visible from a given type. Visibility is a wider criteria then accessibility which can be checked by
isAccessibleTo(TypeDescription). Visibility allows the invocation of a method on itself or on external instances.Note: A method or field might define a signature that includes types that are not visible to a type. Such methods can be legally invoked from this type and can even be implemented as bridge methods by this type. It is however not legal to declare a method with invisible types in its signature that are not bridges what might require additional validation.
Important: Virtual byte code elements, i.e. virtual methods, are only considered visible if the type they are invoked upon is visible to a given type. The visibility of such virtual members can therefore not be determined by only investigating the invoked method but requires an additional check of the target type.
- Parameters:
typeDescription- The type which is checked for its visibility of this element.- Returns:
trueif this element is visible fortypeDescription.
-
isAccessibleTo
Checks if this element is accessible from a given type. Accessibility is a more narrow criteria then visibility which can be checked by
isVisibleTo(TypeDescription). Accessibility allows the invocation of a method on external instances or on itself. Methods that can be invoked from within an instance might however not be considered accessible.Note: A method or field might define a signature that includes types that are not visible to a type. Such methods can be legally invoked from this type and can even be implemented as bridge methods by this type. It is however not legal to declare a method with invisible types in its signature that are not bridges what might require additional validation.
Important: Virtual byte code elements, i.e. virtual methods, are only considered visible if the type they are invoked upon is visible to a given type. The visibility of such virtual members can therefore not be determined by only investigating the invoked method but requires an additional check of the target type.
- Parameters:
typeDescription- The type which is checked for its accessibility of this element.- Returns:
trueif this element is accessible fortypeDescription.
-