Subversion Repositories splitter

Rev

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

/*
 * Copyright (c) 2013, Gerd Petermann
 *
 * 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.parser;

import uk.me.parabola.splitter.Utils;

/**
 * Common OSM parseder method for status messages
 * @author GerdP
 *
 */

public class ElementCounter {
        // How many elements to process before displaying a status update
        private static final int NODE_STATUS_UPDATE_THRESHOLD = 10000000;
        private static final int WAY_STATUS_UPDATE_THRESHOLD = 1000000;
        private static final int RELATION_STATUS_UPDATE_THRESHOLD = 100000;
       
        // for messages
        private long nodeCount;
        private long wayCount;
        private long relationCount;

        /**
         * Count node and eventually print progress message with the node id
         * @param id
         */

        protected void countNode(long id) {
                nodeCount++;
                if (nodeCount % NODE_STATUS_UPDATE_THRESHOLD == 0) {
                        System.out.println(Utils.format(nodeCount) + " nodes parsed... id=" + id);
                }
        }

        /**
         * Count way and eventually print progress message with the way id
         * @param id
         */

        protected void countWay(long id)  {
                wayCount++;
                if (wayCount % WAY_STATUS_UPDATE_THRESHOLD == 0) {
                        System.out.println(Utils.format(wayCount) + " ways parsed... id=" + id);
                }
        }

        /**
         * Count relation and eventually print progress message with the relation id
         * @param id
         */

        protected void countRelation(long id)  {
                relationCount++;
                if (relationCount % RELATION_STATUS_UPDATE_THRESHOLD == 0) {
                        System.out.println(Utils.format(relationCount) + " relations parsed... id=" + id);
                }
        }
       
}