Uploaded image for project: 'Spatial Information Systems'
  1. Spatial Information Systems
  2. SIS-355

Provide a "deep copy" operation on ISO 19115 metadata

VotersWatch issueWatchersLinkCloneUpdate Comment AuthorReplace String in CommentUpdate Comment VisibilityDelete Comments
    XMLWordPrintableJSON

Details

    • Task
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 0.3, 0.4, 0.5, 0.6, 0.7
    • 0.8
    • Metadata
    • None

    Description

      In Apache SIS, all implementation classes of ISO 19115 metadata types have a shallow copy constructor. However there is nothing for performing a deep copy (the clone() method is not for this purpose). While deep copy should be avoided, it is sometime useful for example when using an existing metadata as a template.

      Better alternative

      Note that the ModifiableMetadata.unmodifiable() method provides a better way to use a metadata as a template, as it returns a snapshot and allows the caller to continue to modify the original metadata object and create new snapshots. This approach allows sharing the children that have the same content, thus reducing memory usage. In comparison, deep copy operations unconditionally duplicate everything, no matter if it was needed or not. Nevertheless deep copies are still sometime useful, for example when we do not have the original ModifiableMetadata instance anymore.

      Attachments

        Issue Links

        Activity

          This comment will be Viewable by All Users Viewable by All Users
          Cancel

          People

            desruisseaux Martin Desruisseaux
            desruisseaux Martin Desruisseaux
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Slack

                Issue deployment