Subversion Repositories splitter

Rev

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

/*
 * Copyright (c) 2009.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 3 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.
 */


package uk.me.parabola.splitter;

public interface MapProcessor {

        /**
         * @return {@code true} if this processor is only interested in
         * {@link #startNode(int, double,double)} events, {@code false}
         * if all events are handled.
         * <p/>
         * If this is set to {@code true}, the caller can significantly
         * cut down on the amount of work it has to do.
         */

        boolean isStartNodeOnly();

        /**
         * Called when the bound tag is encountered. Note that it is possible
         * for this to be called multiple times, eg if there are multiple OSM
         * files provided as input.
         * @param bounds the area covered by the map.
         */

        void boundTag(Area bounds);


        /**
         * Called when a whole node has been processed.
        */

        void processNode(Node n);

        void processWay(Way w);
       
        void processRelation(Relation w);


        /**
         * Called once the entire map has finished processing.
         */

        void endMap();
}