Delete unopened database check in close method.
This commit is contained in:
parent
a17ca91389
commit
40e49a3bbb
1 changed files with 95 additions and 99 deletions
|
@ -115,13 +115,9 @@ public class FileTreeSikevaDB implements SikevaDB
|
||||||
* @see fr.devinsy.sikevadb.core.SikevaDB#close()
|
* @see fr.devinsy.sikevadb.core.SikevaDB#close()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void close() throws UnopenedDatabaseException
|
public void close()
|
||||||
{
|
{
|
||||||
if (this.status == Status.CLOSED)
|
if (this.status != Status.CLOSED)
|
||||||
{
|
|
||||||
throw new UnopenedDatabaseException();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
this.journalizer = null;
|
this.journalizer = null;
|
||||||
|
|
||||||
|
@ -271,6 +267,99 @@ public class FileTreeSikevaDB implements SikevaDB
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see fr.devinsy.sikevadb.core.SikevaDB#remove(java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void delete(final String key) throws SikevaDBException
|
||||||
|
{
|
||||||
|
if (this.status == Status.CLOSED)
|
||||||
|
{
|
||||||
|
throw new UnopenedDatabaseException();
|
||||||
|
}
|
||||||
|
else if (key == null)
|
||||||
|
{
|
||||||
|
throw new IllegalArgumentException("Null key detected.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
File targetFile = new File(this.dataDirectory, key);
|
||||||
|
|
||||||
|
if (targetFile.isFile())
|
||||||
|
{
|
||||||
|
boolean result = targetFile.delete();
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
throw new SikevaDBException("Error removing [" + targetFile.getAbsolutePath() + "]");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new SikevaDBException("Invalid target to remove [" + targetFile.getAbsolutePath() + "]");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see fr.devinsy.sikevadb.core.SikevaDB#remove(java.lang.String, java.lang.String)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void delete(final String key, final String subkey) throws SikevaDBException
|
||||||
|
{
|
||||||
|
if (this.status == Status.CLOSED)
|
||||||
|
{
|
||||||
|
throw new UnopenedDatabaseException();
|
||||||
|
}
|
||||||
|
else if ((key == null) || (subkey == null))
|
||||||
|
{
|
||||||
|
throw new IllegalArgumentException("Null key detected [key=" + key + "][subkey=" + subkey + "].");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
File targetDirectory = new File(this.dataDirectory, key);
|
||||||
|
File targetFile = new File(targetDirectory, subkey);
|
||||||
|
|
||||||
|
if (targetFile.isFile())
|
||||||
|
{
|
||||||
|
boolean result = targetFile.delete();
|
||||||
|
if (!result)
|
||||||
|
{
|
||||||
|
throw new SikevaDBException("Error removing [" + targetFile.getAbsolutePath() + "]");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw new SikevaDBException("Invalid target to remove [" + targetFile.getAbsolutePath() + "]");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see fr.devinsy.sikevadb.core.SikevaDB#removeMany(java.lang.String, java.lang.String[])
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void deleteMany(final String key, final String... subkeys) throws SikevaDBException
|
||||||
|
{
|
||||||
|
if (this.status == Status.CLOSED)
|
||||||
|
{
|
||||||
|
throw new UnopenedDatabaseException();
|
||||||
|
}
|
||||||
|
else if (key == null)
|
||||||
|
{
|
||||||
|
throw new IllegalArgumentException("Null key detected.");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if ((subkeys != null) && (subkeys.length > 0))
|
||||||
|
{
|
||||||
|
for (String subkey : subkeys)
|
||||||
|
{
|
||||||
|
delete(key, subkey);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the config directory.
|
* Gets the config directory.
|
||||||
*
|
*
|
||||||
|
@ -1001,99 +1090,6 @@ public class FileTreeSikevaDB implements SikevaDB
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see fr.devinsy.sikevadb.core.SikevaDB#remove(java.lang.String)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void delete(final String key) throws SikevaDBException
|
|
||||||
{
|
|
||||||
if (this.status == Status.CLOSED)
|
|
||||||
{
|
|
||||||
throw new UnopenedDatabaseException();
|
|
||||||
}
|
|
||||||
else if (key == null)
|
|
||||||
{
|
|
||||||
throw new IllegalArgumentException("Null key detected.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
File targetFile = new File(this.dataDirectory, key);
|
|
||||||
|
|
||||||
if (targetFile.isFile())
|
|
||||||
{
|
|
||||||
boolean result = targetFile.delete();
|
|
||||||
if (!result)
|
|
||||||
{
|
|
||||||
throw new SikevaDBException("Error removing [" + targetFile.getAbsolutePath() + "]");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw new SikevaDBException("Invalid target to remove [" + targetFile.getAbsolutePath() + "]");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see fr.devinsy.sikevadb.core.SikevaDB#remove(java.lang.String, java.lang.String)
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void delete(final String key, final String subkey) throws SikevaDBException
|
|
||||||
{
|
|
||||||
if (this.status == Status.CLOSED)
|
|
||||||
{
|
|
||||||
throw new UnopenedDatabaseException();
|
|
||||||
}
|
|
||||||
else if ((key == null) || (subkey == null))
|
|
||||||
{
|
|
||||||
throw new IllegalArgumentException("Null key detected [key=" + key + "][subkey=" + subkey + "].");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
File targetDirectory = new File(this.dataDirectory, key);
|
|
||||||
File targetFile = new File(targetDirectory, subkey);
|
|
||||||
|
|
||||||
if (targetFile.isFile())
|
|
||||||
{
|
|
||||||
boolean result = targetFile.delete();
|
|
||||||
if (!result)
|
|
||||||
{
|
|
||||||
throw new SikevaDBException("Error removing [" + targetFile.getAbsolutePath() + "]");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
throw new SikevaDBException("Invalid target to remove [" + targetFile.getAbsolutePath() + "]");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
|
||||||
* @see fr.devinsy.sikevadb.core.SikevaDB#removeMany(java.lang.String, java.lang.String[])
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public void deleteMany(final String key, final String... subkeys) throws SikevaDBException
|
|
||||||
{
|
|
||||||
if (this.status == Status.CLOSED)
|
|
||||||
{
|
|
||||||
throw new UnopenedDatabaseException();
|
|
||||||
}
|
|
||||||
else if (key == null)
|
|
||||||
{
|
|
||||||
throw new IllegalArgumentException("Null key detected.");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if ((subkeys != null) && (subkeys.length > 0))
|
|
||||||
{
|
|
||||||
for (String subkey : subkeys)
|
|
||||||
{
|
|
||||||
delete(key, subkey);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see fr.devinsy.sikevadb.core.SikevaDB#renameKey(java.lang.String, java.lang.String)
|
* @see fr.devinsy.sikevadb.core.SikevaDB#renameKey(java.lang.String, java.lang.String)
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in a new issue