/* * StsToolParserProvider.java * * This file is part of the STS-Tool project. * Copyright (c) 2011-2012 "University of Trento - DISI" All rights reserved. * * Is strictly forbidden to remove this copyright notice from this source code. * * Disclaimer of Warranty: * STS-Tool (this software) is provided "as-is" and without warranty of any kind, * express, implied or otherwise, including without limitation, any warranty of * merchantability or fitness for a particular purpose. * In no event shall the copyright holder or contributors be liable for any direct, * indirect, incidental, special, exemplary, or consequential damages * including, but not limited to, procurement of substitute goods or services; * loss of use, data, or profits; or business interruption) however caused and on * any theory of liability, whether in contract, strict liability, or tort (including * negligence or otherwise) arising in any way out of the use of this software, even * if advised of the possibility of such damage. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License version 3 * as published by the Free Software Foundation with the addition of the * following permission added to Section 15 as permitted in Section 7(a): * FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY * "University of Trento - DISI","University of Trento - DISI" DISCLAIMS THE * WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS. * * See the GNU Affero General Public License for more details. * You should have received a copy of the GNU Affero General Public License * along with this program; if not, see http://www.gnu.org/licenses or write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA, 02110-1301 USA, or download the license from the following URL: * http://www.sts-tool.eu/License.php * * For more information, please contact STS-Tool group at this * address: ststool@disi.unitn.it * */ package eu.aniketos.wp1.ststool.diagram.providers; import org.eclipse.core.runtime.IAdaptable; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EObject; import org.eclipse.gmf.runtime.common.core.service.AbstractProvider; import org.eclipse.gmf.runtime.common.core.service.IOperation; import org.eclipse.gmf.runtime.common.ui.services.parser.GetParserOperation; import org.eclipse.gmf.runtime.common.ui.services.parser.IParser; import org.eclipse.gmf.runtime.common.ui.services.parser.IParserProvider; import org.eclipse.gmf.runtime.common.ui.services.parser.ParserService; import org.eclipse.gmf.runtime.emf.type.core.IElementType; import org.eclipse.gmf.runtime.emf.ui.services.parser.ParserHintAdapter; import org.eclipse.gmf.runtime.notation.View; import eu.aniketos.wp1.ststool.StstoolPackage; import eu.aniketos.wp1.ststool.diagram.edit.parts.AgentNameEditPart; import eu.aniketos.wp1.ststool.diagram.edit.parts.EventNameEditPart; import eu.aniketos.wp1.ststool.diagram.edit.parts.GoalName2EditPart; import eu.aniketos.wp1.ststool.diagram.edit.parts.GoalNameEditPart; import eu.aniketos.wp1.ststool.diagram.edit.parts.IResourceNameEditPart; import eu.aniketos.wp1.ststool.diagram.edit.parts.RoleNameEditPart; import eu.aniketos.wp1.ststool.diagram.edit.parts.TResourceName2EditPart; import eu.aniketos.wp1.ststool.diagram.edit.parts.TResourceNameEditPart; import eu.aniketos.wp1.ststool.diagram.parsers.MessageFormatParser; import eu.aniketos.wp1.ststool.diagram.part.StsToolVisualIDRegistry; /** * @generated */ public class StsToolParserProvider extends AbstractProvider implements IParserProvider { /** * @generated */ private IParser agentName_5003Parser; /** * @generated */ private IParser getAgentName_5003Parser(){ if (agentName_5003Parser == null) { EAttribute[] features = new EAttribute[] { StstoolPackage.eINSTANCE.getStsElement_Name() }; MessageFormatParser parser = new MessageFormatParser(features); agentName_5003Parser = parser; } return agentName_5003Parser; } /** * @generated */ private IParser roleName_5004Parser; /** * @generated */ private IParser getRoleName_5004Parser(){ if (roleName_5004Parser == null) { EAttribute[] features = new EAttribute[] { StstoolPackage.eINSTANCE.getStsElement_Name() }; MessageFormatParser parser = new MessageFormatParser(features); roleName_5004Parser = parser; } return roleName_5004Parser; } /** * @generated */ private IParser goalName_5005Parser; /** * @generated */ private IParser getGoalName_5005Parser(){ if (goalName_5005Parser == null) { EAttribute[] features = new EAttribute[] { StstoolPackage.eINSTANCE.getStsElement_Name() }; MessageFormatParser parser = new MessageFormatParser(features); goalName_5005Parser = parser; } return goalName_5005Parser; } /** * @generated */ private IParser tResourceName_5006Parser; /** * @generated */ private IParser getTResourceName_5006Parser(){ if (tResourceName_5006Parser == null) { EAttribute[] features = new EAttribute[] { StstoolPackage.eINSTANCE.getStsElement_Name() }; MessageFormatParser parser = new MessageFormatParser(features); tResourceName_5006Parser = parser; } return tResourceName_5006Parser; } /** * @generated */ private IParser iResourceName_5007Parser; /** * @generated */ private IParser getIResourceName_5007Parser(){ if (iResourceName_5007Parser == null) { EAttribute[] features = new EAttribute[] { StstoolPackage.eINSTANCE.getStsElement_Name() }; MessageFormatParser parser = new MessageFormatParser(features); iResourceName_5007Parser = parser; } return iResourceName_5007Parser; } /** * @generated */ private IParser eventName_5008Parser; /** * @generated */ private IParser getEventName_5008Parser(){ if (eventName_5008Parser == null) { EAttribute[] features = new EAttribute[] { StstoolPackage.eINSTANCE.getStsElement_Name() }; MessageFormatParser parser = new MessageFormatParser(features); eventName_5008Parser = parser; } return eventName_5008Parser; } /** * @generated */ private IParser goalName_5001Parser; /** * @generated */ private IParser getGoalName_5001Parser(){ if (goalName_5001Parser == null) { EAttribute[] features = new EAttribute[] { StstoolPackage.eINSTANCE.getStsElement_Name() }; MessageFormatParser parser = new MessageFormatParser(features); goalName_5001Parser = parser; } return goalName_5001Parser; } /** * @generated */ private IParser tResourceName_5002Parser; /** * @generated */ private IParser getTResourceName_5002Parser(){ if (tResourceName_5002Parser == null) { EAttribute[] features = new EAttribute[] { StstoolPackage.eINSTANCE.getStsElement_Name() }; MessageFormatParser parser = new MessageFormatParser(features); tResourceName_5002Parser = parser; } return tResourceName_5002Parser; } /** * @generated */ protected IParser getParser(int visualID){ switch (visualID) { case AgentNameEditPart.VISUAL_ID: return getAgentName_5003Parser(); case RoleNameEditPart.VISUAL_ID: return getRoleName_5004Parser(); case GoalNameEditPart.VISUAL_ID: return getGoalName_5005Parser(); case TResourceNameEditPart.VISUAL_ID: return getTResourceName_5006Parser(); case IResourceNameEditPart.VISUAL_ID: return getIResourceName_5007Parser(); case EventNameEditPart.VISUAL_ID: return getEventName_5008Parser(); case GoalName2EditPart.VISUAL_ID: return getGoalName_5001Parser(); case TResourceName2EditPart.VISUAL_ID: return getTResourceName_5002Parser(); } return null; } /** * Utility method that consults ParserService * * @generated */ public static IParser getParser(IElementType type,EObject object,String parserHint){ return ParserService.getInstance().getParser(new HintAdapter(type, object, parserHint)); } /** * @generated */ public IParser getParser(IAdaptable hint){ String vid = (String) hint.getAdapter(String.class); if (vid != null) { return getParser(StsToolVisualIDRegistry.getVisualID(vid)); } View view = (View) hint.getAdapter(View.class); if (view != null) { return getParser(StsToolVisualIDRegistry.getVisualID(view)); } return null; } /** * @generated */ public boolean provides(IOperation operation){ if (operation instanceof GetParserOperation) { IAdaptable hint = ((GetParserOperation) operation).getHint(); if (StsToolElementTypes.getElement(hint) == null) { return false; } return getParser(hint) != null; } return false; } /** * @generated */ private static class HintAdapter extends ParserHintAdapter { /** * @generated */ private final IElementType elementType; /** * @generated */ public HintAdapter(IElementType type, EObject object, String parserHint) { super(object, parserHint); assert type != null; elementType = type; } /** * @generated */ @Override public Object getAdapter(Class adapter){ if (IElementType.class.equals(adapter)) { return elementType; } return super.getAdapter(adapter); } } }