JAL-1432 updated copyright notices
[jalview.git] / src / jalview / util / Platform.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.0b1)
3  * Copyright (C) 2014 The Jalview Authors
4  * 
5  * This file is part of Jalview.
6  * 
7  * Jalview is free software: you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License 
9  * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
10  *  
11  * Jalview is distributed in the hope that it will be useful, but 
12  * WITHOUT ANY WARRANTY; without even the implied warranty 
13  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
14  * PURPOSE.  See the GNU General Public License for more details.
15  * 
16  * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
17  * The Jalview Authors are detailed in the 'AUTHORS' file.
18  */
19 package jalview.util;
20
21 /**
22  * System platform information used by Applet and Application
23  * 
24  * @author Jim Procter
25  */
26 public class Platform
27 {
28   /**
29    * sorry folks - Macs really are different
30    * 
31    * @return true if we do things in a special way.
32    */
33   public boolean isAMac()
34   {
35     return java.lang.System.getProperty("os.name").indexOf("Mac") > -1;
36
37   }
38
39   public boolean isHeadless()
40   {
41     String hdls = java.lang.System.getProperty("java.awt.headless");
42
43     return hdls != null && hdls.equals("true");
44   }
45
46   /**
47    * 
48    * @return nominal maximum command line length for this platform
49    */
50   public static int getMaxCommandLineLength()
51   {
52     // TODO: determine nominal limits for most platforms.
53     return 2046; // this is the max length for a windows NT system.
54   }
55
56   /**
57    * escape a string according to the local platform's escape character
58    * 
59    * @param file
60    * @return escaped file
61    */
62   public static String escapeString(String file)
63   {
64     StringBuffer f = new StringBuffer();
65     int p = 0, lastp = 0;
66     while ((p = file.indexOf('\\', lastp)) > -1)
67     {
68       f.append(file.subSequence(lastp, p));
69       f.append("\\\\");
70       lastp = p + 1;
71     }
72     f.append(file.substring(lastp));
73     return f.toString();
74   }
75 }