blob: 2266071814c75d401c048b845ad69acc4d1eecd9 [file] [log] [blame]
/*******************************************************************************
* 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
}
}
}