@Override
    protected void dataAttributeChanged(final BPKeyWords keyWord, final Object value) {
        super.dataAttributeChanged(keyWord, value);
        if (value != null) {
            if (keyWord == BPKeyWords.SOURCE) {
                if (this.sourceVertex != null) {
                    this.sourceVertex.removeAttributeChangeListener(this.sourceChangeListener);
                }
                this.sourceVertex = (Vertex) value;
                this.sourceChangeListener = new SourceChangeListener();
                this.sourceVertex.addAttributeChangeListener(this.sourceChangeListener);
                if (this.sourceVertex.getUniqueName() != null) {
                    updateAttribute(keyWord, this.sourceVertex.getUniqueName());
                }
            } else if (keyWord == BPKeyWords.TARGET) {
                if (this.targetVertex != null) {
                    this.targetVertex.removeAttributeChangeListener(this.targetChangeListener);
                }
                this.targetVertex = (Vertex) value;
                this.targetChangeListener = new TargetChangeListener();
                this.targetVertex.addAttributeChangeListener(this.targetChangeListener);
                if (this.targetVertex.getUniqueName() != null) {
                    updateAttribute(keyWord, this.targetVertex.getUniqueName());
                }
            }
        }
    }