325733 - trunk
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/VirtualComponentFlattenUtility.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/VirtualComponentFlattenUtility.java
index 01aad61..7b3cdd6 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/VirtualComponentFlattenUtility.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/flat/VirtualComponentFlattenUtility.java
@@ -25,6 +25,7 @@
import org.eclipse.core.runtime.Path;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
import org.eclipse.wst.common.componentcore.resources.IVirtualContainer;
+import org.eclipse.wst.common.componentcore.resources.IVirtualFile;
import org.eclipse.wst.common.componentcore.resources.IVirtualResource;
/**
@@ -104,18 +105,22 @@
}
public void addFile(IVirtualComponent current, IPath path, IAdaptable file) {
+ IVirtualFile vf = (IVirtualFile)file.getAdapter(IVirtualFile.class);
IFile f = (IFile)file.getAdapter(IFile.class);
IFlatFile mf = null;
+ String vfName = null;
+ if( vf != null && vf.getName() != null )
+ vfName = vf.getName();
if( f != null )
- mf = createModuleFile(f, path.makeRelative());
+ mf = new FlatFile(f, vfName == null ? f.getName() : vfName, path);
else {
File f2 = (File)file.getAdapter(File.class);
if( f2 != null )
- mf = new FlatFile(f2, f2.getName(), path.makeRelative());
+ mf = new FlatFile(f2, vfName == null ? f2.getName() : vfName, path.makeRelative());
}
if( mf != null ) {
if (handler == null || handler.shouldAddComponentFile(current, mf)) {
- if( mf.getModuleRelativePath().isEmpty()) {
+ if( mf.getModuleRelativePath().segmentCount() == 0) {
members.remove(mf);
members.add(mf);
}
diff --git a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualFile.java b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualFile.java
index 9aa66c6..c97ed5a 100644
--- a/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualFile.java
+++ b/plugins/org.eclipse.wst.common.modulecore/modulecore-src/org/eclipse/wst/common/componentcore/internal/resources/VirtualFile.java
@@ -128,6 +128,10 @@
if( IFile.class.equals(adapter)) {
return getUnderlyingFile();
}
+ if( IVirtualFile.class.equals(adapter))
+ return this;
+ if( IVirtualResource.class.equals(adapter))
+ return this;
return null;
}
}