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

/**
 * The generated EMF API of the dynamic working sets model.
 *
 * \.WorkingSetsPackage.*
 * \.WorkingSetsFactory.*
 */
package org.eclipse.oomph.workingsets;
