1   /**
2    * Copyright (c) 2000-2009 Liferay, Inc. All rights reserved.
3    *
4    *
5    *
6    *
7    * The contents of this file are subject to the terms of the Liferay Enterprise
8    * Subscription License ("License"). You may not use this file except in
9    * compliance with the License. You can obtain a copy of the License by
10   * contacting Liferay, Inc. See the License for the specific language governing
11   * permissions and limitations under the License, including but not limited to
12   * distribution rights of the Software.
13   *
14   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20   * SOFTWARE.
21   */
22  
23  package com.liferay.util.xml;
24  
25  import java.io.File;
26  
27  import org.apache.tools.ant.BuildException;
28  import org.apache.tools.ant.Task;
29  
30  /**
31   * <a href="XMLMergerTask.java.html"><b><i>View Source</i></b></a>
32   *
33   * @author Jorge Ferrer
34   */
35  public class XMLMergerTask extends Task {
36  
37      public void setMasterFile(File masterFile) {
38          _masterFile = masterFile;
39      }
40  
41      public void setOutputFile(File outputFile) {
42          _outputFile = outputFile;
43      }
44  
45      public void setSlaveFile(File slaveFile) {
46          _slaveFile = slaveFile;
47      }
48  
49      public void setType(String type) {
50          _type = type;
51      }
52  
53      public void execute() throws BuildException {
54          _validateAttributes();
55  
56          try {
57              XMLMergerRunner runner = new XMLMergerRunner(_type);
58  
59              runner.mergeAndSave(_masterFile, _slaveFile, _outputFile);
60          }
61          catch (Exception e) {
62              throw new BuildException(e);
63          }
64      }
65  
66      private void _validateAttributes() {
67          _validateMandatoryAttribute(_masterFile, "masterFile");
68          _validateMandatoryAttribute(_slaveFile, "slaveFile");
69          _validateMandatoryAttribute(_outputFile, "outputFile");
70      }
71  
72      private void _validateMandatoryAttribute(File value, String name) {
73          if (value == null) {
74              throw new BuildException(name + " is a required attribute");
75          }
76      }
77  
78      private File _masterFile;
79      private File _slaveFile;
80      private File _outputFile;
81      private String _type;
82  
83  }