public final class WovenClassImpl extends Object implements WovenClass, HookContext
Constructor and Description |
---|
WovenClassImpl(String className,
byte[] bytes,
BundleEntry entry,
ProtectionDomain domain,
BundleLoader loader,
ServiceRegistry registry,
Map<ServiceRegistration<?>,Boolean> blacklist) |
Modifier and Type | Method and Description |
---|---|
void |
call(Object hook,
ServiceRegistration<?> hookRegistration)
Call the specified hook.
|
BundleWiring |
getBundleWiring()
Returns the bundle wiring whose class loader will define the woven class.
|
byte[] |
getBytes()
Returns the class file bytes to be used to define the
named class. |
String |
getClassName()
Returns the fully qualified name of the class being woven.
|
Class<?> |
getDefinedClass()
Returns the class defined by this woven class.
|
List<String> |
getDynamicImports()
Returns the list of dynamic import package descriptions to add to the
bundle wiring for this woven class. |
ServiceRegistration<?> |
getErrorHook() |
String |
getHookClassName()
Return the class name of the hook type supported by this hook context.
|
String |
getHookMethodName()
Return the hook method name called by this hook context.
|
ProtectionDomain |
getProtectionDomain()
Returns the protection domain to which the woven class will be assigned
when it is defined.
|
boolean |
isWeavingComplete()
Returns whether weaving is complete in this woven class.
|
void |
setBytes(byte[] newBytes)
Set the class file bytes to be used to define the
named class. |
String |
toString() |
public WovenClassImpl(String className, byte[] bytes, BundleEntry entry, ProtectionDomain domain, BundleLoader loader, ServiceRegistry registry, Map<ServiceRegistration<?>,Boolean> blacklist)
public byte[] getBytes()
WovenClass
named
class.
While weaving is not complete
, this method
returns a reference to the class files byte array contained in this
object. After weaving is complete
, this
object becomes effectively immutable and a copy of the class file byte
array is returned.
getBytes
in interface WovenClass
named
class.public void setBytes(byte[] newBytes)
WovenClass
named
class. This method must not be
called outside invocations of the weave
method by the framework.
While weaving is not complete
, this method
replaces the reference to the array contained in this object with the
specified array. After weaving is complete
,
this object becomes effectively immutable and this method will throw an
IllegalStateException
.
setBytes
in interface WovenClass
newBytes
- The new classfile that will be used to define the
named
class. The specified array
is retained by this object and the caller must not modify the
specified array.public List<String> getDynamicImports()
WovenClass
bundle wiring
for this woven class. Changes
made to the returned list will be visible to later weaving hooks
called with this object. The returned list must not be
modified outside invocations of the weave
method by the framework.
After weaving is complete
, this object
becomes effectively immutable and the returned list will be unmodifiable.
If the Java runtime environment supports permissions, the caller must
have AdminPermission[bundle,WEAVE]
to modify the returned list.
getDynamicImports
in interface WovenClass
IllegalArgumentException
if a
malformed dynamic import package description is added.public boolean isWeavingComplete()
WovenClass
weaving hook
is called and
the class is defined.
After weaving is complete, this object becomes effectively immutable.
isWeavingComplete
in interface WovenClass
true
weaving is complete, false
otherwise.public String getClassName()
WovenClass
getClassName
in interface WovenClass
public ProtectionDomain getProtectionDomain()
WovenClass
getProtectionDomain
in interface WovenClass
null
if no protection domain will
be assigned.public Class<?> getDefinedClass()
WovenClass
null
. Once weaving is
complete
, this method will return the class
object if this woven class was used to define the class.getDefinedClass
in interface WovenClass
null
if
weaving is not complete, the class definition failed or this
woven class was not used to define the class.public BundleWiring getBundleWiring()
WovenClass
getBundleWiring
in interface WovenClass
public void call(Object hook, ServiceRegistration<?> hookRegistration) throws Exception
HookContext
call
in interface HookContext
hook
- The hook object to call. The hook object must be of the type
supported by this hook context. If it is not, then this method will
simply return.hookRegistration
- the registration for the hook objectException
- An exception thrown by the hook object.public String getHookMethodName()
HookContext
getHookMethodName
in interface HookContext
public String getHookClassName()
HookContext
getHookClassName
in interface HookContext
public ServiceRegistration<?> getErrorHook()
Copyright © 2007–2018 The Apache Software Foundation. All rights reserved.