[
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;
}