class SequenceFlowConverter implements EdgeConverter<org.eclipse.bpmn2.SequenceFlow> {

    @Override
    public Result<BpmnEdge> convertEdge(org.eclipse.bpmn2.SequenceFlow seq, Map<String, BpmnNode> nodes) {
        Edge<View<SequenceFlow>, Node> edge = factoryManager.newEdge(seq.getId(), SequenceFlow.class);

        SequenceFlow definition = edge.getContent().getDefinition();
        SequenceFlowPropertyReader p = propertyReaderFactory.of(seq);

        definition.setGeneral(new BPMNGeneralSet(
                new Name(p.getName()),
                new Documentation(p.getDocumentation())
        ));

        definition.setExecutionSet(new SequenceFlowExecutionSet(
                new Priority(p.getPriority()),
                new ConditionExpression(p.getConditionExpression())
        ));

        return result(nodes, edge, p, "Sequence Flow ignored from " + p.getSourceId() + " to " + p.getTargetId(),
                      MarshallingMessageKeys.sequenceFlowIgnored);
    }

    public  SequenceFlowConverter(TypedFactoryManager factoryManager, PropertyReaderFactory propertyReaderFactory);

}