/** Default constructor */
  public GraphicalTypeRegistry() {

    // Fill known edges set
    knownEdges.add(ElementTypes.ABSTRACTION.getSemanticHint());
    knownEdges.add(ElementTypes.DEPENDENCY.getSemanticHint());
    knownEdges.add(ElementTypes.REALIZATION.getSemanticHint());
    knownEdges.add(ElementTypes.PACKAGE_IMPORT.getSemanticHint());
    knownEdges.add(ElementTypes.COMMENT_ANNOTATED_ELEMENT.getSemanticHint());
    knownEdges.add(ElementTypes.CONSTRAINT_CONSTRAINED_ELEMENT.getSemanticHint());

    // Fill known nodes set (primary nodes)
    knownNodes.add(ElementTypes.PACKAGE.getSemanticHint());
    knownNodes.add(ElementTypes.PACKAGE_CN.getSemanticHint());
    knownNodes.add(ElementTypes.CLASS.getSemanticHint());
    knownNodes.add(ElementTypes.CLASS_CN.getSemanticHint());
    knownNodes.add(ElementTypes.DEFAULT_NAMED_ELEMENT.getSemanticHint());
    knownNodes.add(ElementTypes.CONTAINMENT_CIRCLE_CN.getSemanticHint());
    knownNodes.add(ElementTypes.COMMENT.getSemanticHint());
    knownNodes.add(ElementTypes.COMMENT_CN.getSemanticHint());
    knownNodes.add(ElementTypes.CONSTRAINT.getSemanticHint());
    knownNodes.add(ElementTypes.CONSTRAINT_CN.getSemanticHint());

    // Fill known nodes set (child label nodes)
    knownNodes.add(ElementTypes.CLASS_PROPERTY_CLN.getSemanticHint());
    knownNodes.add(ElementTypes.CLASS_RECEPTION_CLN.getSemanticHint());
    knownNodes.add(ElementTypes.CLASS_OPERATION_CLN.getSemanticHint());
    knownNodes.add(ElementTypes.CLASS_CLASS_CLN.getSemanticHint());
    knownNodes.add(ElementTypes.CLASS_INTERFACE_CLN.getSemanticHint());
    knownNodes.add(ElementTypes.CLASS_ENUMERATION_CLN.getSemanticHint());
    knownNodes.add(ElementTypes.CLASS_PRIMITIVE_TYPE_CLN.getSemanticHint());
    knownNodes.add(ElementTypes.CLASS_DATA_TYPE_CLN.getSemanticHint());
    knownNodes.add(ElementTypes.CLASS_SIGNAL_CLN.getSemanticHint());
  }
  /** {@inheritDoc} */
  @Override
  public String getEdgeGraphicalType(EObject domainElement) {

    String graphicalType = UNDEFINED_TYPE;
    if (domainElement == null) {
      return UNDEFINED_TYPE;
    }
    if (domainElement instanceof org.eclipse.uml2.uml.Abstraction) {
      graphicalType = ElementTypes.ABSTRACTION.getSemanticHint();
    }
    if (domainElement instanceof org.eclipse.uml2.uml.Dependency) {
      graphicalType = ElementTypes.DEPENDENCY.getSemanticHint();
    }
    if (domainElement instanceof org.eclipse.uml2.uml.Realization) {
      graphicalType = ElementTypes.REALIZATION.getSemanticHint();
    }
    if (domainElement instanceof org.eclipse.uml2.uml.PackageImport) {
      graphicalType = ElementTypes.PACKAGE_IMPORT.getSemanticHint();
    }
    return graphicalType;
  }