class BoundaryEventPropertyWriter extends CatchEventPropertyWriter {

    @Override
    public void setAbsoluteBounds(Node<? extends View, ?> node) {
        Bound ul = node.getContent().getBounds().getUpperLeft();
        //docker information is relative
        setDockerInfo(Point2D.create(ul.getX(), ul.getY()));

        Optional<Node<View, Edge>> dockSourceNode = getDockSourceNode(node);
        if (dockSourceNode.isPresent()) {
            //docked node bounds are relative to the dockSourceNode in Stunner, but not in bpmn2 standard so the node
            //absolute bounds must be calculated by using hte dockSourceNode absolute coordinates.
            Bounds dockSourceNodeBounds = absoluteBounds(dockSourceNode.get());
            Bounds nodeBounds = node.getContent().getBounds();
            double x = dockSourceNodeBounds.getX() + nodeBounds.getUpperLeft().getX();
            double y = dockSourceNodeBounds.getY() + nodeBounds.getUpperLeft().getY();
            super.setBounds(Bounds.create(x, y, x + nodeBounds.getWidth(), y + nodeBounds.getHeight()));
        } else {
            //uncommon case
            super.setAbsoluteBounds(node);
        }
    }

    public  BoundaryEventPropertyWriter(BoundaryEvent event, VariableScope variableScope, Set<DataObject> dataObjects);

}