From 5bfcf88196ceff9562ddf4569d09dcf83754fa3d Mon Sep 17 00:00:00 2001
From: Jesse Sightler <jesse.sightler@gmail.com>
Date: Thu, 4 Jan 2018 15:46:20 -0500
Subject: [PATCH] Allow the value to a setter to be null

This simply unlinks the vertex in the case where the passed in vertex is null. This is similar to the frames behavior.
---
 .../annotation/AdjacencyMethodHandler.java           | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/syncleus/ferma/framefactories/annotation/AdjacencyMethodHandler.java b/src/main/java/com/syncleus/ferma/framefactories/annotation/AdjacencyMethodHandler.java
index 39486bde..4ae6fdd2 100644
--- a/src/main/java/com/syncleus/ferma/framefactories/annotation/AdjacencyMethodHandler.java
+++ b/src/main/java/com/syncleus/ferma/framefactories/annotation/AdjacencyMethodHandler.java
@@ -645,16 +645,20 @@ public class AdjacencyMethodHandler extends AbstractMethodHandler {
             switch (direction) {
                 case BOTH:
                     thiz.unlinkBoth(null, label);
-                    thiz.getGraph().addFramedEdge(vertexFrame, thiz, label);
-                    thiz.getGraph().addFramedEdge(thiz, vertexFrame, label);
+                    if (vertexFrame != null) {
+                        thiz.getGraph().addFramedEdge(vertexFrame, thiz, label);
+                        thiz.getGraph().addFramedEdge(thiz, vertexFrame, label);
+                    }
                     break;
                 case IN:
                     thiz.unlinkIn(null, label);
-                    thiz.getGraph().addFramedEdge(vertexFrame, thiz, label);
+                    if (vertexFrame != null)
+                        thiz.getGraph().addFramedEdge(vertexFrame, thiz, label);
                     break;
                 case OUT:
                     thiz.unlinkOut(null, label);
-                    thiz.getGraph().addFramedEdge(thiz, vertexFrame, label);
+                    if (vertexFrame != null)
+                        thiz.getGraph().addFramedEdge(thiz, vertexFrame, label);
                     break;
                 default:
                     throw new IllegalStateException(method.getName() + " is annotated with a direction other than BOTH, IN, or OUT.");
-- 
GitLab