Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
/**
* Copyright 2010-2012 The Kuali Foundation
*
* Licensed under the Educational Community 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.opensource.org/licenses/ecl2.php
*
* 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 org.kuali.common.util;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.StringReader;
import java.io.Writer;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.IOUtils;
import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
public class LocationUtils {
public static final List getLocations(String location, LocationType type, String encoding) {
switch (type) {
case LOCATION:
return Collections.singletonList(location);
case LOCATIONLIST:
return getLocations(location, encoding);
default:
throw new IllegalArgumentException("Location type '" + type + "' is unknown");
}
}
public static final List getLocations(String location, LocationType type) {
return getLocations(location, type, null);
}
public static final List getLocations(String locationListing) {
return getLocations(Collections.singletonList(locationListing), null);
}
public static final List getLocations(String locationListing, String encoding) {
return getLocations(Collections.singletonList(locationListing), encoding);
}
public static final List getLocations(List locationListings) {
return getLocations(locationListings, null);
}
public static final List getLocations(List locationListings, String encoding) {
List locations = new ArrayList();
for (String locationListing : locationListings) {
List lines = readLines(locationListing, encoding);
locations.addAll(lines);
}
return locations;
}
public static final String getURLString(File file) {
if (file == null) {
return null;
}
try {
URI uri = file.toURI();
URL url = uri.toURL();
return url.toExternalForm();
} catch (MalformedURLException e) {
throw new IllegalArgumentException(e);
}
}
public static final String getCanonicalPath(File file) {
try {
return file.getCanonicalPath();
} catch (IOException e) {
throw new IllegalArgumentException("Unexpected IO error", e);
}
}
/**
* Null safe method to unconditionally attempt to delete filename without throwing an exception. If filename
* is a directory, delete it and all sub-directories.
*/
public static final boolean deleteFileQuietly(String filename) {
File file = getFileQuietly(filename);
return FileUtils.deleteQuietly(file);
}
/**
* Null safe method for getting a File handle from filename. If filename is null, null is
* returned.
*/
public static final File getFileQuietly(String filename) {
if (filename == null) {
return null;
} else {
return new File(filename);
}
}
/**
* Get the contents of location as a String using the platform's default character encoding.
*/
public static final String toString(String location) {
return toString(location, null);
}
/**
* Get the contents of location as a String using the specified character encoding.
*/
public static final String toString(String location, String encoding) {
InputStream in = null;
try {
in = getInputStream(location);
if (encoding == null) {
return IOUtils.toString(in);
} else {
return IOUtils.toString(in, encoding);
}
} catch (IOException e) {
throw new IllegalStateException("Unexpected IO error", e);
} finally {
IOUtils.closeQuietly(in);
}
}
/**
* Get the contents of s as a list of String's one entry per line
*/
public static final List readLinesFromString(String s) {
Reader reader = getBufferedReaderFromString(s);
return readLinesAndClose(reader);
}
public static final List readLinesAndClose(InputStream in) {
return readLinesAndClose(in, null);
}
public static final List readLinesAndClose(InputStream in, String encoding) {
Reader reader = null;
try {
reader = getBufferedReader(in, encoding);
return readLinesAndClose(reader);
} catch (IOException e) {
throw new IllegalStateException("Unexpected IO error", e);
} finally {
IOUtils.closeQuietly(reader);
}
}
public static final List readLinesAndClose(Reader reader) {
try {
return IOUtils.readLines(reader);
} catch (IOException e) {
throw new IllegalStateException("Unexpected IO error", e);
} finally {
IOUtils.closeQuietly(reader);
}
}
/**
* Get the contents of location as a list of String's one entry per line using the platform default encoding
*/
public static final List readLines(String location) {
return readLines(location, null);
}
/**
* Get the contents of location as a list of String's one entry per line using the encoding indicated.
*/
public static final List readLines(String location, String encoding) {
Reader reader = null;
try {
reader = getBufferedReader(location, encoding);
return readLinesAndClose(reader);
} catch (IOException e) {
throw new IllegalStateException("Unexpected IO error", e);
} finally {
IOUtils.closeQuietly(reader);
}
}
/**
* Return a BufferedReader for the location indicated using the platform default encoding.
*/
public static final BufferedReader getBufferedReader(String location) throws IOException {
return getBufferedReader(location, null);
}
/**
* Return a BufferedReader for the location indicated using the encoding indicated.
*/
public static final BufferedReader getBufferedReader(String location, String encoding) throws IOException {
try {
InputStream in = getInputStream(location);
return getBufferedReader(in, encoding);
} catch (IOException e) {
throw new IOException("Unexpected IO error", e);
}
}
/**
* Return a BufferedReader that reads from s
*/
public static final BufferedReader getBufferedReaderFromString(String s) {
return new BufferedReader(new StringReader(s));
}
/**
* Return a Writer that writes to out using the indicated encoding. null means use the platform's
* default encoding.
*/
public static final Writer getWriter(OutputStream out, String encoding) throws IOException {
if (encoding == null) {
return new BufferedWriter(new OutputStreamWriter(out));
} else {
return new BufferedWriter(new OutputStreamWriter(out, encoding));
}
}
/**
* Return a BufferedReader that reads from file using the indicated encoding. null means use the
* platform's default encoding.
*/
public static final BufferedReader getBufferedReader(File file, String encoding) throws IOException {
return getBufferedReader(FileUtils.openInputStream(file), encoding);
}
/**
* Return a BufferedReader that reads from in using the indicated encoding. null means use the
* platform's default encoding.
*/
public static final BufferedReader getBufferedReader(InputStream in, String encoding) throws IOException {
if (encoding == null) {
return new BufferedReader(new InputStreamReader(in));
} else {
return new BufferedReader(new InputStreamReader(in, encoding));
}
}
/**
* Null safe method for determining if location is an existing file.
*/
public static final boolean isExistingFile(String location) {
if (location == null) {
return false;
}
File file = new File(location);
return file.exists();
}
/**
* Null safe method for determining if location exists.
*/
public static final boolean exists(String location) {
if (location == null) {
return false;
}
if (isExistingFile(location)) {
return true;
} else {
Resource resource = getResource(location);
return resource.exists();
}
}
/**
* Open an InputStream to location. If location is the path to an existing File on
* the local file system, a FileInputStream is returned. Otherwise Spring's resource loading framework is used to open an
* InputStream to location.
*/
public static final InputStream getInputStream(String location) throws IOException {
if (isExistingFile(location)) {
return FileUtils.openInputStream(new File(location));
}
Resource resource = getResource(location);
return resource.getInputStream();
}
public static final Resource getResource(String location) {
if (location == null) {
return null;
}
ResourceLoader loader = new DefaultResourceLoader();
return loader.getResource(location);
}
public static final String getFilename(String location) {
if (location == null) {
return null;
}
if (isExistingFile(location)) {
return getFileQuietly(location).getName();
} else {
Resource resource = getResource(location);
return resource.getFilename();
}
}
}