1 package com.daffodilwoods.daffodildb.server.datasystem.persistentsystem.versioninfo; 2 3 import java.util.*; 4 import java.io.RandomAccessFile ; 5 import java.io.File ; 6 import com.daffodilwoods.database.resource.DException; 7 public class PowerFileFactoryUpto3_2{ 8 9 12 protected ArrayList freePowerfileList; 13 14 17 protected String databaseURL; 18 21 protected int name ; 22 25 protected ArrayList list; 26 27 public PowerFileFactoryUpto3_2(String databaseUrl1){ 28 list = new ArrayList(); 29 freePowerfileList = new ArrayList(); 30 databaseURL = databaseUrl1; 31 name = 0; 32 } 33 43 44 public synchronized RandomAccessFile getFile(int clusterSize,boolean isReadOnlyMode)throws DException{ 45 if(freePowerfileList.size() > 0){ 46 RandomAccessFile raf = (RandomAccessFile )freePowerfileList.remove(freePowerfileList.size()-1); 47 return raf; 48 } 49 try{ 50 File ff = new File (databaseURL); 51 File ff1 = ff.getParentFile(); 52 String str = ff.getName(); 53 str = str.substring(0,str.lastIndexOf(".")); 54 55 ff = new File (ff1,str+"_" + name +"_PowerFile.log"); 56 RandomAccessFile powerFile = null; 57 powerFile = new RandomAccessFile (ff, "rw"); 58 powerFile.setLength(clusterSize * 5); 59 list.add(powerFile); 60 name++; 61 return powerFile; 62 }catch(Exception fnfe) { 63 throw new DException("DSE2025",new Object [] {fnfe.getMessage()}); 64 } 65 } 66 70 public synchronized void addInFreePowerFileList(RandomAccessFile file){ 71 freePowerfileList.add(file); 72 } 73 77 public void close()throws DException{ 78 try{ 79 for (int i = 0; i < list.size(); i++) { 80 ((RandomAccessFile )list.get(i)).close() ; 81 } 82 } 83 catch(Exception fnfe) { 84 throw new DException("DSE2025",new Object [] {fnfe.getMessage()}); 85 } 86 } 87 } 88 | Popular Tags |