code: public Datastream copy() {
          Datastream copy = new Datastream(id)
                  .state(state)
                  .controlGroup(controlGroup)
                  .versionable(versionable);
          for (DatastreamVersion version: versions) {
              copy.versions().add(version.copy());
          }
          return copy;
      }
docs: Creates an instance based on the current state of this one.
  
  @return a deep copy.