public static List<Property> diff(Shape oldShape,Shape newShape){
  List<Property> oldList=oldShape.getPropertyListInternal(false);
  List<Property> newList=newShape.getPropertyListInternal(false);
  List<Property> diff=new ArrayList<>(oldList);
  diff.addAll(newList);
  List<Property> intersection=new ArrayList<>(oldList);
  intersection.retainAll(newList);
  diff.removeAll(intersection);
  return diff;
}

public static List < Property > diff ( Shape oldShape , Shape newShape ) { List < Property > oldList = oldShape . getPropertyListInternal ( false ) ; List < Property > newList = newShape . getPropertyListInternal ( false ) ; List < Property > diff = new ArrayList < > ( oldList ) ; diff . addAll ( newList ) ; List < Property > intersection = new ArrayList < > ( oldList ) ; intersection . retainAll ( newList ) ; diff . removeAll ( intersection ) ; return diff ; }
find difference between two shapes .
