@@ -1722,6 +1722,8 @@ private void deletedDirective(EditOperation editOperation) {
17221722 }
17231723
17241724 private void argumentDeleted (EditOperation editOperation ) {
1725+ // Note: sometimes the edit operation is the argument vertex itself being deleted
1726+ // Other times, it is the edge to the argument type being deleted
17251727 Vertex deletedArgument = editOperation .getSourceVertex ();
17261728 if (deletedArgument == null ) {
17271729 deletedArgument = editOperation .getSourceEdge ().getTo ();
@@ -1736,13 +1738,25 @@ private void argumentDeleted(EditOperation editOperation) {
17361738 if (isObjectDeleted (object .getName ())) {
17371739 return ;
17381740 }
1741+ if (isFieldDeletedFromExistingObject (object .getName (), field .getName ())) {
1742+ return ;
1743+ }
1744+ if (isArgumentDeletedFromExistingObjectField (object .getName (), field .getName (), deletedArgument .getName ())) {
1745+ return ;
1746+ }
17391747 getObjectModification (object .getName ()).getDetails ().add (new ObjectFieldArgumentDeletion (field .getName (), deletedArgument .getName ()));
17401748 } else {
17411749 assertTrue (fieldsContainerForField .isOfType (SchemaGraph .INTERFACE ));
17421750 Vertex interfaze = fieldsContainerForField ;
17431751 if (isInterfaceDeleted (interfaze .getName ())) {
17441752 return ;
17451753 }
1754+ if (isFieldDeletedFromExistingInterface (interfaze .getName (), field .getName ())) {
1755+ return ;
1756+ }
1757+ if (isArgumentDeletedFromExistingInterfaceField (interfaze .getName (), field .getName (), deletedArgument .getName ())) {
1758+ return ;
1759+ }
17461760 getInterfaceModification (interfaze .getName ()).getDetails ().add (new InterfaceFieldArgumentDeletion (field .getName (), deletedArgument .getName ()));
17471761 }
17481762 } else {
@@ -1751,9 +1765,11 @@ private void argumentDeleted(EditOperation editOperation) {
17511765 if (isDirectiveDeleted (directive .getName ())) {
17521766 return ;
17531767 }
1768+ if (isArgumentDeletedFromExistingDirective (directive .getName (), deletedArgument .getName ())) {
1769+ return ;
1770+ }
17541771 getDirectiveModification (directive .getName ()).getDetails ().add (new DirectiveArgumentDeletion (deletedArgument .getName ()));
17551772 }
1756-
17571773 }
17581774
17591775 private void argumentAdded (EditOperation editOperation ) {
@@ -1772,13 +1788,25 @@ private void argumentAdded(EditOperation editOperation) {
17721788 if (isObjectAdded (object .getName ())) {
17731789 return ;
17741790 }
1791+ if (isFieldNewForExistingObject (object .getName (), field .getName ())) {
1792+ return ;
1793+ }
1794+ if (isArgumentNewForExistingObjectField (object .getName (), field .getName (), addedArgument .getName ())) {
1795+ return ;
1796+ }
17751797 getObjectModification (object .getName ()).getDetails ().add (new ObjectFieldArgumentAddition (field .getName (), addedArgument .getName ()));
17761798 } else {
17771799 assertTrue (fieldsContainerForField .isOfType (SchemaGraph .INTERFACE ));
17781800 Vertex interfaze = fieldsContainerForField ;
17791801 if (isInterfaceAdded (interfaze .getName ())) {
17801802 return ;
17811803 }
1804+ if (isFieldNewForExistingInterface (interfaze .getName (), field .getName ())) {
1805+ return ;
1806+ }
1807+ if (isArgumentNewForExistingInterfaceField (interfaze .getName (), field .getName (), addedArgument .getName ())) {
1808+ return ;
1809+ }
17821810 getInterfaceModification (interfaze .getName ()).getDetails ().add (new InterfaceFieldArgumentAddition (field .getName (), addedArgument .getName ()));
17831811 }
17841812 } else {
@@ -1787,6 +1815,9 @@ private void argumentAdded(EditOperation editOperation) {
17871815 if (isDirectiveAdded (directive .getName ())) {
17881816 return ;
17891817 }
1818+ if (isArgumentNewForExistingDirective (directive .getName (), addedArgument .getName ())) {
1819+ return ;
1820+ }
17901821 getDirectiveModification (directive .getName ()).getDetails ().add (new DirectiveArgumentAddition (addedArgument .getName ()));
17911822 }
17921823 }
0 commit comments