// This software is released into the Public Domain. See copying.txt for details. package org.openstreetmap.osmosis.core.util; import org.openstreetmap.osmosis.core.OsmosisRuntimeException; /** * Contains utility methods supporting storage of longs as integers. This is * only useful while OSM ids remain below Integer.MAX_VALUE. * * @author Brett Henderson */ public final class LongAsInt { /** * This class cannot be constructed. */ private LongAsInt() { // Do nothing. } /** * Converts the specified long to an int and verifies that it is legal. * * @param value * The identifier to be converted. * @return The integer representation of the id. */ public static int longToInt(long value) { // Verify that the value can be safely cast to an integer. if (value > Integer.MAX_VALUE) { throw new OsmosisRuntimeException("Cannot represent " + value + " as an integer."); } if (value < Integer.MIN_VALUE) { throw new OsmosisRuntimeException("Cannot represent " + value + " as an integer."); } return (int) value; } }