class ConnectionAcceptorControlImpl extends AbstractAcceptorControl implements ConnectionAcceptorControl<AbstractCanvasHandler> {

    @Override
    @SuppressWarnings("unchecked")
    public boolean acceptSource(final Node source,
                                final Edge<ViewConnector<?>, Node> connector,
                                final Connection connection) {
        ensureUnHighLight();
        if (isSourceChanged(source, connector)) {
            final CommandResult<CanvasViolation> violations =
                    getCommandManager().execute(getCanvasHandler(),
                                                canvasCommandFactory.setSourceNode(source,
                                                                                   connector,
                                                                                   connection));
            return isAccept(violations);
        }
        return true;
    }

    @Inject public  ConnectionAcceptorControlImpl(final CanvasCommandFactory<AbstractCanvasHandler> canvasCommandFactory,
                                         final CanvasHighlight canvasHighlight);

}