View Javadoc

1   //========================================================================
2   //Copyright 2006-2007 Sabre Holdings.
3   //------------------------------------------------------------------------
4   //Licensed under the Apache License, Version 2.0 (the "License");
5   //you may not use this file except in compliance with the License.
6   //You may obtain a copy of the License at
7   //http://www.apache.org/licenses/LICENSE-2.0
8   //Unless required by applicable law or agreed to in writing, software
9   //distributed under the License is distributed on an "AS IS" BASIS,
10  //WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11  //See the License for the specific language governing permissions and
12  //limitations under the License.
13  //========================================================================
14  
15  package org.mortbay.jetty.ant.types;
16  
17  import java.util.ArrayList;
18  import java.util.List;
19  
20  import org.apache.tools.ant.taskdefs.Property;
21  import org.mortbay.jetty.ant.utils.TaskLog;
22  
23  /**
24   * Ant <systemProperties/> tag definition.
25   * 
26   * @author Jakub Pawlowicz
27   */
28  public class SystemProperties
29  {
30  
31      private List systemProperties = new ArrayList();
32  
33      public List getSystemProperties()
34      {
35          return systemProperties;
36      }
37  
38      public void addSystemProperty(Property property)
39      {
40          systemProperties.add(property);
41      }
42  
43      /**
44       * Set a System.property with this value if it is not already set.
45       * 
46       * @return
47       */
48      public static boolean setIfNotSetAlready(Property property)
49      {
50          if (System.getProperty(property.getName()) == null)
51          {
52              System.setProperty(property.getName(), (property.getValue() == null ? "" : property
53                      .getValue()));
54              TaskLog.log("Setting property '" + property.getName() + "' to value '"
55                      + property.getValue() + "'");
56              return true;
57          }
58  
59          return false;
60      }
61  }