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. |