X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/resourcesview/PHPProject.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/resourcesview/PHPProject.java deleted file mode 100644 index e903be5..0000000 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/resourcesview/PHPProject.java +++ /dev/null @@ -1,175 +0,0 @@ -package net.sourceforge.phpeclipse.resourcesview; - -import java.io.ByteArrayInputStream; -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import javax.xml.parsers.SAXParserFactory; - -import net.sourceforge.phpeclipse.LoadPathEntry; -import net.sourceforge.phpeclipse.PHPeclipsePlugin; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IProjectNature; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.xml.sax.Attributes; -import org.xml.sax.ContentHandler; -import org.xml.sax.InputSource; -import org.xml.sax.Locator; -import org.xml.sax.SAXException; -import org.xml.sax.XMLReader; - -public class PHPProject implements IProjectNature, PHPElement { - protected IProject fProject; - protected List loadPathEntries; - protected boolean scratched; - - public PHPProject() {} - - public void configure() throws CoreException {} - - public void deconfigure() throws CoreException {} - - public IProject getProject() { - return fProject; - } - - protected IProject getProject(String name) { - return PHPeclipsePlugin.getWorkspace().getRoot().getProject(name); - } - - public void setProject(IProject aProject) { - fProject = aProject; - } - - public void addLoadPathEntry(IProject anotherPHPProject) { - scratched = true; - - LoadPathEntry newEntry = new LoadPathEntry(anotherPHPProject); - getLoadPathEntries().add(newEntry); - } - - public void removeLoadPathEntry(IProject anotherPHPProject) { - Iterator entries = getLoadPathEntries().iterator(); - while (entries.hasNext()) { - LoadPathEntry entry = (LoadPathEntry) entries.next(); - if (entry.getType() == LoadPathEntry.TYPE_PROJECT && entry.getProject().getName().equals(anotherPHPProject.getName())) { - getLoadPathEntries().remove(entry); - scratched = true; - break; - } - } - } - - public List getLoadPathEntries() { - if (loadPathEntries == null) { - loadLoadPathEntries(); - } - - return loadPathEntries; - } - - public List getReferencedProjects() { - List referencedProjects = new ArrayList(); - - Iterator iterator = getLoadPathEntries().iterator(); - while (iterator.hasNext()) { - LoadPathEntry pathEntry = (LoadPathEntry) iterator.next(); - if (pathEntry.getType() == LoadPathEntry.TYPE_PROJECT) - referencedProjects.add(pathEntry.getProject()); - } - - return referencedProjects; - } - - protected void loadLoadPathEntries() { - loadPathEntries = new ArrayList(); - - IFile loadPathsFile = getLoadPathEntriesFile(); - - XMLReader reader = null; - try { - reader = SAXParserFactory.newInstance().newSAXParser().getXMLReader(); - reader.setContentHandler(getLoadPathEntriesContentHandler()); - reader.parse(new InputSource(loadPathsFile.getContents())); - } catch (Exception e) { - //the file is nonextant or unreadable - } - } - - protected ContentHandler getLoadPathEntriesContentHandler() { - return new ContentHandler() { - public void characters(char[] arg0, int arg1, int arg2) throws SAXException {} - - public void endDocument() throws SAXException {} - - public void endElement(String arg0, String arg1, String arg2) throws SAXException {} - - public void endPrefixMapping(String arg0) throws SAXException {} - - public void ignorableWhitespace(char[] arg0, int arg1, int arg2) throws SAXException {} - - public void processingInstruction(String arg0, String arg1) throws SAXException {} - - public void setDocumentLocator(Locator arg0) {} - - public void skippedEntity(String arg0) throws SAXException {} - - public void startDocument() throws SAXException {} - - public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException { - if ("pathentry".equals(qName)) - if ("project".equals(atts.getValue("type"))) { - IPath referencedProjectPath = new Path(atts.getValue("path")); - IProject referencedProject = getProject(referencedProjectPath.lastSegment()); - loadPathEntries.add(new LoadPathEntry(referencedProject)); - } - } - - public void startPrefixMapping(String arg0, String arg1) throws SAXException {} - }; - } - - protected IFile getLoadPathEntriesFile() { - return fProject.getFile(".loadpath"); - } - - public void save() throws CoreException { - if (scratched) { - InputStream xmlPath = new ByteArrayInputStream(getLoadPathXML().getBytes()); - IFile loadPathsFile = getLoadPathEntriesFile(); - if (!loadPathsFile.exists()) - loadPathsFile.create(xmlPath, true, null); - else - loadPathsFile.setContents(xmlPath, true, false, null); - - scratched = false; - } - } - - protected String getLoadPathXML() { - StringBuffer buffer = new StringBuffer(); - buffer.append(""); - - Iterator pathEntriesIterator = loadPathEntries.iterator(); - - while (pathEntriesIterator.hasNext()) { - LoadPathEntry entry = (LoadPathEntry) pathEntriesIterator.next(); - buffer.append(entry.toXML()); - } - - buffer.append(""); - return buffer.toString(); - } - - public IResource getUnderlyingResource() { - return fProject; - } - -}