package com.rectang.xsm.wicket;
import org.apache.wicket.model.Model;
import org.apache.wicket.Session;
import java.io.*;
import org.headsupdev.support.java.IOUtil;
/**
* A wicket model that uses a file as the store.
*
* @author Andrew Williams
* @version $Id: StringFileModel.java 674 2007-10-09 15:22:19Z aje $
* @since 1.0
*/
public class StringFileModel
extends Model
{
private File backing;
public StringFileModel( File backing )
{
this.backing = backing;
}
public void setObject( Serializable object )
{
String content = (String) object;
BufferedWriter writer = null;
try
{
writer = new BufferedWriter( new FileWriter( backing ) );
writer.write( content );
}
catch ( IOException e )
{
Session.get().error( e.getMessage() );
}
finally
{
IOUtil.close( writer );
}
}
public String getObject()
{
StringBuffer content = new StringBuffer();
BufferedReader reader = null;
try
{
reader = new BufferedReader( new FileReader( backing ) );
String line = reader.readLine();
while ( line != null )
{
content.append( line );
content.append( '\n' );
line = reader.readLine();
}
}
catch ( IOException e )
{
Session.get().error( e.getMessage() );
}
finally
{
IOUtil.close( reader );
}
return content.toString();
}
}