/*****************************************************************************
 * Copyright (c) 2017 CEA LIST 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:
 *   Francois LE FEVRE (CEA) francois.le-fevre@cea.fr - Initial API and Implementation
 *   
 *****************************************************************************/
package org.eclipse.papyrus.developer.migration.elementtypereference.creationmenumodel;

/**
 * 
 * Dedicated to migrate
 *
 */
public class ElementTypeMigrationCreationMenuRunner {



	public static void main(String argv[]) {
		String folderRootGit4ElementtypeData = argv[0];
		String folderRootGit4CreationMenuModel = argv[1];
		String outputRootFolder = null;
		if (argv.length == 3) {
			outputRootFolder = argv[2];
		}
		ElementTypeMigrationCreationMenuModel myElementTypeMigrationCreationMenuModel = new ElementTypeMigrationCreationMenuModel(folderRootGit4ElementtypeData);
		myElementTypeMigrationCreationMenuModel.migrateModelDocuments(folderRootGit4CreationMenuModel, outputRootFolder);
	}

}
