| /******************************************************************************* |
| * Copyright (c) 2004-2008 Andras Balogh and Daniel Varro |
| * 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: |
| * Andras Balogh - initial API and implementation |
| *******************************************************************************/ |
| |
| package org.eclipse.viatra2.imports.vtml;
|
|
|
| import java.io.InputStream; |
| |
| import org.eclipse.viatra2.core.IModelSpace; |
| import org.eclipse.viatra2.errors.VPMRuntimeException; |
| import org.eclipse.viatra2.framework.IFramework; |
| import org.eclipse.viatra2.logger.Logger; |
|
|
| /**
|
| * @author babo
|
| *
|
| * TODO To change the template for this generated type comment go to
|
| * Window - Preferences - Java - Code Style - Code Templates
|
| */
|
| public class VTMLLoad{
|
|
|
| /* (non-Javadoc)
|
| * @see org.eclipse.viatra2.imports.NativeImporter#process(java.io.InputStream, org.eclipse.viatra2.core.IModelSpace, org.eclipse.viatra2.logger.Logger)
|
| */
|
| public void process(InputStream f, IModelSpace m, IFramework fw, Logger l) throws VPMRuntimeException {
|
| try
|
| {
|
| init(m,l);
|
| VTMLParser p = new VTMLParser();
|
| try
|
| {
|
| p.processFile(f,ab,log);
|
| }
|
| catch (Exception e)
|
| {
|
| //log.error("Error parsing file. Parser message: "+e.getLocalizedMessage());
|
| VTMLMetaModelHelper.deleteInstance();
|
| return;
|
| }
|
| //ab.debug();
|
| if (ab.checkDefinition())
|
| {
|
| log.info("Reference check ok.");
|
| ab.generateElements();
|
| }
|
|
|
| VTMLMetaModelHelper.deleteInstance();
|
| }
|
| catch (Exception e)
|
| {
|
| VTMLMetaModelHelper.deleteInstance();
|
| log.error("Internal exception during parse.");
|
| e.printStackTrace(); //TODO delete this line
|
| }
|
|
|
|
|
| }
|
| /* (non-Javadoc)
|
| * @see org.eclipse.viatra2.imports.NativeImporter#init(org.eclipse.viatra2.core.IModelSpace, org.eclipse.viatra2.logger.Logger)
|
| */
|
| public void init(IModelSpace m, Logger l) throws VPMRuntimeException {
|
| log = l;
|
| mod = m;
|
| ab = new ASTBuilder();
|
| ab.init(log,m);
|
| log.debug("VTML import initialized");
|
| }
|
| public void deInit() {
|
| log=null;
|
| mod=null;
|
| ab=null;
|
| }
|
| Logger log;
|
| IModelSpace mod;
|
| ASTBuilder ab;
|
| /* (non-Javadoc)
|
| * @see org.eclipse.viatra2.imports.NativeImporter#getName()
|
| */
|
| public String getName() {
|
| // TODO Auto-generated method stub
|
| return "Viatra Tectual Command Language Parser";
|
| }
|
|
|
| /* (non-Javadoc)
|
| * @see org.eclipse.viatra2.imports.NativeImporter#processFile(java.lang.String, org.eclipse.viatra2.core.IModelSpace, org.eclipse.viatra2.logger.Logger)
|
| */
|
| public void processFile(String f, IModelSpace m, IFramework fw, Logger l)
|
| throws VPMRuntimeException {
|
|
|
| try
|
| {
|
| init(m,l);
|
| VTMLParser p = new VTMLParser();
|
| try
|
| {
|
| p.processFile(f,ab,log);
|
| }
|
| catch (Exception e)
|
| {
|
| //log.error("Error parsing file. Parser message: "+e.getLocalizedMessage());
|
| VTMLMetaModelHelper.deleteInstance();
|
| return;
|
| }
|
| //ab.debug();
|
| if (ab.checkDefinition())
|
| {
|
| log.info("Reference check ok.");
|
| ab.generateElements();
|
| }
|
|
|
|
|
| VTMLMetaModelHelper.deleteInstance();
|
| }
|
| catch (Exception e)
|
| {
|
| VTMLMetaModelHelper.deleteInstance();
|
| log.error("Internal exception during parse.");
|
| e.printStackTrace(); //TODO delete this line
|
| }
|
|
|
| }
|
| }
|