/*
 * Copyright (c) 2013, 2015, 2019 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 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
 */

/**
 * The generated EMF edit support of the CDO expressions model.
 *
 */
package org.eclipse.emf.cdo.expressions.provider;
