// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.tools;
import java.text.MessageFormat;
import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
import org.openstreetmap.josm.data.osm.PrimitiveId;
/**
* This utility class provides a collection of static helper methods for checking
* parameters at run-time.
*
*/
public class CheckParameterUtil {
private CheckParameterUtil(){}
public static void ensureValidPrimitiveId(PrimitiveId id, String parameterName) throws IllegalArgumentException {
ensureParameterNotNull(id, parameterName);
if (id.getUniqueId() <= 0)
throw new IllegalArgumentException(MessageFormat.format("Expected unique id > 0 for primitive ''{1}'', got {0}", id.getUniqueId(), parameterName));
}
public static void ensureValidVersion(long version, String parameterName) throws IllegalArgumentException {
if (version < 0)
throw new IllegalArgumentException(MessageFormat.format("Expected value of type long > 0 for parameter ''{0}'', got {1}", parameterName, version));
}
public static void ensureParameterNotNull(Object value, String parameterName) {
if (value == null)
throw new IllegalArgumentException(MessageFormat.format("Parameter ''{0}'' must not be null", parameterName));
}
/**
* Ensures that <code>id</code> is non-null primitive id of type {@see OsmPrimitiveType#NODE}
*
* @param id the primitive id
* @param parameterName the name of the parameter to be checked
* @throws IllegalArgumentException thrown if id is null
* @throws IllegalArgumentException thrown if id.getType() != NODE
*/
public static void ensureValidNodeId(PrimitiveId id, String parameterName) throws IllegalArgumentException {
ensureParameterNotNull(id, parameterName);
if (! id.getType().equals(OsmPrimitiveType.NODE))
throw new IllegalArgumentException(MessageFormat.format("Parameter ''{0}'' of type node expected, got ''{1}''", parameterName, id.getType().getAPIName()));
}
}