/*
 * Copyright (c) 2011-2013 Eike Stepper (Berlin, Germany) and others. All rights reserved. This program and the
 * accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this
 * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html Contributors: Eike Stepper - initial API
 * and implementation
 */

/**
 * Interfaces and classes for platform-independent progress monitoring.
 */
package org.eclipse.net4j.util.om.monitor;
