|
What this is
Other links
The source code/* * Sun Public License Notice * * The contents of this file are subject to the Sun Public License * Version 1.0 (the "License"). You may not use this file except in * compliance with the License. A copy of the License is available at * http://www.sun.com/ * * The Original Code is NetBeans. The Initial Developer of the Original * Code is Sun Microsystems, Inc. Portions Copyright 1997-2004 Sun * Microsystems, Inc. All Rights Reserved. */ package org.netbeans.modules.project.ui.actions; import java.awt.Image; import java.beans.PropertyChangeListener; import java.beans.PropertyVetoException; import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.URL; import java.util.Map; import java.util.StringTokenizer; import java.util.WeakHashMap; import junit.framework.Assert; import org.netbeans.api.project.Project; import org.netbeans.junit.NbTestCase; import org.netbeans.spi.project.ProjectFactory; import org.netbeans.spi.project.ProjectState; import org.openide.filesystems.FileLock; import org.openide.filesystems.FileObject; import org.openide.filesystems.FileUtil; import org.openide.filesystems.LocalFileSystem; import org.openide.filesystems.Repository; import org.openide.util.Lookup; import org.openide.util.lookup.Lookups; import org.openide.util.lookup.ProxyLookup; /** * Help set up org.netbeans.api.project.*Test. * @author Jesse Glick */ public final class TestSupport { public static FileObject createTestProject( FileObject workDir, String name ) throws IOException { FileObject p = workDir.createFolder( name ); p.createFolder( "testproject" ); return p; } /** * Create a testing project factory which recognizes directories containing * a subdirectory called "testproject". * If that subdirectory contains a file named "broken" then loading the project * will fail with an IOException. */ public static ProjectFactory testProjectFactory() { return new TestProjectFactory(); } private static final class TestProjectFactory implements ProjectFactory { TestProjectFactory() {} public Project loadProject(FileObject projectDirectory, ProjectState state) throws IOException { FileObject testproject = projectDirectory.getFileObject("testproject"); if (testproject != null && testproject.isFolder()) { return new TestProject(projectDirectory, state); } else { return null; } } public void saveProject(Project project) throws IOException, ClassCastException { TestProject p = (TestProject)project; Throwable t = p.error; if (t != null) { p.error = null; if (t instanceof IOException) { throw (IOException)t; } else if (t instanceof Error) { throw (Error)t; } else { throw (RuntimeException)t; } } } public boolean isProject(FileObject dir) { FileObject testproject = dir.getFileObject("testproject"); return testproject != null && testproject.isFolder(); } } public static final class TestProject implements Project { private Lookup lookup; private final FileObject dir; final ProjectState state; Throwable error; int saveCount = 0; public TestProject(FileObject dir, ProjectState state) { this.dir = dir; this.state = state; } public void setLookup( Lookup lookup ) { this.lookup = lookup; } public Lookup getLookup() { if ( lookup == null ) { return Lookup.EMPTY; } else { return lookup; } } public FileObject getProjectDirectory() { return dir; } public String toString() { return "testproject:" + getProjectDirectory().getNameExt(); } } public static class ChangeableLookup extends ProxyLookup { public ChangeableLookup( Object[] objects ) { super( new Lookup[] { Lookups.fixed( objects ) } ); } public void change( Object[] objects ) { setLookups( new Lookup[] { Lookups.fixed( objects ) } ); } } } |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.