code: public FedoraObject copy() {
          FedoraObject copy = new FedoraObject()
                  .pid(pid)
                  .state(state)
                  .label(label)
                  .ownerId(ownerId)
                  .createdDate(Util.copy(createdDate))
                  .lastModifiedDate(Util.copy(lastModifiedDate));
          for (Datastream ds: datastreams.values()) {
              copy.putDatastream(ds.copy());
          }
          return copy;
      }
docs: Creates an instance based on the current state of this one.
  
  @return a deep copy.