import java.io.*; import java.util.Vector; public class LetterTemplateCollection implements CollectionIF { private String dbname; private Vector vTemplates; public LetterTemplateCollection( String filename ) { dbname = filename; vTemplates = new Vector(); } public int getNextID() { if ( vTemplates.isEmpty() ) return 1; return ((LetterTemplate) (vTemplates.lastElement())).getID() + 1; } public void addRecord(Vector v) { System.out.println("inside template add record"); LetterTemplate template = new LetterTemplate(); template.setID( Integer.parseInt( (String) v.elementAt(0)) ); template.setName( (String) v.elementAt(1)); template.setBody( "default body"); vTemplates.addElement( template ); } public void loadRecords() { DataInputStream infile_template = null; LetterTemplate template; try { infile_template = new DataInputStream( new FileInputStream( dbname ) ); } catch ( FileNotFoundException e ) {} while ( true ) { template = new LetterTemplate(); try { template.retrieve( infile_template ); infile_template.readByte(); vTemplates.addElement( template ); } catch ( EOFException eof ) { System.out.println("We have hit end of file!"); break; } catch ( IOException e ){ } } } public void storeRecords() { DataOutputStream outfile_template = null; try { outfile_template = new DataOutputStream( new FileOutputStream( dbname ) ); } catch ( IOException e ) {} for ( int i = 0; i < vTemplates.size(); i++ ) { LetterTemplate template = (LetterTemplate) vTemplates.elementAt( i ); template.persist( outfile_template ); try { outfile_template.writeByte( (byte) '¬' ); } catch ( IOException e ) {} } } public void modifyRecord( Vector v ) { System.out.println("i am in here"); for ( int i = 0; i < vTemplates.size(); i++ ) if ( ( (LetterTemplate) vTemplates.elementAt( i )).equals( v ) ) { ( (LetterTemplate) vTemplates.elementAt( i ) ).update( v ); } } public void deleteRecord( int i ) { vTemplates.removeElementAt( i ); } public PersistentObject getRecord( int i ) { return (PersistentObject) vTemplates.elementAt( i ); } public int size() { return vTemplates.size(); } }