/* * Copyright (c) 2010, 2012, 2015, 2016 Eike Stepper (Berlin, Germany) and others. * 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: * Martin Fluegge - initial API and implementation * */ package org.eclipse.emf.cdo.dawn.examples.acore.diagram.providers; import org.eclipse.emf.cdo.dawn.examples.acore.AcorePackage; import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttribute2EditPart; import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AAttributeEditPart; import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AClassNameEditPart; import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AInterfaceNameEditPart; import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperation2EditPart; import org.eclipse.emf.cdo.dawn.examples.acore.diagram.edit.parts.AOperationEditPart; import org.eclipse.emf.cdo.dawn.examples.acore.diagram.parsers.MessageFormatParser; import org.eclipse.emf.cdo.dawn.examples.acore.diagram.part.AcoreVisualIDRegistry; import org.eclipse.emf.ecore.EAttribute; import org.eclipse.emf.ecore.EObject; import org.eclipse.core.runtime.IAdaptable; 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; /** * @generated */ public class AcoreParserProvider extends AbstractProvider implements IParserProvider { /** * @generated */ private IParser aInterfaceName_5001Parser; /** * @generated */ private IParser getAInterfaceName_5001Parser() { if (aInterfaceName_5001Parser == null) { EAttribute[] features = new EAttribute[] { AcorePackage.eINSTANCE.getABasicClass_Name() }; MessageFormatParser parser = new MessageFormatParser(features); aInterfaceName_5001Parser = parser; } return aInterfaceName_5001Parser; } /** * @generated */ private IParser aClassName_5002Parser; /** * @generated */ private IParser getAClassName_5002Parser() { if (aClassName_5002Parser == null) { EAttribute[] features = new EAttribute[] { AcorePackage.eINSTANCE.getABasicClass_Name() }; MessageFormatParser parser = new MessageFormatParser(features); aClassName_5002Parser = parser; } return aClassName_5002Parser; } /** * @generated */ private IParser aAttribute_3001Parser; /** * @generated */ private IParser getAAttribute_3001Parser() { if (aAttribute_3001Parser == null) { EAttribute[] features = new EAttribute[] { AcorePackage.eINSTANCE.getAClassChild_Accessright(), AcorePackage.eINSTANCE.getAClassChild_DataType(), AcorePackage.eINSTANCE.getAClassChild_Name() }; MessageFormatParser parser = new MessageFormatParser(features); parser.setViewPattern("{0} {2}:{1}"); //$NON-NLS-1$ parser.setEditorPattern("{0} {2}:{1}"); //$NON-NLS-1$ parser.setEditPattern("{0} {2}:{1}"); //$NON-NLS-1$ aAttribute_3001Parser = parser; } return aAttribute_3001Parser; } /** * @generated */ private IParser aOperation_3002Parser; /** * @generated */ private IParser getAOperation_3002Parser() { if (aOperation_3002Parser == null) { EAttribute[] features = new EAttribute[] { AcorePackage.eINSTANCE.getAClassChild_Accessright(), AcorePackage.eINSTANCE.getAClassChild_DataType(), AcorePackage.eINSTANCE.getAClassChild_Name() }; MessageFormatParser parser = new MessageFormatParser(features); parser.setViewPattern("{0} {2}():{1}"); //$NON-NLS-1$ parser.setEditorPattern("{0} {2}():{1}"); //$NON-NLS-1$ parser.setEditPattern("{0} {2}():{1}"); //$NON-NLS-1$ aOperation_3002Parser = parser; } return aOperation_3002Parser; } /** * @generated */ private IParser aAttribute_3003Parser; /** * @generated */ private IParser getAAttribute_3003Parser() { if (aAttribute_3003Parser == null) { EAttribute[] features = new EAttribute[] { AcorePackage.eINSTANCE.getAClassChild_Accessright(), AcorePackage.eINSTANCE.getAClassChild_DataType(), AcorePackage.eINSTANCE.getAClassChild_Name() }; MessageFormatParser parser = new MessageFormatParser(features); parser.setViewPattern("{0} {2}:{1}"); //$NON-NLS-1$ parser.setEditorPattern("{0} {2}:{1}"); //$NON-NLS-1$ parser.setEditPattern("{0} {2}:{1}"); //$NON-NLS-1$ aAttribute_3003Parser = parser; } return aAttribute_3003Parser; } /** * @generated */ private IParser aOperation_3004Parser; /** * @generated */ private IParser getAOperation_3004Parser() { if (aOperation_3004Parser == null) { EAttribute[] features = new EAttribute[] { AcorePackage.eINSTANCE.getAClassChild_Accessright(), AcorePackage.eINSTANCE.getAClassChild_DataType(), AcorePackage.eINSTANCE.getAClassChild_Name() }; MessageFormatParser parser = new MessageFormatParser(features); parser.setViewPattern("{0} {2}():{1}"); //$NON-NLS-1$ parser.setEditorPattern("{0} {2}():{1}"); //$NON-NLS-1$ parser.setEditPattern("{0} {2}():{1}"); //$NON-NLS-1$ aOperation_3004Parser = parser; } return aOperation_3004Parser; } /** * @generated */ protected IParser getParser(int visualID) { switch (visualID) { case AInterfaceNameEditPart.VISUAL_ID: return getAInterfaceName_5001Parser(); case AClassNameEditPart.VISUAL_ID: return getAClassName_5002Parser(); case AAttributeEditPart.VISUAL_ID: return getAAttribute_3001Parser(); case AOperationEditPart.VISUAL_ID: return getAOperation_3002Parser(); case AAttribute2EditPart.VISUAL_ID: return getAAttribute_3003Parser(); case AOperation2EditPart.VISUAL_ID: return getAOperation_3004Parser(); } 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 = hint.getAdapter(String.class); if (vid != null) { return getParser(AcoreVisualIDRegistry.getVisualID(vid)); } View view = hint.getAdapter(View.class); if (view != null) { return getParser(AcoreVisualIDRegistry.getVisualID(view)); } return null; } /** * @generated */ public boolean provides(IOperation operation) { if (operation instanceof GetParserOperation) { IAdaptable hint = ((GetParserOperation)operation).getHint(); if (AcoreElementTypes.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); } } }