/***************************************************************************** * Copyright (c) 2010 CEA LIST. * * * 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: * Saadia Dhouib saadia.dhouib@cea.fr * *****************************************************************************/ package org.eclipse.papyrus.uml.diagram.communication.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 org.eclipse.papyrus.uml.diagram.common.parser.CommentParser; import org.eclipse.papyrus.uml.diagram.common.parser.ConstraintParser; import org.eclipse.papyrus.uml.diagram.common.parser.ShortcutDiagramParser; import org.eclipse.papyrus.uml.diagram.common.parser.stereotype.AppliedStereotypeParser; import org.eclipse.papyrus.uml.diagram.communication.custom.parser.LifelineCustomParsers; import org.eclipse.papyrus.uml.diagram.communication.edit.parts.AppliedStereotypeMessageEditPart; import org.eclipse.papyrus.uml.diagram.communication.edit.parts.CommentBodyEditPartCN; import org.eclipse.papyrus.uml.diagram.communication.edit.parts.ConstraintBodyEditPartCN; import org.eclipse.papyrus.uml.diagram.communication.edit.parts.ConstraintNameEditPartCN; import org.eclipse.papyrus.uml.diagram.communication.edit.parts.DiagramNameEditPart; import org.eclipse.papyrus.uml.diagram.communication.edit.parts.DurationObservationLabelEditPartCN; import org.eclipse.papyrus.uml.diagram.communication.edit.parts.DurationObservationStereotypeLabelEditPartCN; import org.eclipse.papyrus.uml.diagram.communication.edit.parts.InteractionNameEditPart; import org.eclipse.papyrus.uml.diagram.communication.edit.parts.LifelineNameEditPart; import org.eclipse.papyrus.uml.diagram.communication.edit.parts.MessageNameEditPart; import org.eclipse.papyrus.uml.diagram.communication.edit.parts.TimeObservationNameEditPartCN; import org.eclipse.papyrus.uml.diagram.communication.edit.parts.TimeObservationStereotypeLabelEditPartCN; import org.eclipse.papyrus.uml.diagram.communication.parsers.MessageFormatParser; import org.eclipse.papyrus.uml.diagram.communication.part.UMLVisualIDRegistry; import org.eclipse.uml2.uml.UMLPackage; /** * @generated */ public class UMLParserProvider extends AbstractProvider implements IParserProvider { /** * @generated */ private IParser interactionName_5001Parser; /** * @generated */ private IParser getInteractionName_5001Parser() { if(interactionName_5001Parser == null) { EAttribute[] features = new EAttribute[]{ UMLPackage.eINSTANCE.getNamedElement_Name() }; MessageFormatParser parser = new MessageFormatParser(features); parser.setViewPattern("{0}"); //$NON-NLS-1$ parser.setEditorPattern("{0}"); //$NON-NLS-1$ parser.setEditPattern("{0}"); //$NON-NLS-1$ interactionName_5001Parser = parser; } return interactionName_5001Parser; } /** * @generated */ private ShortcutDiagramParser diagramName_0Parser; /** * @generated */ private IParser getDiagramName_0Parser() { if(diagramName_0Parser == null) { diagramName_0Parser = new ShortcutDiagramParser(); } return diagramName_0Parser; } /** * @generated */ private LifelineCustomParsers lifelineName_5002Parser; /** * @generated */ private IParser getLifelineName_5002Parser() { if(lifelineName_5002Parser == null) { lifelineName_5002Parser = new LifelineCustomParsers(); } return lifelineName_5002Parser; } /** * @generated */ private IParser constraintName_5064Parser; /** * @generated */ private IParser getConstraintName_5064Parser() { if(constraintName_5064Parser == null) { EAttribute[] features = new EAttribute[]{ UMLPackage.eINSTANCE.getNamedElement_Name() }; MessageFormatParser parser = new MessageFormatParser(features); constraintName_5064Parser = parser; } return constraintName_5064Parser; } /** * @generated */ private ConstraintParser constraintSpecification_5160Parser; /** * @generated */ private IParser getConstraintSpecification_5160Parser() { if(constraintSpecification_5160Parser == null) { constraintSpecification_5160Parser = new ConstraintParser(); } return constraintSpecification_5160Parser; } /** * @generated */ private CommentParser commentBody_5150Parser; /** * @generated */ private IParser getCommentBody_5150Parser() { if(commentBody_5150Parser == null) { commentBody_5150Parser = new CommentParser(); } return commentBody_5150Parser; } /** * @generated */ private IParser timeObservationName_5153Parser; /** * @generated */ private IParser getTimeObservationName_5153Parser() { if(timeObservationName_5153Parser == null) { EAttribute[] features = new EAttribute[]{ UMLPackage.eINSTANCE.getNamedElement_Name() }; MessageFormatParser parser = new MessageFormatParser(features); timeObservationName_5153Parser = parser; } return timeObservationName_5153Parser; } /** * @generated */ private AppliedStereotypeParser timeObservationName_5154Parser; /** * @generated */ private IParser getTimeObservationName_5154Parser() { if(timeObservationName_5154Parser == null) { timeObservationName_5154Parser = new AppliedStereotypeParser(); } return timeObservationName_5154Parser; } /** * @generated */ private IParser durationObservationName_5155Parser; /** * @generated */ private IParser getDurationObservationName_5155Parser() { if(durationObservationName_5155Parser == null) { EAttribute[] features = new EAttribute[]{ UMLPackage.eINSTANCE.getNamedElement_Name() }; MessageFormatParser parser = new MessageFormatParser(features); durationObservationName_5155Parser = parser; } return durationObservationName_5155Parser; } /** * @generated */ private AppliedStereotypeParser durationObservationName_5156Parser; /** * @generated */ private IParser getDurationObservationName_5156Parser() { if(durationObservationName_5156Parser == null) { durationObservationName_5156Parser = new AppliedStereotypeParser(); } return durationObservationName_5156Parser; } /** * @generated */ private IParser messageName_6001Parser; /** * @generated */ private IParser getMessageName_6001Parser() { if(messageName_6001Parser == null) { EAttribute[] features = new EAttribute[]{ UMLPackage.eINSTANCE.getNamedElement_Name() }; MessageFormatParser parser = new MessageFormatParser(features); parser.setEditorPattern("{0}"); //$NON-NLS-1$ parser.setEditPattern("{0}"); //$NON-NLS-1$ messageName_6001Parser = parser; } return messageName_6001Parser; } /** * @generated */ private AppliedStereotypeParser messageName_6012Parser; /** * @generated */ private IParser getMessageName_6012Parser() { if(messageName_6012Parser == null) { messageName_6012Parser = new AppliedStereotypeParser(); } return messageName_6012Parser; } /** * @generated */ protected IParser getParser(int visualID) { switch(visualID) { case InteractionNameEditPart.VISUAL_ID: return getInteractionName_5001Parser(); case DiagramNameEditPart.VISUAL_ID: return getDiagramName_0Parser(); case LifelineNameEditPart.VISUAL_ID: return getLifelineName_5002Parser(); case ConstraintNameEditPartCN.VISUAL_ID: return getConstraintName_5064Parser(); case ConstraintBodyEditPartCN.VISUAL_ID: return getConstraintSpecification_5160Parser(); case CommentBodyEditPartCN.VISUAL_ID: return getCommentBody_5150Parser(); case TimeObservationNameEditPartCN.VISUAL_ID: return getTimeObservationName_5153Parser(); case TimeObservationStereotypeLabelEditPartCN.VISUAL_ID: return getTimeObservationName_5154Parser(); case DurationObservationLabelEditPartCN.VISUAL_ID: return getDurationObservationName_5155Parser(); case DurationObservationStereotypeLabelEditPartCN.VISUAL_ID: return getDurationObservationName_5156Parser(); case MessageNameEditPart.VISUAL_ID: return getMessageName_6001Parser(); case AppliedStereotypeMessageEditPart.VISUAL_ID: return getMessageName_6012Parser(); } 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(UMLVisualIDRegistry.getVisualID(vid)); } View view = (View)hint.getAdapter(View.class); if(view != null) { return getParser(UMLVisualIDRegistry.getVisualID(view)); } return null; } /** * @generated */ public boolean provides(IOperation operation) { if(operation instanceof GetParserOperation) { IAdaptable hint = ((GetParserOperation)operation).getHint(); if(UMLElementTypes.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 */ public Object getAdapter(Class adapter) { if(IElementType.class.equals(adapter)) { return elementType; } return super.getAdapter(adapter); } } }