/*******************************************************************************
 * Copyright (c) <INITIAL YEAR, LATEST YEAR MODIFIED> <Initial Company/Contributor>. All rights reserved.
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v1.0 and Eclipse Distribution License v. 1.0
 * which accompanies this distribution.
 * The Eclipse Public License is available at http://www.eclipse.org/legal/epl-v10.html
 * and the Eclipse Distribution License is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * Contributors:
 *     <CONTRIBUTOR/COMPANY> - Bug ######: <Description>
 ******************************************************************************/
package org.eclipse.persistence;

/**
 * <Class Comments>
 *
 * @author <commiter id>
 * @since EclipseLink <target version>
 */
public class Sample {
}
