[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