KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > server > datasystem > persistentsystem > PowerFileFactory


1 package com.daffodilwoods.daffodildb.server.datasystem.persistentsystem;
2
3 import java.io.*;
4
5 import com.daffodilwoods.daffodildb.server.datasystem.persistentsystem.versioninfo.*;
6 import com.daffodilwoods.database.resource.*;
7
8 public class PowerFileFactory extends PowerFileFactoryUpto3_2{
9
10   public PowerFileFactory(String JavaDoc databaseUrl1){
11     super(databaseUrl1);
12   }
13   /**
14    * It returns power file for the database.
15    * Firstly we try to get from free powerFiles if we doesn't found than we makes a new one.
16    *
17    * @param clusterSize int - cluster size of the database.
18    * @param isReadOnlyMode boolean
19    * @throws DException
20    * @return RandomAccessFile - power file to be returned.
21    */

22   public synchronized RandomAccessFile getFile(int clusterSize,boolean isReadOnlyMode)throws DException{
23         if(freePowerfileList.size() > 0){
24             RandomAccessFile raf = (RandomAccessFile)freePowerfileList.remove(freePowerfileList.size()-1);
25             return raf;
26         }
27         try{
28             File ff = new File(databaseURL);
29             File ff1 = ff.getParentFile();
30             ff = new File(ff1,"_" + name +"_PowerFile.log");
31              RandomAccessFile powerFile = null;
32               powerFile = new RandomAccessFile(ff, "rw");
33               powerFile.seek(0);
34               powerFile.writeByte(1) ;
35               powerFile.setLength(clusterSize * 5 + 1024);
36             list.add(powerFile);
37             name++;
38             return powerFile;
39         }catch(Exception JavaDoc fnfe) {
40             fnfe.printStackTrace();
41             throw new DException("DSE2025",new Object JavaDoc[] {fnfe.getMessage()});
42         }
43     }
44
45
46 }
47
Popular Tags