}
public Set instantiate(TemplateWizard wiz) throws IOException/*, IllegalStateException*/ {
String name = wiz.getTargetName();
DataFolder targetFolder = wiz.getTargetFolder();
DataObject template = wiz.getTemplate();
DataObject result;
if (name == null) {
result = template.createFromTemplate(targetFolder);
} else {
result = template.createFromTemplate(targetFolder, name);
}
SourceCookie sourcecookie = (SourceCookie)result.getCookie(SourceCookie.class);
if(sourcecookie == null) {
//what should we do if the template does not contain a class
return Collections.singleton(result);
}
//here we get the outer class
ClassElement aclasselement[] = sourcecookie.getSource().getClasses();
try {
sourcecookie.getSource().addImports(myData.getImports());
sourcecookie.getSource().removeClass(aclasselement[0]);
sourcecookie.getSource().addClass(myData.getOuterClass());
// Create a manifest.
OOTools.writeManifest(
targetFolder.getPrimaryFile().getFileSystem().getSystemName(),
myData.getPackage()
+ ( ( myData.getPackage().equals( "" ) ) ? ( "" ) : ( "." ) )
+ myData.getClassName() );
// Create Basic code for registering the service in the office.
OOTools.writeBasicCode(
targetFolder.getPrimaryFile().getFileSystem().getSystemName(),
myData.getServiceName(),
myData.getClassName() );
// TopManager.getDefault().notify(
// new NotifyDescriptor.Message(
// "Start creating the jar content..." ) );
// Create jar content with necessary files.
OOTools.createJarContent( myData,
targetFolder.getPrimaryFile().getFileSystem().getSystemName(),
targetFolder.getPrimaryFile().getFileSystem() );
// TopManager.getDefault().notify(
// new NotifyDescriptor.Message(
// "Finished creating the jar content." ) );
// Create a ANT build file for the component.
OOTools.writeANTFile( myData,
targetFolder.getPrimaryFile().getFileSystem().getSystemName() );
}
catch(SourceException sourceexception) {
result.delete();
throw new IOException(sourceexception.getLocalizedMessage());
}