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()
WovenClassnamed 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 WovenClassnamed class.public void setBytes(byte[] newBytes)
WovenClassnamed 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 WovenClassnewBytes - 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()
WovenClassbundle 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 WovenClassIllegalArgumentException if a
malformed dynamic import package description is added.public boolean isWeavingComplete()
WovenClassweaving hook is called and
the class is defined.
After weaving is complete, this object becomes effectively immutable.
isWeavingComplete in interface WovenClasstrue weaving is complete, false otherwise.public String getClassName()
WovenClassgetClassName in interface WovenClasspublic ProtectionDomain getProtectionDomain()
WovenClassgetProtectionDomain in interface WovenClassnull if no protection domain will
be assigned.public Class<?> getDefinedClass()
WovenClassnull. Once weaving is
complete, this method will return the class
object if this woven class was used to define the class.getDefinedClass in interface WovenClassnull if
weaving is not complete, the class definition failed or this
woven class was not used to define the class.public BundleWiring getBundleWiring()
WovenClassgetBundleWiring in interface WovenClasspublic void call(Object hook, ServiceRegistration<?> hookRegistration) throws Exception
HookContextcall in interface HookContexthook - 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()
HookContextgetHookMethodName in interface HookContextpublic String getHookClassName()
HookContextgetHookClassName in interface HookContextpublic ServiceRegistration<?> getErrorHook()
Copyright © 2007–2016 The Apache Software Foundation. All rights reserved.