code: @SuppressWarnings("unchecked")
      public A replace(Property property) {
          Data data = getData();
          Data replaced = data.replace(property);
          if (!replaced.isEmpty()) {
              return copy(delegate.put("data", Property.toArrayNode(replaced)));
          }
          return (A)this;
      }
docs: Replaces all properties with the same name as the supplied property
  @param property property to replace with
  @return a new copy of the template, or this if nothing was modified.