[jbosstools-commits] JBoss Tools SVN: r6720 - in trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core: util and 1 other directory.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Thu Mar 6 14:12:00 EST 2008


Author: rob.stryker at jboss.com
Date: 2008-03-06 14:12:00 -0500 (Thu, 06 Mar 2008)
New Revision: 6720

Modified:
   trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java
   trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java
Log:
Moved the xb wrapper function to a util class so its not only possible to use via the model. 

Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java	2008-03-06 18:50:34 UTC (rev 6719)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/model/ArchivesModel.java	2008-03-06 19:12:00 UTC (rev 6720)
@@ -32,21 +32,13 @@
 
 import org.eclipse.core.runtime.IPath;
 import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.NullProgressMonitor;
 import org.jboss.ide.eclipse.archives.core.ArchivesCore;
-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;
 import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveModelNode;
-import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveNodeImpl;
 import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding;
-import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbFileSet;
-import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbFolder;
-import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackage;
-import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackageNode;
 import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackages;
 import org.jboss.ide.eclipse.archives.core.model.internal.xb.XMLBinding.XbException;
+import org.jboss.ide.eclipse.archives.core.util.ModelUtil;
 
 /**
  * The root model which keeps track of registered projects
@@ -253,7 +245,7 @@
 			ArchiveModelNode oldRoot = archivesRoot.get(project);
 			xbPackages.put(project, packages);
 			archivesRoot.put(project, root);
-			createPackageNodeImpl(project, packages, null);
+			ModelUtil.createPackagesNodeImpl(project, packages, (ArchiveModelNode)getRoot(project));
 			root.clearDeltas();
 			fireRegisterProjectEvent(oldRoot, root);
 			monitor.worked(1);
@@ -284,40 +276,7 @@
 		EventManager.fireDelta(delta);
 	}
 	
-	public ArchiveNodeImpl createPackageNodeImpl (IPath project, XbPackageNode node, IArchiveNode parent) {
-		
-		if( node instanceof XbPackages ) {
-			ArchiveModelNode impl = (ArchiveModelNode)getRoot(project);
-			for (Iterator iter = node.getAllChildren().iterator(); iter.hasNext(); ) {
-				XbPackageNode child = (XbPackageNode) iter.next();
-				ArchiveNodeImpl childImpl = createPackageNodeImpl(project, child, impl);
-				if (impl != null && childImpl != null) {
-					impl.addChild(childImpl, false);
-				}
-			}
-			return null;
-		}
-		
-		ArchiveNodeImpl nodeImpl = null;
-		if (node instanceof XbPackage) {
-			nodeImpl = new ArchiveImpl((XbPackage)node);
-		} else if (node instanceof XbFolder) {
-			nodeImpl = new ArchiveFolderImpl((XbFolder)node);
-		} else if (node instanceof XbFileSet) {
-			nodeImpl = new ArchiveFileSetImpl((XbFileSet)node);
-		}
-		
-		for (Iterator iter = node.getAllChildren().iterator(); iter.hasNext(); ) {
-			XbPackageNode child = (XbPackageNode) iter.next();
-			ArchiveNodeImpl childImpl = createPackageNodeImpl(project, child, nodeImpl);
-			if (nodeImpl != null && childImpl != null) {
-				nodeImpl.addChild(childImpl, false);
-			}
-		}
-		
-		return nodeImpl;
-	}
-	
+
 	public void saveModel (IPath project, IProgressMonitor monitor) {
 		// get a list of dirty nodes
 		
@@ -346,7 +305,8 @@
 		// fire delta events
 		EventManager.fireDelta(delta);
 	}
-	
+
+	// TODO: This requires massive help and new API's as well. 
 	public void attach(IArchiveNode parent, IArchiveNode child, IProgressMonitor monitor) {
 		parent.addChild(child);
 		if( parent.connectedToModel() && parent.getProjectPath() != null) {

Modified: trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java
===================================================================
--- trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java	2008-03-06 18:50:34 UTC (rev 6719)
+++ trunk/core/plugins/org.jboss.ide.eclipse.archives.core/src/main/org/jboss/ide/eclipse/archives/core/util/ModelUtil.java	2008-03-06 19:12:00 UTC (rev 6720)
@@ -24,6 +24,7 @@
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.Iterator;
 
 import org.eclipse.core.runtime.IPath;
 import org.jboss.ide.eclipse.archives.core.ArchivesCore;
@@ -31,9 +32,20 @@
 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.IArchiveModelNode;
 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.ArchiveFileSetImpl;
+import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveFolderImpl;
+import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveImpl;
 import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveModelNode;
+import org.jboss.ide.eclipse.archives.core.model.internal.ArchiveNodeImpl;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbAction;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbFileSet;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbFolder;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackage;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackageNode;
+import org.jboss.ide.eclipse.archives.core.model.internal.xb.XbPackages;
 
 /**
  * Utility class for matching model elements and stuff
@@ -209,4 +221,41 @@
 		if( projectPath == null ) return null;
 		return projectPath.append(workspacePath.removeFirstSegments(1));
 	}
+	
+	public static ArchiveNodeImpl createPackagesNodeImpl (IPath project, XbPackages node, IArchiveModelNode modelNode) { 
+		for (Iterator iter = node.getAllChildren().iterator(); iter.hasNext(); ) {
+			XbPackageNode child = (XbPackageNode) iter.next();
+			ArchiveNodeImpl childImpl = (ArchiveNodeImpl)createPackageNodeImpl(child, modelNode);
+			if (modelNode != null && childImpl != null) {
+				if( modelNode instanceof ArchiveNodeImpl )
+					((ArchiveNodeImpl)modelNode).addChild(childImpl, false);
+				else
+					modelNode.addChild(childImpl);
+			}
+		}
+		return null;
+	}
+
+	protected static IArchiveNode createPackageNodeImpl (XbPackageNode node, IArchiveNode parent) {
+		ArchiveNodeImpl nodeImpl = null;
+		if (node instanceof XbPackage) {
+			nodeImpl = new ArchiveImpl((XbPackage)node);
+		} else if (node instanceof XbFolder) {
+			nodeImpl = new ArchiveFolderImpl((XbFolder)node);
+		} else if (node instanceof XbFileSet) {
+			nodeImpl = new ArchiveFileSetImpl((XbFileSet)node);
+		} else if( node instanceof XbAction ) {
+			nodeImpl = null; // TODO
+		}
+		
+		for (Iterator iter = node.getAllChildren().iterator(); iter.hasNext(); ) {
+			XbPackageNode child = (XbPackageNode) iter.next();
+			ArchiveNodeImpl childImpl = (ArchiveNodeImpl)createPackageNodeImpl(child, nodeImpl);
+			if (nodeImpl != null && childImpl != null) {
+				nodeImpl.addChild(childImpl, false);
+			}
+		}
+		return nodeImpl;
+	}
+	
 }




More information about the jbosstools-commits mailing list