/***************************************************************************** * Copyright (c) 2009 Atos Origin. * * * 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: * Atos Origin - Initial API and implementation * *****************************************************************************/ package org.eclipse.papyrus.uml.diagram.sequence.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.stereotype.AppliedStereotypeParser; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.CommentBodyEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.Constraint2EditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.ConstraintNameEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.ContinuationNameEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.DurationConstraintAppliedStereotypeEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.DurationConstraintInMessageAppliedStereotypeEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.DurationConstraintInMessageLabelEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.DurationConstraintLabelEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.DurationObservationAppliedStereotypeEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.DurationObservationLabelEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.GeneralOrderingAppliedStereotypeEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.InteractionNameEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.InteractionUseName2EditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.InteractionUseNameEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.LifelineNameEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.MessageAsyncAppliedStereotypeEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.MessageCreateAppliedStereotypeEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.MessageDeleteAppliedStereotypeEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.MessageFoundAppliedStereotypeEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.MessageLostAppliedStereotypeEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.MessageName2EditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.MessageName3EditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.MessageName4EditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.MessageName5EditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.MessageName6EditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.MessageName7EditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.MessageNameEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.MessageReplyAppliedStereotypeEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.MessageSyncAppliedStereotypeEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.StateInvariantNameEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.TimeConstraintAppliedStereotypeEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.TimeConstraintLabelEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.TimeObservationAppliedStereotypeEditPart; import org.eclipse.papyrus.uml.diagram.sequence.edit.parts.TimeObservationLabelEditPart; import org.eclipse.papyrus.uml.diagram.sequence.parser.custom.DurationObservationParser; import org.eclipse.papyrus.uml.diagram.sequence.parser.custom.InteractionUseCustomParsers; import org.eclipse.papyrus.uml.diagram.sequence.parser.custom.LifelineCustomParsers; import org.eclipse.papyrus.uml.diagram.sequence.parser.custom.MessageCustomParser; import org.eclipse.papyrus.uml.diagram.sequence.parser.custom.TimeConstraintParser; import org.eclipse.papyrus.uml.diagram.sequence.parser.custom.TimeObservationParser; import org.eclipse.papyrus.uml.diagram.sequence.parsers.MessageFormatParser; import org.eclipse.papyrus.uml.diagram.sequence.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("sd: {0}"); //$NON-NLS-1$ parser.setEditorPattern("{0}"); //$NON-NLS-1$ parser.setEditPattern("{0}"); //$NON-NLS-1$ interactionName_5001Parser = parser; } return interactionName_5001Parser; } /** * @generated */ private LifelineCustomParsers lifelineName_5002Parser; /** * @generated */ private IParser getLifelineName_5002Parser() { if(lifelineName_5002Parser == null) { lifelineName_5002Parser = new LifelineCustomParsers(); } return lifelineName_5002Parser; } /** * @generated */ private IParser stateInvariantName_5008Parser; /** * @generated */ private IParser getStateInvariantName_5008Parser() { if(stateInvariantName_5008Parser == null) { EAttribute[] features = new EAttribute[]{ UMLPackage.eINSTANCE.getNamedElement_Name() }; MessageFormatParser parser = new MessageFormatParser(features); stateInvariantName_5008Parser = parser; } return stateInvariantName_5008Parser; } /** * @generated */ private TimeConstraintParser timeConstraintLabel_5009Parser; /** * @generated */ private IParser getTimeConstraintLabel_5009Parser() { if(timeConstraintLabel_5009Parser == null) { timeConstraintLabel_5009Parser = new TimeConstraintParser(); } return timeConstraintLabel_5009Parser; } /** * @generated */ private AppliedStereotypeParser timeConstraintLabel_5013Parser; /** * @generated */ private IParser getTimeConstraintLabel_5013Parser() { if(timeConstraintLabel_5013Parser == null) { timeConstraintLabel_5013Parser = new AppliedStereotypeParser(); } return timeConstraintLabel_5013Parser; } /** * @generated */ private TimeObservationParser timeObservationLabel_5010Parser; /** * @generated */ private IParser getTimeObservationLabel_5010Parser() { if(timeObservationLabel_5010Parser == null) { timeObservationLabel_5010Parser = new TimeObservationParser(); } return timeObservationLabel_5010Parser; } /** * @generated */ private AppliedStereotypeParser timeObservationLabel_5014Parser; /** * @generated */ private IParser getTimeObservationLabel_5014Parser() { if(timeObservationLabel_5014Parser == null) { timeObservationLabel_5014Parser = new AppliedStereotypeParser(); } return timeObservationLabel_5014Parser; } /** * @generated */ private TimeConstraintParser durationConstraintLabel_5011Parser; /** * @generated */ private IParser getDurationConstraintLabel_5011Parser() { if(durationConstraintLabel_5011Parser == null) { durationConstraintLabel_5011Parser = new TimeConstraintParser(); } return durationConstraintLabel_5011Parser; } /** * @generated */ private AppliedStereotypeParser durationConstraintLabel_5015Parser; /** * @generated */ private IParser getDurationConstraintLabel_5015Parser() { if(durationConstraintLabel_5015Parser == null) { durationConstraintLabel_5015Parser = new AppliedStereotypeParser(); } return durationConstraintLabel_5015Parser; } /** * @generated */ private IParser interactionUseName_5003Parser; /** * @generated */ private IParser getInteractionUseName_5003Parser() { if(interactionUseName_5003Parser == null) { EAttribute[] features = new EAttribute[]{ UMLPackage.eINSTANCE.getNamedElement_Name() }; MessageFormatParser parser = new MessageFormatParser(features); parser.setViewPattern("Ref"); //$NON-NLS-1$ parser.setEditorPattern("Ref"); //$NON-NLS-1$ parser.setEditPattern("Ref"); //$NON-NLS-1$ interactionUseName_5003Parser = parser; } return interactionUseName_5003Parser; } /** * @generated */ private InteractionUseCustomParsers interactionUseName_5004Parser; /** * @generated */ private IParser getInteractionUseName_5004Parser() { if(interactionUseName_5004Parser == null) { interactionUseName_5004Parser = new InteractionUseCustomParsers(); } return interactionUseName_5004Parser; } /** * @generated */ private IParser continuationName_5007Parser; /** * @generated */ private IParser getContinuationName_5007Parser() { if(continuationName_5007Parser == null) { EAttribute[] features = new EAttribute[]{ UMLPackage.eINSTANCE.getNamedElement_Name() }; MessageFormatParser parser = new MessageFormatParser(features); continuationName_5007Parser = parser; } return continuationName_5007Parser; } /** * @generated */ private IParser constraintName_5005Parser; /** * @generated */ private IParser getConstraintName_5005Parser() { if(constraintName_5005Parser == null) { EAttribute[] features = new EAttribute[]{ UMLPackage.eINSTANCE.getNamedElement_Name() }; MessageFormatParser parser = new MessageFormatParser(features); constraintName_5005Parser = parser; } return constraintName_5005Parser; } /** * @generated */ private ConstraintParser constraintLabel_5012Parser; /** * @generated */ private IParser getConstraintLabel_5012Parser() { if(constraintLabel_5012Parser == null) { constraintLabel_5012Parser = new ConstraintParser(); } return constraintLabel_5012Parser; } /** * @generated */ private CommentParser commentBody_5006Parser; /** * @generated */ private IParser getCommentBody_5006Parser() { if(commentBody_5006Parser == null) { commentBody_5006Parser = new CommentParser(); } return commentBody_5006Parser; } /** * @generated */ private TimeConstraintParser durationConstraintLabel_5018Parser; /** * @generated */ private IParser getDurationConstraintLabel_5018Parser() { if(durationConstraintLabel_5018Parser == null) { durationConstraintLabel_5018Parser = new TimeConstraintParser(); } return durationConstraintLabel_5018Parser; } /** * @generated */ private AppliedStereotypeParser durationConstraintLabel_5019Parser; /** * @generated */ private IParser getDurationConstraintLabel_5019Parser() { if(durationConstraintLabel_5019Parser == null) { durationConstraintLabel_5019Parser = new AppliedStereotypeParser(); } return durationConstraintLabel_5019Parser; } /** * @generated */ private DurationObservationParser durationObservationLabel_5016Parser; /** * @generated */ private IParser getDurationObservationLabel_5016Parser() { if(durationObservationLabel_5016Parser == null) { durationObservationLabel_5016Parser = new DurationObservationParser(); } return durationObservationLabel_5016Parser; } /** * @generated */ private AppliedStereotypeParser durationObservationLabel_5017Parser; /** * @generated */ private IParser getDurationObservationLabel_5017Parser() { if(durationObservationLabel_5017Parser == null) { durationObservationLabel_5017Parser = new AppliedStereotypeParser(); } return durationObservationLabel_5017Parser; } /** * @generated */ private MessageCustomParser messageName_6001Parser; /** * @generated */ private IParser getMessageName_6001Parser() { if(messageName_6001Parser == null) { messageName_6001Parser = new MessageCustomParser(); } return messageName_6001Parser; } /** * @generated */ private AppliedStereotypeParser messageLabel_6008Parser; /** * @generated */ private IParser getMessageLabel_6008Parser() { if(messageLabel_6008Parser == null) { messageLabel_6008Parser = new AppliedStereotypeParser(); } return messageLabel_6008Parser; } /** * @generated */ private MessageCustomParser messageName_6002Parser; /** * @generated */ private IParser getMessageName_6002Parser() { if(messageName_6002Parser == null) { messageName_6002Parser = new MessageCustomParser(); } return messageName_6002Parser; } /** * @generated */ private AppliedStereotypeParser messageLabel_6009Parser; /** * @generated */ private IParser getMessageLabel_6009Parser() { if(messageLabel_6009Parser == null) { messageLabel_6009Parser = new AppliedStereotypeParser(); } return messageLabel_6009Parser; } /** * @generated */ private MessageCustomParser messageName_6003Parser; /** * @generated */ private IParser getMessageName_6003Parser() { if(messageName_6003Parser == null) { messageName_6003Parser = new MessageCustomParser(); } return messageName_6003Parser; } /** * @generated */ private AppliedStereotypeParser messageLabel_6010Parser; /** * @generated */ private IParser getMessageLabel_6010Parser() { if(messageLabel_6010Parser == null) { messageLabel_6010Parser = new AppliedStereotypeParser(); } return messageLabel_6010Parser; } /** * @generated */ private MessageCustomParser messageName_6004Parser; /** * @generated */ private IParser getMessageName_6004Parser() { if(messageName_6004Parser == null) { messageName_6004Parser = new MessageCustomParser(); } return messageName_6004Parser; } /** * @generated */ private AppliedStereotypeParser messageLabel_6011Parser; /** * @generated */ private IParser getMessageLabel_6011Parser() { if(messageLabel_6011Parser == null) { messageLabel_6011Parser = new AppliedStereotypeParser(); } return messageLabel_6011Parser; } /** * @generated */ private MessageCustomParser messageName_6005Parser; /** * @generated */ private IParser getMessageName_6005Parser() { if(messageName_6005Parser == null) { messageName_6005Parser = new MessageCustomParser(); } return messageName_6005Parser; } /** * @generated */ private AppliedStereotypeParser messageLabel_6012Parser; /** * @generated */ private IParser getMessageLabel_6012Parser() { if(messageLabel_6012Parser == null) { messageLabel_6012Parser = new AppliedStereotypeParser(); } return messageLabel_6012Parser; } /** * @generated */ private MessageCustomParser messageName_6006Parser; /** * @generated */ private IParser getMessageName_6006Parser() { if(messageName_6006Parser == null) { messageName_6006Parser = new MessageCustomParser(); } return messageName_6006Parser; } /** * @generated */ private AppliedStereotypeParser messageLabel_6013Parser; /** * @generated */ private IParser getMessageLabel_6013Parser() { if(messageLabel_6013Parser == null) { messageLabel_6013Parser = new AppliedStereotypeParser(); } return messageLabel_6013Parser; } /** * @generated */ private MessageCustomParser messageName_6007Parser; /** * @generated */ private IParser getMessageName_6007Parser() { if(messageName_6007Parser == null) { messageName_6007Parser = new MessageCustomParser(); } return messageName_6007Parser; } /** * @generated */ private AppliedStereotypeParser messageLabel_6014Parser; /** * @generated */ private IParser getMessageLabel_6014Parser() { if(messageLabel_6014Parser == null) { messageLabel_6014Parser = new AppliedStereotypeParser(); } return messageLabel_6014Parser; } /** * @generated */ private AppliedStereotypeParser generalOrderingLabel_6015Parser; /** * @generated */ private IParser getGeneralOrderingLabel_6015Parser() { if(generalOrderingLabel_6015Parser == null) { generalOrderingLabel_6015Parser = new AppliedStereotypeParser(); } return generalOrderingLabel_6015Parser; } /** * @generated */ protected IParser getParser(int visualID) { switch(visualID) { case InteractionNameEditPart.VISUAL_ID: return getInteractionName_5001Parser(); case InteractionUseNameEditPart.VISUAL_ID: return getInteractionUseName_5003Parser(); case InteractionUseName2EditPart.VISUAL_ID: return getInteractionUseName_5004Parser(); case ContinuationNameEditPart.VISUAL_ID: return getContinuationName_5007Parser(); case LifelineNameEditPart.VISUAL_ID: return getLifelineName_5002Parser(); case StateInvariantNameEditPart.VISUAL_ID: return getStateInvariantName_5008Parser(); case TimeConstraintLabelEditPart.VISUAL_ID: return getTimeConstraintLabel_5009Parser(); case TimeConstraintAppliedStereotypeEditPart.VISUAL_ID: return getTimeConstraintLabel_5013Parser(); case TimeObservationLabelEditPart.VISUAL_ID: return getTimeObservationLabel_5010Parser(); case TimeObservationAppliedStereotypeEditPart.VISUAL_ID: return getTimeObservationLabel_5014Parser(); case DurationConstraintLabelEditPart.VISUAL_ID: return getDurationConstraintLabel_5011Parser(); case DurationConstraintAppliedStereotypeEditPart.VISUAL_ID: return getDurationConstraintLabel_5015Parser(); case ConstraintNameEditPart.VISUAL_ID: return getConstraintName_5005Parser(); case Constraint2EditPart.VISUAL_ID: return getConstraintLabel_5012Parser(); case CommentBodyEditPart.VISUAL_ID: return getCommentBody_5006Parser(); case DurationConstraintInMessageLabelEditPart.VISUAL_ID: return getDurationConstraintLabel_5018Parser(); case DurationConstraintInMessageAppliedStereotypeEditPart.VISUAL_ID: return getDurationConstraintLabel_5019Parser(); case DurationObservationLabelEditPart.VISUAL_ID: return getDurationObservationLabel_5016Parser(); case DurationObservationAppliedStereotypeEditPart.VISUAL_ID: return getDurationObservationLabel_5017Parser(); case MessageNameEditPart.VISUAL_ID: return getMessageName_6001Parser(); case MessageSyncAppliedStereotypeEditPart.VISUAL_ID: return getMessageLabel_6008Parser(); case MessageName2EditPart.VISUAL_ID: return getMessageName_6002Parser(); case MessageAsyncAppliedStereotypeEditPart.VISUAL_ID: return getMessageLabel_6009Parser(); case MessageName3EditPart.VISUAL_ID: return getMessageName_6003Parser(); case MessageReplyAppliedStereotypeEditPart.VISUAL_ID: return getMessageLabel_6010Parser(); case MessageName4EditPart.VISUAL_ID: return getMessageName_6004Parser(); case MessageCreateAppliedStereotypeEditPart.VISUAL_ID: return getMessageLabel_6011Parser(); case MessageName5EditPart.VISUAL_ID: return getMessageName_6005Parser(); case MessageDeleteAppliedStereotypeEditPart.VISUAL_ID: return getMessageLabel_6012Parser(); case MessageName6EditPart.VISUAL_ID: return getMessageName_6006Parser(); case MessageLostAppliedStereotypeEditPart.VISUAL_ID: return getMessageLabel_6013Parser(); case MessageName7EditPart.VISUAL_ID: return getMessageName_6007Parser(); case MessageFoundAppliedStereotypeEditPart.VISUAL_ID: return getMessageLabel_6014Parser(); case GeneralOrderingAppliedStereotypeEditPart.VISUAL_ID: return getGeneralOrderingLabel_6015Parser(); } 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); } } }