private void removeStructuredActivityNodes(IRemoveContext context) {
   EList<EObject> structuredActivityNodes =
       context.getPictogramElement().getLink().getBusinessObjects();
   for (EObject eObject : structuredActivityNodes) {
     if (eObject instanceof StructuredActivityNode) {
       StructuredActivityNode structuredActivityNode = (StructuredActivityNode) eObject;
       removeInputPins(structuredActivityNode.getStructuredNodeInput());
       removeOutputPins(structuredActivityNode.getStructuredNodeOutput());
     }
     if (eObject instanceof ExpansionRegion) {
       ExpansionRegion expansionRegion = (ExpansionRegion) eObject;
       removeExpansionNodes(expansionRegion.getOutputElement());
       removeExpansionNodes(expansionRegion.getInputElement());
     }
   }
 }
  @Override
  public Object[] create(ICreateContext context) {
    ExpansionNode expansionNode = createExpansionNode(context);

    ExpansionRegion expansionRegion = getTargetExpansionRegion(context);

    Activity activity = expansionRegion.getActivity();
    if (activity != null) activity.getNode().add(expansionNode);
    else {
      StructuredActivityNode inStructuredNode = expansionRegion.getInStructuredNode();
      if (inStructuredNode != null) inStructuredNode.getNode().add(expansionNode);
    }

    addGraphicalRepresentation(context, expansionNode);

    return new Object[] {expansionNode};
  }