Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] ILibraryReference cdt.core

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/ChangeLog,v
retrieving revision 1.84
diff -u -r1.84 ChangeLog
--- ChangeLog	2 Apr 2003 05:00:44 -0000	1.84
+++ ChangeLog	3 Apr 2003 04:25:12 -0000
@@ -1,3 +1,17 @@
+2003-04-02 Alain Magloire
+
+	First draft on implementing LibraryReference.
+
+	* model/org/eclipse/cdt/core/model/ICProject.java:
+	* model/org/eclipse/cdt/internal/core/model/CProject.java:
+	New method getLibraryReferences().
+	* model/org/eclipse/cdt/internal/core/model/LibraryReference.java:
+	New class.
+
+	* src/org/eclipse/cdt/internal/core/CDescriptor.java:
+	Bug fix in readProjectDescription(); fPathEntries was not initialized
+	and decodePathEntry() was call with the wrong argument.
+ 
 2003-04-01 Alain Magloire
 
 	Implement SourceRefence and SourceManipulation for IBinary, this is
Index: model/org/eclipse/cdt/core/model/ICProject.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/model/org/eclipse/cdt/core/model/ICProject.java,v
retrieving revision 1.4
diff -u -r1.4 ICProject.java
--- model/org/eclipse/cdt/core/model/ICProject.java	27 Mar 2003 16:04:19 -0000	1.4
+++ model/org/eclipse/cdt/core/model/ICProject.java	3 Apr 2003 04:25:14 -0000
@@ -39,5 +39,16 @@
 	 */
 	IBinaryContainer getBinaryContainer();
 
+	/**
+	 * Return the library references for this project.
+	 * 
+	 * @return [] ILibraryReference
+	 */
+	ILibraryReference[] getLibraryReferences() throws CModelException;
+
+	/**
+	 * 
+	 * @return IProject
+	 */
 	IProject getProject();
 }
Index: model/org/eclipse/cdt/internal/core/model/CProject.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/model/org/eclipse/cdt/internal/core/model/CProject.java,v
retrieving revision 1.5
diff -u -r1.5 CProject.java
--- model/org/eclipse/cdt/internal/core/model/CProject.java	27 Mar 2003 16:05:18 -0000	1.5
+++ model/org/eclipse/cdt/internal/core/model/CProject.java	3 Apr 2003 04:25:14 -0000
@@ -5,13 +5,19 @@
  * All Rights Reserved.
  */
  
+import java.util.ArrayList;
+
+import org.eclipse.cdt.core.CCorePlugin;
 import org.eclipse.cdt.core.CProjectNature;
+import org.eclipse.cdt.core.ICDescriptor;
+import org.eclipse.cdt.core.ICPathEntry;
 import org.eclipse.cdt.core.model.CModelException;
 import org.eclipse.cdt.core.model.IArchiveContainer;
 import org.eclipse.cdt.core.model.IBinaryContainer;
 import org.eclipse.cdt.core.model.ICElement;
 import org.eclipse.cdt.core.model.ICModelStatusConstants;
 import org.eclipse.cdt.core.model.ICProject;
+import org.eclipse.cdt.core.model.ILibraryReference;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
@@ -75,4 +81,20 @@
 		return getProject().hashCode();
 	}
 
+	public ILibraryReference[] getLibraryReferences() throws CModelException {
+		ArrayList list = new ArrayList(5);
+		try {
+			ICDescriptor cdesc = CCorePlugin.getDefault().getCProjectDescription(getProject());
+			ICPathEntry[] entries = cdesc.getPathEntries();
+			for (int i = 0; i < entries.length; i++) {
+				if (entries[i].getEntryKind() == ICPathEntry.CDT_LIBRARY) {
+					ICPathEntry entry = entries[i];
+					list.add(new LibraryReference(this, entry.getPath().lastSegment(),entry));
+				}
+			}
+		} catch (CoreException e) {
+			throw new CModelException(e);
+		}
+		return (ILibraryReference[])list.toArray(new ILibraryReference[0]);
+	}
 }
Index: model/org/eclipse/cdt/internal/core/model/LibraryReference.java
===================================================================
RCS file: model/org/eclipse/cdt/internal/core/model/LibraryReference.java
diff -N model/org/eclipse/cdt/internal/core/model/LibraryReference.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ model/org/eclipse/cdt/internal/core/model/LibraryReference.java	3 Apr 2003 04:25:15 -0000
@@ -0,0 +1,49 @@
+/*
+ * Created on Apr 2, 2003
+ *
+ * To change this generated comment go to 
+ * Window>Preferences>Java>Code Generation>Code Template
+ */
+package org.eclipse.cdt.internal.core.model;
+
+import org.eclipse.cdt.core.ICPathEntry;
+import org.eclipse.cdt.core.model.ICElement;
+import org.eclipse.cdt.core.model.ILibraryReference;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IPath;
+
+/**
+ * @author alain
+ */
+public class LibraryReference extends Parent implements ILibraryReference {
+
+	ICPathEntry entry;
+	public LibraryReference(ICElement parent, String name, ICPathEntry e) {
+		super(parent, name, ICElement.C_VCONTAINER);
+		entry = e;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.cdt.core.model.ICElement#getResource()
+	 */
+	public IResource getResource() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.cdt.internal.core.model.CElement#createElementInfo()
+	 */
+	protected CElementInfo createElementInfo() {
+		// TODO Auto-generated method stub
+		return new CElementInfo(this);
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.cdt.core.model.ICElement#getPath()
+	 */
+	public IPath getPath() {
+		return entry.getPath();
+	}
+
+}
Index: src/org/eclipse/cdt/internal/core/CDescriptor.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/CDescriptor.java,v
retrieving revision 1.8
diff -u -r1.8 CDescriptor.java
--- src/org/eclipse/cdt/internal/core/CDescriptor.java	28 Mar 2003 21:00:39 -0000	1.8
+++ src/org/eclipse/cdt/internal/core/CDescriptor.java	3 Apr 2003 04:25:18 -0000
@@ -320,15 +320,18 @@
 			childNode = list.item(i);
 			if ( childNode.getNodeType() == Node.ELEMENT_NODE ) {
 				if (childNode.getNodeName().equals(PROJECT_EXTENSION)) {
-					decodeProjectExtension((Element)node);
+					//decodeProjectExtension((Element)node);
+					decodeProjectExtension((Element)childNode);
 				} else if (childNode.getNodeName().equals(PATH_ENTRY)) {
-					ICPathEntry entry = decodePathEntry((Element)node);
+					//ICPathEntry entry = decodePathEntry((Element)node);
+					ICPathEntry entry = decodePathEntry((Element)childNode);
 					if (entry != null) {
 						pathEntries.add(entry);
 					}
 				}
 			}
 		}
+		fPathEntries = (ICPathEntry[]) pathEntries.toArray(new ICPathEntry[0]);
 		return ownerID;
 	}
 



Back to the top