| /******************************************************************************* |
| * 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.util.Stack; |
| |
| import org.eclipse.viatra2.core.IEntity; |
| import org.eclipse.viatra2.core.IModelManager; |
| import org.eclipse.viatra2.core.IModelSpace; |
| import org.eclipse.viatra2.core.IRelation; |
| import org.eclipse.viatra2.errors.VPMRuntimeException; |
| 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 VTMLMetaModelHelper {
|
|
|
| private static VTMLMetaModelHelper instance;
|
|
|
| private static Logger log = null;
|
| private IModelSpace modsp;
|
| private IModelManager mm;
|
|
|
| public IModelSpace getMSpace() { return modsp;}
|
|
|
|
|
| Stack conts = new Stack();
|
|
|
| public void addContainer(IEntity e)
|
| {
|
| conts.push(e);
|
| }
|
| public IEntity currentContainer()
|
| {
|
| return (IEntity)conts.peek();
|
| }
|
| public IEntity removeContainer()
|
| {
|
| return (IEntity)conts.pop();
|
| }
|
| public static VTMLMetaModelHelper getInstance() {
|
| if (instance==null) instance = new VTMLMetaModelHelper();
|
| if (instance.log==null) return null;
|
| return instance;
|
| }
|
|
|
| private VTMLMetaModelHelper()
|
| {
|
|
|
| }
|
|
|
| public static void init(Logger l, IModelSpace ms, ASTBuilder a) throws VPMRuntimeException
|
| {
|
| log = l;
|
| getInstance().modsp = ms;
|
| getInstance().mm = ms.getModelManager();
|
| getInstance().ab=a;
|
| getInstance().loadMetaModel();
|
| }
|
| private IEntity ent(String fqn)
|
| {
|
| IEntity ret=mm.getEntityByName(fqn);
|
| if(ret==null)
|
| throw new RuntimeException("invalid model");
|
| return ret;
|
| }
|
| private IRelation rel(String fqn)
|
| {
|
| IRelation ret=mm.getRelationByName(fqn);
|
| if(ret==null)
|
| throw new RuntimeException("invalid model");
|
| return ret;
|
| }
|
| public static void deleteInstance()
|
| {
|
| instance = null;
|
| }
|
|
|
| private void loadMetaModel() throws VPMRuntimeException
|
| {
|
|
|
| }
|
|
|
| IEntity machine;
|
| ASTBuilder ab;
|
| public ASTBuilder getASTBuilder()
|
| {
|
| return ab;
|
| }
|
|
|
| }
|