/*
*
* SchemaCrawler
* http://sourceforge.net/projects/schemacrawler
* Copyright (c) 2000-2009, Sualeh Fatehi.
*
* This library is free software; you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Foundation;
* either version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with this
* library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, MA 02111-1307, USA.
*
*/
package sf.util;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* Utility methods.
*
* @author Sualeh Fatehi
*/
public final class Utilities
{
private static final Logger LOGGER = Logger.getLogger(Utilities.class
.getName());
public static File changeFileExtension(final File file, final String ext)
{
final String oldExt = getFileExtension(file);
final String oldFileName = file.getName();
final String newFileName = oldFileName.substring(0, (oldFileName
.lastIndexOf(oldExt) - 1))
+ ext;
return new File(file.getParentFile(), newFileName);
}
public static String getFileExtension(final File file)
{
final String ext;
if (file != null)
{
final String scriptFileName = file.getName();
ext = scriptFileName.lastIndexOf(".") == -1
? ""
: scriptFileName
.substring(scriptFileName
.lastIndexOf(".") + 1,
scriptFileName
.length());
}
else
{
ext = "";
}
return ext;
}
/**
* Checks if the text is null or empty.
*
* @param text
* Text to check.
* @return Whether the string is blank.
*/
public static boolean isBlank(final String text)
{
return text == null || text.trim().length() == 0;
}
/**
* Reads the stream fully, and returns a byte array of data.
*
* @param stream
* Stream to read.
* @return Byte array
*/
public static byte[] readFully(final InputStream stream)
{
if (stream == null)
{
LOGGER.log(Level.WARNING,
"Cannot read null input stream",
new IOException("Cannot read null input stream"));
return new byte[0];
}
final int bufferSize = 2048;
final ByteArrayOutputStream output = new ByteArrayOutputStream();
final BufferedInputStream input = new BufferedInputStream(stream);
byte[] byteCode = new byte[0];
try
{
int length;
final byte[] copyBuffer = new byte[bufferSize];
while (-1 != (length = input.read(copyBuffer)))
{
output.write(copyBuffer, 0, length);
}
output.flush();
byteCode = output.toByteArray();
}
catch (final IOException e)
{
LOGGER.log(Level.WARNING, "Error reading input stream", e);
}
finally
{
try
{
output.close();
input.close();
}
catch (final IOException e)
{
LOGGER.log(Level.WARNING, "Error closing stream", e);
}
}
return byteCode;
}
/**
* Confound instantiation.
*/
private Utilities()
{
// intentionally left blank
}
}