72cbe66eed754504aaabcf3efd145da1332862dd
[vamsas.git] / src / org / vamsas / client / simpleclient / LockFactory.java
1 package org.vamsas.client.simpleclient;
2
3 import org.apache.commons.logging.Log;
4 import org.apache.commons.logging.LogFactory;
5
6 public class LockFactory {
7   protected static Log log = LogFactory.getLog(LockFactory.class);
8   public static int locktype=0; // use file lock by default
9   public static String[] locktypes = {"file","native"};
10   {
11     String lockt = System.getProperty("vamsas.locktype");
12     if (lockt!=null) {
13       int i,j;
14       for (i=0, j=locktypes.length; i<j && locktypes[i].equalsIgnoreCase(lockt); i++)
15         ;
16       if (i>=j) {
17         String lt = "'"+locktypes[0]+"'";
18         for (i=1; i<j; i++)
19           lt += ",'"+locktypes[i]+"'";
20         log.warn("System property vamsas.locktype takes one of "+lt);
21         log.warn("Defaulting to Locktype of "+locktypes[locktype]);
22       }
23     }
24   }
25   
26   public static Lock getLock(java.io.File target) {
27     if (locktype==0)
28       return new FileLock(target);
29     if (locktype==1)
30       return new NativeLock(target);
31     log.fatal("Implementation Error! No valid Locktype value");
32     return null;
33   }
34 }