Subversion Repositories mkgmap

Rev

Rev 2197 | Blame | Compare with Previous | Last modification | View Log | RSS feed

 /*
 * Copyright (C) 2009 Christian Gawron
 *
 *  This program is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License version 2 as
 *  published by the Free Software Foundation.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *
 * Author: Christian Gawron
 * Create date: 19-Jun-2009
 */

 package uk.me.parabola.mkgmap.ant;

 import java.util.ArrayList;
 import java.util.List;

 import uk.me.parabola.mkgmap.CommandArgsReader;
 import uk.me.parabola.mkgmap.main.Main;

 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.Task;
 import org.apache.tools.ant.types.Path;

/**
 * This class provides an ant task for mkgmap.
 * Used like this:
 *  <target name="mkgmap">
     <taskdef name="mkgmap" classname="uk.me.parabola.mkgmap.ant.MKGMapTask"
             classpath="dist/mkgmap.jar:."/>
      <mkgmap options="mkgmap.cfg">
       <path>
        <fileset dir="maps" includes="*.osm" />
       </path>
      </mkgmap>
     </target>
 *
 */

@SuppressWarnings({"UnusedDeclaration"})
public class MKGMapTask extends Task {

        private final ArrayList<Path> paths = new ArrayList<Path>();
        private String configFile;

        public void addPath(Path path) {
                paths.add(path);
        }

        public void setOptions(String configFile) {
                this.configFile = configFile;
        }

        public void execute() {
                List<String> args = new ArrayList<String>();

                try {
                        CommandArgsReader argsReader = new CommandArgsReader(new Main());

                        if (configFile != null)
                                args.add("--read-config=" + configFile);

                        for (Path path : paths) {
                                String[] includedFiles = path.list();
                                for (String filename : includedFiles) {
                                        log("processing " + filename);
                                        args.add("--input-file=" + filename);
                                }
                        }

                        argsReader.readArgs(args.toArray(new String[args.size()]));
                } catch (Exception ex) {
                        //log(ex, 1);
                        throw new BuildException(ex);
                }
        }
}