Skip to main content
summaryrefslogblamecommitdiffstats
blob: a0249886d6d4d2bb50efdbe50265c675bb6a0412 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12
13
  
                                                                       










                                                                        








                                                                                         
 

                                        

                                           










































































































































































                                                                                                           
     












































































                                                                                            
/*
 * Copyright (c) 2004 - 2011 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 = (String)hint.getAdapter(String.class);
    if (vid != null)
    {
      return getParser(AcoreVisualIDRegistry.getVisualID(vid));
    }
    View 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
     */
    public Object getAdapter(Class adapter)
    {
      if (IElementType.class.equals(adapter))
      {
        return elementType;
      }
      return super.getAdapter(adapter);
    }
  }

}

Back to the top