2015-05-28 13:19:25 +02:00
|
|
|
/**
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
package org.gcube.accounting.persistence;
|
|
|
|
|
|
|
|
import java.io.BufferedWriter;
|
|
|
|
import java.io.File;
|
|
|
|
import java.io.FileWriter;
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.io.PrintWriter;
|
|
|
|
|
2015-07-06 15:33:54 +02:00
|
|
|
import org.gcube.accounting.aggregation.scheduler.AggregationScheduler;
|
2015-05-28 13:19:25 +02:00
|
|
|
import org.gcube.accounting.datamodel.UsageRecord;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @author Luca Frosini (ISTI - CNR) http://www.lucafrosini.com/
|
|
|
|
*/
|
|
|
|
public class FallbackPersistence extends Persistence {
|
|
|
|
|
|
|
|
private File accountingFallbackFile;
|
|
|
|
|
|
|
|
protected FallbackPersistence(File accountingFallbackFile) {
|
2015-07-06 15:33:54 +02:00
|
|
|
super(null, AggregationScheduler.getInstance());
|
2015-05-28 13:19:25 +02:00
|
|
|
this.accountingFallbackFile = accountingFallbackFile;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
2015-07-03 11:02:43 +02:00
|
|
|
public void prepareConnection(PersistenceConfiguration configuration) {
|
2015-05-28 13:19:25 +02:00
|
|
|
// Nothing TO DO
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
protected void reallyAccount(UsageRecord usageRecord) throws Exception {
|
|
|
|
try(FileWriter fw = new FileWriter(accountingFallbackFile, true);
|
|
|
|
BufferedWriter bw = new BufferedWriter(fw);
|
|
|
|
PrintWriter out = new PrintWriter(bw)){
|
|
|
|
out.println(usageRecord);
|
|
|
|
} catch( IOException e ){
|
|
|
|
throw e;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* {@inheritDoc}
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
public void close() throws Exception {
|
|
|
|
// Nothing TO DO
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|