[jboss-cvs] jbosside/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util ...
Robert Stryker
rob.stryker at jboss.com
Fri Apr 20 19:44:56 EDT 2007
User: rawb
Date: 07/04/20 19:44:56
Modified: core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util
ModelUtil.java
Added: core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util
ArchiveNodeFactory.java
Log:
It Compiles! Not sure on if it *works* yet
Revision Changes Path
1.2 +37 -0 jbosside/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: ModelUtil.java
===================================================================
RCS file: /cvsroot/jboss/jbosside/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- ModelUtil.java 18 Apr 2007 21:07:52 -0000 1.1
+++ ModelUtil.java 20 Apr 2007 23:44:56 -0000 1.2
@@ -12,6 +12,7 @@
import org.jboss.ide.eclipse.archives.core.model.IArchiveFolder;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNode;
import org.jboss.ide.eclipse.archives.core.model.IArchiveNodeVisitor;
+import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveModelNode;
import org.jboss.ide.eclipse.archives.core.model.internal.ArchivesModel;
public class ModelUtil {
@@ -78,4 +79,40 @@
}
return null;
}
+
+ public static IPath getBaseFile(IArchiveNode node) {
+ return getBaseFile(node, null);
+ }
+ public static IPath getBaseFile(IArchiveNode node, IPath absolutePath) {
+ ArrayList list = new ArrayList();
+ while( node != null && !(node instanceof ArchiveModelNode)) {
+ list.add(node);
+ node = node.getParent();
+ }
+ IArchiveNode[] nodes = (IArchiveNode[]) list.toArray(new IArchiveNode[list.size()]);
+
+ IPath lastConcrete = null;
+ for( int i = 0; i < nodes.length; i++ ) {
+ if( nodes[i] instanceof IArchive) {
+ if( lastConcrete == null )
+ lastConcrete = ((IArchive)nodes[i]).getArchiveFilePath();
+ else
+ lastConcrete = lastConcrete.append(((IArchive)nodes[i]).getName());
+
+ if( !((IArchive)nodes[i]).isExploded())
+ return lastConcrete;
+ } else if( nodes[i] instanceof IArchiveFolder ) {
+ lastConcrete = lastConcrete.append(((IArchiveFolder)nodes[i]).getName());
+ }
+ }
+
+ if( absolutePath != null && node.getNodeType() == IArchiveNode.TYPE_ARCHIVE_FILESET ) {
+ IArchiveFileSet fs = ((IArchiveFileSet)node);
+ if( fs.getSourcePath().isPrefixOf(absolutePath)) {
+ lastConcrete.append(absolutePath.removeFirstSegments(fs.getSourcePath().segmentCount()));
+ }
+ }
+ return lastConcrete;
+ }
+
}
1.1 date: 2007/04/20 23:44:56; author: rawb; state: Exp;jbosside/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ArchiveNodeFactory.java
Index: ArchiveNodeFactory.java
===================================================================
package org.jboss.ide.eclipse.archives.core.util;
import org.jboss.ide.eclipse.archives.core.model.IArchive;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFileSet;
import org.jboss.ide.eclipse.archives.core.model.IArchiveFolder;
import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveFileSetImpl;
import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveFolderImpl;
import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveImpl;
public class ArchiveNodeFactory {
public static IArchive createArchive() {
return new ArchiveImpl();
}
public static IArchiveFileSet createFileset() {
return new ArchiveFileSetImpl();
}
public static IArchiveFolder createFolder() {
return new ArchiveFolderImpl();
}
}
More information about the jboss-cvs-commits
mailing list