+
+
+
+ SPI for Additions to System File System
--- a/openide.filesystems/manifest.mf
+++ a/openide.filesystems/manifest.mf
@@ -2,5 +2,5 @@
OpenIDE-Module: org.openide.filesystems
OpenIDE-Module-Localizing-Bundle: org/openide/filesystems/Bundle.properties
OpenIDE-Module-Layer: org/openide/filesystems/resources/layer.xml
-OpenIDE-Module-Specification-Version: 7.59
+OpenIDE-Module-Specification-Version: 7.60
--- a/openide.filesystems/src/org/openide/filesystems/FileSystem.java
+++ a/openide.filesystems/src/org/openide/filesystems/FileSystem.java
@@ -442,6 +442,29 @@
*/
public abstract FileObject findResource(String name);
+ /** Returns temporary folder if it is avaliable on this file system.
+ * Method never returns null. IOException is thrown instead.
+ * @return a file object for temporary folder
+ * @throws IOException
+ * @since 7.60
+ */
+ public FileObject getTempFolder() throws IOException {
+ throw new IOException("Unsupported operation"); // NOI18N
+ }
+
+ /** Creates temporary file in the given parent folder.
+ * Method never returns null. IOException is thrown instead.
+ * @param parent the parent folder where temporary file will be created
+ * @param prefix prefix of the name of created file
+ * @param suffix suffix of the name of created file
+ * @return new temporary file
+ * @throws IOException
+ * @since 7.60
+ */
+ public FileObject createTempFile(FileObject parent, String prefix, String suffix) throws IOException {
+ throw new IOException("Unsupported operation"); // NOI18N
+ }
+
/** Returns an array of actions that can be invoked on any file in
* this filesystem.
* These actions should preferably
--- a/openide.filesystems/test/unit/src/org/openide/filesystems/TempFileObjectTestHid.java
+++ a/openide.filesystems/test/unit/src/org/openide/filesystems/TempFileObjectTestHid.java
@@ -0,0 +1,85 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright 2012 Oracle and/or its affiliates. All rights reserved.
+ *
+ * Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+ * Other names may be trademarks of their respective owners.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common
+ * Development and Distribution License("CDDL") (collectively, the
+ * "License"). You may not use this file except in compliance with the
+ * License. You can obtain a copy of the License at
+ * http://www.netbeans.org/cddl-gplv2.html
+ * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+ * specific language governing permissions and limitations under the
+ * License. When distributing the software, include this License Header
+ * Notice in each file and include the License file at
+ * nbbuild/licenses/CDDL-GPL-2-CP. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the GPL Version 2 section of the License file that
+ * accompanied this code. If applicable, add the following below the
+ * License Header, with the fields enclosed by brackets [] replaced by
+ * your own identifying information:
+ * "Portions Copyrighted [year] [name of copyright owner]"
+ *
+ * If you wish your version of this file to be governed by only the CDDL
+ * or only the GPL Version 2, indicate your decision by adding
+ * "[Contributor] elects to include this software in this distribution
+ * under the [CDDL or GPL Version 2] license." If you do not indicate a
+ * single choice of license, a recipient has the option to distribute
+ * your version of this file under either the CDDL, the GPL Version 2 or
+ * to extend the choice of license to its licensees as provided above.
+ * However, if you add GPL Version 2 code and therefore, elected the GPL
+ * Version 2 license, then the option applies only if the new code is
+ * made subject to such option by the copyright holder.
+ *
+ * Contributor(s):
+ *
+ * Portions Copyrighted 2012 Sun Microsystems, Inc.
+ */
+package org.openide.filesystems;
+
+/**
+ *
+ * @author Alexander Simon
+ */
+public class TempFileObjectTestHid extends TestBaseHid {
+ private FileObject root;
+
+ public TempFileObjectTestHid(String name) {
+ super(name);
+ }
+
+ @Override
+ protected void setUp() throws Exception {
+ super.setUp();
+ root = testedFS.findResource(getResourcePrefix());
+ }
+
+ @Override
+ protected String[] getResources(String testName) {
+ return new String[] {};
+ }
+
+ public void testTempDir() throws Exception {
+ FileObject tempFolder = root.getFileSystem().getTempFolder();
+ assertNotNull(tempFolder);
+ assertTrue(tempFolder.isValid());
+ assertTrue(tempFolder.isFolder());
+ assertEquals(tempFolder.getFileSystem(), root.getFileSystem());
+ }
+
+ public void testTempFile() throws Exception {
+ FileObject tempFolder = root.getFileSystem().getTempFolder();
+ FileObject tempFile = root.getFileSystem().createTempFile(tempFolder, "out", ".tmp");
+ assertNotNull(tempFile);
+ assertTrue(tempFile.isValid());
+ assertTrue(tempFile.isData());
+ assertEquals(tempFile.getParent(), tempFolder);
+ assertEquals(tempFolder.getFileSystem(), tempFile.getFileSystem());
+ assertTrue(tempFile.getNameExt().startsWith("out"));
+ assertTrue(tempFile.getNameExt().endsWith(".tmp"));
+ }
+}