/**
 * Copyright (c) 2009 Borland Software Corporation
 * 
 * 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:
 *    Artem Tikhomirov (Borland) - initial API and implementation
 */
modeltype GMFMAP uses mappings('http://www.eclipse.org/gmf/2006/mappings');
modeltype GMFGEN uses gmfgen('http://www.eclipse.org/gmf/2009/GenModel');

transformation RichClientPlatformApp(in mapModel : GMFMAP, inout gmfgenModel : GMFGEN);

main() {
	var canvasMapping := mapModel.rootObjects()![GMFMAP::Mapping].diagram;
	var genEditor := gmfgenModel.rootObjects()![GMFGEN::GenEditorGenerator];
}
