001
014
015 package com.liferay.util.xml;
016
017 import java.io.File;
018
019 import org.apache.tools.ant.BuildException;
020 import org.apache.tools.ant.Task;
021
022
025 public class XMLMergerTask extends Task {
026
027 public void setMasterFile(File masterFile) {
028 _masterFile = masterFile;
029 }
030
031 public void setOutputFile(File outputFile) {
032 _outputFile = outputFile;
033 }
034
035 public void setSlaveFile(File slaveFile) {
036 _slaveFile = slaveFile;
037 }
038
039 public void setType(String type) {
040 _type = type;
041 }
042
043 @Override
044 public void execute() throws BuildException {
045 _validateAttributes();
046
047 try {
048 XMLMergerRunner runner = new XMLMergerRunner(_type);
049
050 runner.mergeAndSave(_masterFile, _slaveFile, _outputFile);
051 }
052 catch (Exception e) {
053 throw new BuildException(e);
054 }
055 }
056
057 private void _validateAttributes() {
058 _validateMandatoryAttribute(_masterFile, "masterFile");
059 _validateMandatoryAttribute(_slaveFile, "slaveFile");
060 _validateMandatoryAttribute(_outputFile, "outputFile");
061 }
062
063 private void _validateMandatoryAttribute(File value, String name) {
064 if (value == null) {
065 throw new BuildException(name + " is a required attribute");
066 }
067 }
068
069 private File _masterFile;
070 private File _slaveFile;
071 private File _outputFile;
072 private String _type;
073
074 }