Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (c) 2014 Leibniz Institute of Plant Genetics and Crop Plant Research (IPK), Gatersleben, Germany.
   * All rights reserved. This program and the accompanying materials
   * are made available under the terms of the Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND 4.0)
   * which accompanies this distribution, and is available at http://creativecommons.org/licenses/by-nd/4.0/
   *
   * Contributors:
   *      Leibniz Institute of Plant Genetics and Crop Plant Research (IPK), Gatersleben, Germany - RMI Client, FileChooser and WebDAV
   */
 /*
 
  Copyright 2011 North Concepts Inc.
 
  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 de.ipk_gatersleben.bit.bi.edal.webdav.wrapper;
 
 
 
 
 
 
 public class EdalResourceFactory implements ResourceFactory {
 
 	public EdalResourceFactory() {
 
 	}
 
 	public io.milton.resource.Resource getResource(String hostString strPath)
 		Path path = Path.path(strPath);
 		FileSystemHandler fileSystemHandler = null;
 		if (HttpManager.request().getAuthorization() != null) {
 			String username = HttpManager.request().getAuthorization()
 					.getUser();
 			if (username != null) {
 				fileSystemHandler = FileSystemCache.get(username);
 			}
 		}
 
 		try {
 			if (path.isRoot()) {
 				return new PrimaryDataDirectoryResource("/"fileSystemHandler);
 			} else {
 				if (fileSystemHandler == null) {
 					return null;
 				}
 				String file = path.toString();
 
 				int index = file
 				if (index >= 0) {
 					String realpath = file.substring(0, index)
 							+ file.substring(index
 											.length());
 
 					int ipos = realpath.indexOf("/"
 					while (ipos >= 0) {
 						realpath = realpath.substring(0, ipos + 1)
 								+ realpath.substring(ipos
 										+ 1
 												.length());
 						ipos = realpath.indexOf("/"
					}
					ipos = realpath.indexOf("/"
					while (ipos >= 0) {
						realpath = realpath.substring(0, ipos + 1)
realpath.substring(ipos
										+ 1
												.length());
						ipos = realpath.indexOf("/"
					}
					// filter virtual files
					Pattern virtual = Pattern
							.compile("(.*)\\.v[0-9]+\\.?[^\\.]*\\.(properties?\\.?xml|.*)$");
					Matcher vm = virtual.matcher(realpath);
					if (vm.matches()) {
						Pattern property = Pattern
								.compile(".*\\.v[0-9]+\\.?[^\\.]*\\.properties\\.xml$");
						Matcher pm = property.matcher(realpath);
						if (!pm.matches()) {
									vm.group(1) + "." + vm.group(2),
									fileSystemHandler).child(realpath);
else {
									realpathfileSystemHandler);
							return virtualxmlresouce;
						}
else {
								realpathfileSystemHandler);
						if (entr.exists()) {
							if (entr.isDirectory()) {
										fileSystemHandler);
else {
										fileSystemHandler);
							}
						}
					}
else {
					Pattern property = Pattern
							.compile(".*\\.v[0-9]+\\.?[^\\.]*\\.properties\\.xml$");
					Matcher pm = property.matcher(file);
					if (!pm.matches()) {
								filefileSystemHandler);
						/*
						 * win7 looks for non existing files e.g.
						 * 'desktop.ini','folder.gif','folder.jpg'
						 */
						if (entr.exists()) {
							if (entr.isDirectory()) {
								if (entr.getEntity() == null) {
									return null;
								}
										fileSystemHandler);
else {
								if (entr.getEntity() == null) {
									return null;
								}
								return new PrimaryDataFileResource(entr
										fileSystemHandler);
							}
						}
else {
								filefileSystemHandler);
						return virtualxmlresouce;
					}
				}
			}
catch (NotBoundException e) {
			..error("Failed handling request for file: "
strPath + "\nReason: " + e.toString());
catch (RemoteException e) {
			..error("Failed handling request for file: "
strPath + "\nReason: " + e.toString());
			..error("Failed handling request for file: "
strPath + "\nReason: " + e.toString());
catch (EdalAuthenticateException e) {
			..error("Failed handling request for file: "
strPath + "\nReason: " + e.toString());
			throw new NotAuthorizedException("don't support this operation!",
					null);
catch (JAXBException e) {
			..error("Failed handling request for file: "
strPath + "\nReason: " + e.toString());
			..error("Failed handling request for file: "
strPath + "\nReason: " + e.toString());
catch (MetaDataException e) {
			..error("Failed handling request for file: "
strPath + "\nReason: " + e.toString());
		}
		return null;
	}
New to GrepCode? Check out our FAQ X