Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
  */
 package net.sf.webdav;
 
 import java.io.File;
 
 
 import java.util.Date;
 import java.util.List;
Reference Implementation of IWebdavStorage

Author(s):
joa
re
 
 public class LocalFileSystemStorage implements IWebdavStorage {
 
 	private static final String ROOTPATH_PARAMETER = "rootpath";
 
 	private static final String DEBUG_PARAMETER = "storeDebug";
 
 	private static int BUF_SIZE = 50000;
 
 	private static File root = null;
 
 	private static int debug = -1;
 
 	public void begin(Principal principalHashtable parameters)
 			throws Exception {
 		if ( == -1) {
 			String debugString = (Stringparameters.get();
 			if (debugString == null) {
 				 = 0;
 			}else{
 			 = Integer.parseInt(debugString);
 			}
 		}
 		if ( == 1)
 			..println("LocalFileSystemStore.begin()");
 		if ( == null) {
 
 			String rootPath = (Stringparameters.get();
 			if (rootPath == null) {
 				throw new Exception("missing parameter: " + );
 			}
 			 = new File(rootPath);
 			if (!.exists()) {
 				if (!.mkdirs()) {
 					throw new Exception( + ": "
 							+ 
 							+ " does not exist and could not be created");
 				}
 			}
 		}
 	}
 
 	public void checkAuthentication() throws SecurityException {
 		if ( == 1)
 			..println("LocalFileSystemStore.checkAuthentication()");
 		// do nothing
 
 	}
 
 	public void commit() throws IOException {
 		// do nothing
 		if ( == 1)
 			..println("LocalFileSystemStore.commit()");
 	}
 
 	public void rollback() throws IOException {
 		// do nothing
 		if ( == 1)
 			..println("LocalFileSystemStore.rollback()");
 
 	}
	public boolean objectExists(String urithrows IOException {
		File file = new File(uri);
		if ( == 1)
			..println("LocalFileSystemStore.objectExists(" + uri
")=" + file.exists());
		return file.exists();
	}
	public boolean isFolder(String urithrows IOException {
		File file = new File(uri);
		if ( == 1)
			..println("LocalFileSystemStore.isFolder(" + uri + ")="
file.isDirectory());
		return file.isDirectory();
	}
	public boolean isResource(String urithrows IOException {
		File file = new File(uri);
		if ( == 1)
			..println("LocalFileSystemStore.isResource(" + uri + ") "
file.isFile());
		return file.isFile();
	}

Throws:
java.io.IOException if the folder cannot be created
	public void createFolder(String urithrows IOException {
		if ( == 1)
					.println("LocalFileSystemStore.createFolder(" + uri + ")");
		File file = new File(uri);
		if (!file.mkdir())
			throw new IOException("cannot create folder: " + uri);
	}

Throws:
java.io.IOException if the resource cannot be created
	public void createResource(String urithrows IOException {
		if ( == 1)
			..println("LocalFileSystemStore.createResource(" + uri
")");
		File file = new File(uri);
		if (!file.createNewFile())
			throw new IOException("cannot create file: " + uri);
	}

tries to save the given InputStream to the file at path "uri". content type and charachter encoding are ignored
	public void setResourceContent(String uriInputStream is,
			String contentTypeString characterEncodingthrows IOException {
		if ( == 1)
			..println("LocalFileSystemStore.setResourceContent(" + uri
")");
		File file = new File(uri);
		try {
			int read = -1;
			byte[] copyBuffer = new byte[];
			while ((read = is.read(copyBuffer, 0, copyBuffer.length)) != -1) {
				os.write(copyBuffer, 0, read);
			}
finally {
			try {
				is.close();
finally {
				os.close();
			}
		}
	}

Returns:
the lastModified Date
	public Date getLastModified(String urithrows IOException {
		if ( == 1)
			..println("LocalFileSystemStore.getLastModified(" + uri
")");
		File file = new File(uri);
		return new Date(file.lastModified());
	}

Returns:
the lastModified date of the file, java.io.file does not support a creation date
	public Date getCreationDate(String urithrows IOException {
		if ( == 1)
			..println("LocalFileSystemStore.getCreationDate(" + uri
")");
		// TODO return creation date instead of last modified
		File file = new File(uri);
		return new Date(file.lastModified());
	}

Returns:
a (possibly empty) list of children, or null if the uri points to a file
	public String[] getChildrenNames(String urithrows IOException {
		if ( == 1)
			..println("LocalFileSystemStore.getChildrenNames(" + uri
")");
		File file = new File(uri);
		if (file.isDirectory()) {
			File[] children = file.listFiles();
			List childList = new ArrayList();
			for (int i = 0; i < children.lengthi++) {
				String name = children[i].getName();
				childList.add(name);
			}
			String[] childrenNames = new String[childList.size()];
			childrenNames = (String[]) childList.toArray(childrenNames);
			return childrenNames;
else {
			return null;
		}
	}

Returns:
an input stream to the specified resource
		if ( == 1)
			..println("LocalFileSystemStore.getResourceContent(" + uri
")");
		File file = new File(uri);
		return in;
	}

Returns:
the size of the file
	public long getResourceLength(String urithrows IOException {
		if ( == 1)
			..println("LocalFileSystemStore.getResourceLength(" + uri
")");
		File file = new File(uri);
		return file.length();
	}

Throws:
java.io.IOException if the deletion failed
	public void removeObject(String urithrows IOException {
		File file = new File(uri);
		boolean success = file.delete();
		if ( == 1)
			..println("LocalFileSystemStore.removeObject(" + uri
")=" + success);
		if (!success) {
			throw new IOException("cannot delete object: " + uri);
		}
	}
New to GrepCode? Check out our FAQ X