/*****************************************************************************
 * 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 PurePapyrusQuickIndexCreationTest extends AbstractQuickIndexCreationTest {

	/**
	 * @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 quick Index.", ExecutionTimeHelper.Papyrus_TYPE, nbClasses, id);
		merger.addTimeHelper(helper);
		return helper;
	}



}
