/*****************************************************************************
 * Copyright (c) 2018 CEA LIST and others.
 * 
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *   CEA LIST - Initial API and implementation
 *   
 *****************************************************************************/

package org.eclipse.papyrus.cdo.benchmarks.tests;

import org.eclipse.gmf.runtime.emf.type.core.IHintedType;

/**
 * @author VL222926
 *
 */
public class PurePapyrusUniqueIndexCreationTest extends AbstractUniqueIndexCreationTest {

	/**
	 * @see org.eclipse.papyrus.cdo.benchmarks.tests.AbstractPerfTest#createPapyrusModelCreation()
	 *
	 * @return
	 */
	@Override
	protected IPapyrusModelCreation createPapyrusModelCreation() {
		return new PapyrusModelCreation();
	}

	/**
	 * @see org.eclipse.papyrus.cdo.benchmarks.tests.AbstractPerfTest#createTimeExecutionHelper(int, IHintedType)
	 *
	 * @param nbClasses
	 * @return
	 */
	@Override
	protected ExecutionTimeHelper createTimeExecutionHelper(int nbClasses, IHintedType elementType) {
		final String id = elementType.getId();

		ExecutionTimeHelper helper = new ExecutionTimeHelper("Papyrus Project: Create " + nbClasses + " " + id + " with unique Index.", ExecutionTimeHelper.Papyrus_TYPE, nbClasses, id);
		merger.addTimeHelper(helper);
		return helper;
	}



}
