|
From: <pat...@us...> - 2009-08-24 17:27:30
|
Revision: 936
http://cishell.svn.sourceforge.net/cishell/?rev=936&view=rev
Author: pataphil
Date: 2009-08-24 17:27:23 +0000 (Mon, 24 Aug 2009)
Log Message:
-----------
* Added workaround for crazy File.listFiles bug (where empty directories were not in the listing).
Modified Paths:
--------------
trunk/templates/org.cishell.templates.wizards/src/org/cishell/templates/wizards/BasicTemplate.java
Added Paths:
-----------
trunk/templates/org.cishell.templates.wizards/templates_3.0/static_executable/ALGORITHM/default/!PLACEHOLDER!
trunk/templates/org.cishell.templates.wizards/templates_3.0/static_executable/ALGORITHM/linux.x86/!PLACEHOLDER!
trunk/templates/org.cishell.templates.wizards/templates_3.0/static_executable/ALGORITHM/linux.x86_64/!PLACEHOLDER!
trunk/templates/org.cishell.templates.wizards/templates_3.0/static_executable/ALGORITHM/macosx.ppc/!PLACEHOLDER!
trunk/templates/org.cishell.templates.wizards/templates_3.0/static_executable/ALGORITHM/macosx.x86/!PLACEHOLDER!
trunk/templates/org.cishell.templates.wizards/templates_3.0/static_executable/ALGORITHM/solaris.sparc/!PLACEHOLDER!
trunk/templates/org.cishell.templates.wizards/templates_3.0/static_executable/ALGORITHM/win32/!PLACEHOLDER!
trunk/templates/org.cishell.templates.wizards/templates_3.0/static_executable/src/!PLACEHOLDER!
Modified: trunk/templates/org.cishell.templates.wizards/src/org/cishell/templates/wizards/BasicTemplate.java
===================================================================
--- trunk/templates/org.cishell.templates.wizards/src/org/cishell/templates/wizards/BasicTemplate.java 2009-08-22 14:39:16 UTC (rev 935)
+++ trunk/templates/org.cishell.templates.wizards/src/org/cishell/templates/wizards/BasicTemplate.java 2009-08-24 17:27:23 UTC (rev 936)
@@ -48,6 +48,12 @@
// TODO Could we safely reduce some of the method visibilities here?
public abstract class BasicTemplate extends OptionTemplateSection {
+ /*
+ * TODO: This is a hack to fix a bug where File seems to exclude empty
+ * directories from its list of sub files on certain platforms.
+ */
+ public static final String HACK_PLACEHOLDER_FILE_NAME = "!PLACEHOLDER!";
+
protected final String sectionID;
protected Map valueMap;
protected Map optionMap;
@@ -145,7 +151,7 @@
}
protected void generateFiles(IProgressMonitor progressMonitor,
- URL locationURL) throws CoreException {
+ URL locationURL) throws CoreException {
progressMonitor.setTaskName(
PDEUIMessages.AbstractTemplateSection_generating);
@@ -172,12 +178,12 @@
return;
}
- generateFiles(templateDirectory,
- project,
- true,
- false,
- true,
- progressMonitor);
+ generateFilesFromDirectory(templateDirectory,
+ project,
+ true,
+ false,
+ true,
+ progressMonitor);
} else if ("jar".equals(resolvedLocationURLProtocol)) {
int exclamationIndex = resolvedLocationURLFileName.indexOf('!');
@@ -209,12 +215,12 @@
try {
zipFile = new ZipFile(pluginJarFile);
- generateFiles(zipFile,
- templateDirectoryPath,
- project,
- true,
- false,
- progressMonitor);
+ generateFilesFromZipFile(zipFile,
+ templateDirectoryPath,
+ project,
+ true,
+ false,
+ progressMonitor);
} catch (ZipException zipException) {
} catch (IOException ioException1) {
} finally {
@@ -228,11 +234,11 @@
}
- progressMonitor.subTask(""); //$NON-NLS-1$
+ progressMonitor.subTask("");
progressMonitor.worked(1);
}
- protected void generateFiles(
+ protected void generateFilesFromDirectory(
File sourceFile,
IContainer destinationContainer,
boolean isFirstLevel,
@@ -244,6 +250,11 @@
for (int ii = 0; ii < sourceSubFiles.length; ii++) {
File sourceSubFile = sourceSubFiles[ii];
+ if (sourceSubFiles[ii].getName().equals(
+ HACK_PLACEHOLDER_FILE_NAME)) {
+ continue;
+ }
+
boolean shouldProcessSubFileAsTemplate =
shouldProcessAsTemplate && shouldProcessFile(sourceSubFile);
@@ -269,7 +280,7 @@
}
if (subDestinationContainer == null) {
- if (isOkToCreateFolder(sourceSubFile) == false) {
+ if (!isOkToCreateFolder(sourceSubFile)) {
continue;
}
@@ -292,12 +303,12 @@
true, true, progressMonitor);
}
- generateFiles(sourceSubFile,
- subDestinationContainer,
- false,
- isBinaryFile,
- shouldProcessSubFileAsTemplate,
- progressMonitor);
+ generateFilesFromDirectory(sourceSubFile,
+ subDestinationContainer,
+ false,
+ isBinaryFile,
+ shouldProcessSubFileAsTemplate,
+ progressMonitor);
} else {
if (isOkToCreateFile(sourceSubFile)) {
if (isFirstLevel) {
@@ -328,7 +339,7 @@
}
}
- protected void generateFiles(
+ protected void generateFilesFromZipFile(
ZipFile zipFile,
IPath filePath,
IContainer destinationContainer,
@@ -407,7 +418,7 @@
true, true, progressMonitor);
}
- generateFiles(zipFile,
+ generateFilesFromZipFile(zipFile,
filePath.append(name),
subDestinationContainer,
false,
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|