org.openide.loaders
Class InstanceSupport

java.lang.Object
  |
  +--org.openide.loaders.InstanceSupport
All Implemented Interfaces:
InstanceCookie, InstanceCookie.Of, Node.Cookie
Direct Known Subclasses:
InstanceSupport.Origin

public class InstanceSupport
extends Object
implements InstanceCookie.Of

An instance cookie implementation that works with files or entries.


Inner Class Summary
static class InstanceSupport.Instance
          Trivial supporting instance cookie for already-existing objects.
static class InstanceSupport.Origin
          Enhanced instance cookie support that also knows the file it has been created from and can be serialized back to.
 
Inner classes inherited from class org.openide.cookies.InstanceCookie
InstanceCookie.Of, InstanceCookie.Origin
 
Constructor Summary
InstanceSupport(MultiDataObject.Entry entry)
          New support for given entry.
 
Method Summary
protected  ClassLoader createClassLoader()
          Creates new NbClassLoader with restricted PermissionCollection that contains only: java.io.FilePermission("<>", "read") java.util.PropertyPermission("*", "read")
static HelpCtx findHelp(InstanceCookie instance)
          Find context help for some instance.
 Class instanceClass()
          The representation type that may be created as instances.
 Object instanceCreate()
          Create an instance.
 String instanceName()
          The name of instanceClass().
 boolean instanceOf(Class type)
          Query to found out if the object created by this cookie is instance of given type.
 FileObject instanceOrigin()
          Returns the origin of the instance.
 boolean isApplet()
          Is this an applet?
 boolean isExecutable()
          Is this a standalone executable?
 boolean isInterface()
          Is this an interface?
 boolean isJavaBean()
          Deprecated. This method probably should not be used, as it catches a variety of potentially serious exceptions and errors, and swallows them so as to produce a simple boolean result. (Notifying them all would be inappropriate as they typically come from user code.) Better to directly parse the bytecode, using e.g. the classfile module, which is immune to this class of errors.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

InstanceSupport

public InstanceSupport(MultiDataObject.Entry entry)
New support for given entry. The file is taken from the entry and is updated if the entry moves or renames itself.
Parameters:
entry - entry to create instance from
Method Detail

instanceName

public String instanceName()
Description copied from interface: InstanceCookie
The name of InstanceCookie.instanceClass().
Specified by:
instanceName in interface InstanceCookie
Following copied from interface: org.openide.cookies.InstanceCookie
Returns:
the instance class name

instanceClass

public Class instanceClass()
                    throws IOException,
                           ClassNotFoundException
Description copied from interface: InstanceCookie
The representation type that may be created as instances. Can be used to test whether the instance is of an appropriate class without actually creating it.
Specified by:
instanceClass in interface InstanceCookie
Following copied from interface: org.openide.cookies.InstanceCookie
Returns:
the representation class of the instance
Throws:
IOException - if an I/O error occurred
ClassNotFoundException - if a class was not found

instanceOf

public boolean instanceOf(Class type)
Description copied from interface: InstanceCookie.Of
Query to found out if the object created by this cookie is instance of given type. The same code as:
    Class actualClass = instanceClass ();
    result = type.isAsignableFrom (actualClass);
 
But this can prevent the class actualClass to be loaded into the Java VM.
Specified by:
instanceOf in interface InstanceCookie.Of
Following copied from interface: org.openide.cookies.InstanceCookie.Of
Parameters:
type - the class type we want to check
Returns:
true if this cookie can produce object of given type

instanceOrigin

public FileObject instanceOrigin()
Returns the origin of the instance.
Returns:
the origin
See Also:
InstanceCookie.Origin#instanceOrigin

instanceCreate

public Object instanceCreate()
                      throws IOException,
                             ClassNotFoundException
Description copied from interface: InstanceCookie
Create an instance.
Specified by:
instanceCreate in interface InstanceCookie
Following copied from interface: org.openide.cookies.InstanceCookie
Returns:
the instance of type InstanceCookie.instanceClass() (or a subclass)
Throws:
IOException - if an I/O error occured
ClassNotFoundException - if a class was not found

isApplet

public boolean isApplet()
Is this an applet?
Returns:
true if this class is an Applet

isExecutable

public boolean isExecutable()
Is this a standalone executable?
Returns:
true if this class has main method (e.g., public static void main (String[] arguments)).

isJavaBean

public boolean isJavaBean()
Deprecated. This method probably should not be used, as it catches a variety of potentially serious exceptions and errors, and swallows them so as to produce a simple boolean result. (Notifying them all would be inappropriate as they typically come from user code.) Better to directly parse the bytecode, using e.g. the classfile module, which is immune to this class of errors.

Is this a JavaBean?
Returns:
true if this class represents JavaBean (is public and has a public default constructor).

isInterface

public boolean isInterface()
Is this an interface?
Returns:
true if the class is an interface

toString

public String toString()
Overrides:
toString in class Object

findHelp

public static HelpCtx findHelp(InstanceCookie instance)
Find context help for some instance. Helper method useful in nodes or data objects that provide an instance cookie; they may choose to supply their own help context based on this. All API classes which can provide help contexts will be tested for (including HelpCtx instances themselves). JComponents are checked for an attached help ID property, as with HelpCtx.findHelp(java.awt.Component) (but not traversing parents).

Also, partial compliance with the JavaHelp section on JavaBeans help is implemented--i.e., if a Bean in its BeanInfo provides a BeanDescriptor which has the attribute helpID, this will be returned. The value is not defaulted (because it would usually be nonsense and would mask a useful default help for the instance container), nor is the help set specification checked, since someone should have installed the proper help set anyway, and the APIs cannot add a new reference to a help set automatically. See javax.help.HelpUtilities.getIDStringFromBean for details.

Special IDs are added, corresponding to the class name, for all standard visual components.

Parameters:
instance - the instance to check for help (it is permissible for the InstanceCookie.instanceCreate() to return null)
Returns:
the help context found on the instance or inferred from a Bean, or null if none was found (or it was HelpCtx.DEFAULT_HELP)

createClassLoader

protected ClassLoader createClassLoader()
Creates new NbClassLoader with restricted PermissionCollection that contains only: java.io.FilePermission("<>", "read") java.util.PropertyPermission("*", "read")
Returns:
ClassLoader


Built on December 12 2001.  |  Portions Copyright 1997-2001 Sun Microsystems, Inc. All rights reserved.