blob: 9ac74be454239020ce9d0d06ccb5c03392cc84f1 [file] [log] [blame]
/***********************************************************************************************************************
* Copyright (c) 2008 empolis GmbH and brox IT Solutions GmbH. All rights reserved. This program and the accompanying
* materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors: Marius Cimpean (brox IT Solutions GmbH) - initial creator
**********************************************************************************************************************/
package org.eclipse.smila.binarystorage.persistence.io;
import java.io.InputStream;
import org.apache.commons.logging.Log;
import org.eclipse.smila.binarystorage.BinaryStorageException;
import org.eclipse.smila.binarystorage.config.BinaryStorageConfiguration;
import org.eclipse.smila.binarystorage.persistence.BinaryPersistence;
/**
* Basic io manager implementation.
*
* @author mcimpean
*/
public abstract class IOBinaryPersistence extends BinaryPersistence {
/** The logger. */
private final Log _log = org.apache.commons.logging.LogFactory.getLog(IOBinaryPersistence.class);
/**
* Basic constructor.
*
* @param binaryStorageConfig
* @throws BinaryStorageException
*/
public IOBinaryPersistence(final BinaryStorageConfiguration binaryStorageConfig) throws BinaryStorageException {
BssIOUtils.init(binaryStorageConfig);
if (_log.isDebugEnabled()) {
_log.debug("Initializing fyle system manager for binary storage.");
}
}
/**
* {@inheritDoc}
*
* @see org.eclipse.smila.binarystorage.internal.impl.persistence.BinaryPersistence#storeBinary(java.lang.String,
* byte[])
*/
@Override
public void storeBinary(final String key, final byte[] content) throws BinaryStorageException {
BssIOUtils.writeByteArrayToFile(key, content);
}
/**
* {@inheritDoc}
*
* @see org.eclipse.smila.binarystorage.internal.impl.persistence.BinaryPersistence#storeBinary(java.lang.String,
* java.io.InputStream)
*/
@Override
public void storeBinary(final String key, final InputStream stream) throws BinaryStorageException {
BssIOUtils.writeInputStreamToFile(key, stream);
}
/**
* {@inheritDoc}
*
* @see org.eclipse.smila.binarystorage.internal.impl.persistence.BinaryPersistence#loadBinaryAsByteArray(java.lang.String)
*/
@Override
public byte[] loadBinaryAsByteArray(final String key) throws BinaryStorageException {
return BssIOUtils.readFileToByteArray(key);
}
/**
* {@inheritDoc}
*
* @see org.eclipse.smila.binarystorage.internal.impl.persistence.BinaryPersistence#loadBinaryAsInputStream(java.lang.String)
*/
@Override
public InputStream loadBinaryAsInputStream(final String key) throws BinaryStorageException {
return BssIOUtils.readFileToInputStream(key);
}
/**
* {@inheritDoc}
*
* @see org.eclipse.smila.binarystorage.internal.impl.persistence.BinaryPersistence#deleteBinary(java.lang.String)
*/
@Override
public void deleteBinary(final String key) throws BinaryStorageException {
BssIOUtils.deleteFile(key);
}
/**
* {@inheritDoc}
*
* @see org.eclipse.smila.binarystorage.internal.impl.persistence.BinaryPersistence#fetchSize(java.lang.String)
*/
@Override
public long fetchSize(final String key) throws BinaryStorageException {
return BssIOUtils.fetchSize(key);
}
/**
* {@inheritDoc}
*
* @see org.eclipse.smila.binarystorage.internal.impl.persistence.BinaryPersistence#cleanup()
*/
@Override
public void cleanup() throws BinaryStorageException {
// nothing to do
}
}