code: public boolean setMiddleChild(N newChild) {
  		final N oldChild = this.middle;
  		if (oldChild == newChild) {
  			return false;
  		}
  
  		if (oldChild != null) {
  			oldChild.setParentNodeReference(null, true);
  			--this.notNullChildCount;
  			firePropertyChildRemoved(1, oldChild);
  		}
  
  		if (newChild != null) {
  			final N oldParent = newChild.getParentNode();
  			if (oldParent != this) {
  				newChild.removeFromParent();
  			}
  		}
  
  		this.middle = newChild;
  
  		if (newChild != null) {
  			newChild.setParentNodeReference(toN(), true);
  			++this.notNullChildCount;
  			firePropertyChildAdded(1, newChild);
  		}
  
  		return true;
  	}
docs: Set the middle child of this node.
  
  @param newChild the new child.
  @return <code>true</code> on success, otherwise <code>false</code>