Package net.cis.common.model.diagram.shiptype.providers

Source Code of net.cis.common.model.diagram.shiptype.providers.CismodelParserProvider$HintAdapter

package net.cis.common.model.diagram.shiptype.providers;

import net.cis.common.model.base.BasePackage;
import net.cis.common.model.diagram.shiptype.edit.parts.ShipNameEditPart;
import net.cis.common.model.diagram.shiptype.edit.parts.ShipShipTypeEditPart;
import net.cis.common.model.diagram.shiptype.edit.parts.SlotSlotSizeEditPart;
import net.cis.common.model.diagram.shiptype.edit.parts.SlotSlotTypeEditPart;
import net.cis.common.model.diagram.shiptype.parsers.MessageFormatParser;
import net.cis.common.model.diagram.shiptype.part.CismodelVisualIDRegistry;
import net.cis.common.model.structure.StructurePackage;

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.gmf.tooling.runtime.parsers.EnumParser;

/**
* @generated
*/
public class CismodelParserProvider extends AbstractProvider implements
    IParserProvider {

  /**
   * @generated
   */
  private IParser shipName_5003Parser;

  /**
   * @generated
   */
  private IParser getShipName_5003Parser() {
    if (shipName_5003Parser == null) {
      EAttribute[] features = new EAttribute[] { BasePackage.eINSTANCE
          .getAbstractNamedEntity_Name() };
      MessageFormatParser parser = new MessageFormatParser(features);
      shipName_5003Parser = parser;
    }
    return shipName_5003Parser;
  }

  /**
   * @generated
   */
  private IParser shipShipType_5004Parser;

  /**
   * @generated
   */
  private IParser getShipShipType_5004Parser() {
    if (shipShipType_5004Parser == null) {
      EAttribute editableFeature = StructurePackage.eINSTANCE
          .getShip_ShipType();
      EnumParser parser = new EnumParser(editableFeature);
      shipShipType_5004Parser = parser;
    }
    return shipShipType_5004Parser;
  }

  /**
   * @generated
   */
  private IParser slotSlotSize_5001Parser;

  /**
   * @generated
   */
  private IParser getSlotSlotSize_5001Parser() {
    if (slotSlotSize_5001Parser == null) {
      EAttribute editableFeature = StructurePackage.eINSTANCE
          .getSlot_SlotSize();
      EnumParser parser = new EnumParser(editableFeature);
      slotSlotSize_5001Parser = parser;
    }
    return slotSlotSize_5001Parser;
  }

  /**
   * @generated
   */
  private IParser slotSlotType_5002Parser;

  /**
   * @generated
   */
  private IParser getSlotSlotType_5002Parser() {
    if (slotSlotType_5002Parser == null) {
      EAttribute editableFeature = StructurePackage.eINSTANCE
          .getSlot_SlotType();
      EnumParser parser = new EnumParser(editableFeature);
      slotSlotType_5002Parser = parser;
    }
    return slotSlotType_5002Parser;
  }

  /**
   * @generated
   */
  protected IParser getParser(int visualID) {
    switch (visualID) {
    case ShipNameEditPart.VISUAL_ID:
      return getShipName_5003Parser();

    case ShipShipTypeEditPart.VISUAL_ID:
      return getShipShipType_5004Parser();

    case SlotSlotSizeEditPart.VISUAL_ID:
      return getSlotSlotSize_5001Parser();

    case SlotSlotTypeEditPart.VISUAL_ID:
      return getSlotSlotType_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(CismodelVisualIDRegistry.getVisualID(vid));
    }
    View view = (View) hint.getAdapter(View.class);
    if (view != null) {
      return getParser(CismodelVisualIDRegistry.getVisualID(view));
    }
    return null;
  }

  /**
   * @generated
   */
  public boolean provides(IOperation operation) {
    if (operation instanceof GetParserOperation) {
      IAdaptable hint = ((GetParserOperation) operation).getHint();
      if (CismodelElementTypes.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);
    }
  }

}
TOP

Related Classes of net.cis.common.model.diagram.shiptype.providers.CismodelParserProvider$HintAdapter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.