| Type: | Package |
| Title: | 'GeoNetwork' API R Interface |
| Version: | 0.8 |
| Date: | 2025-01-30 |
| Maintainer: | Emmanuel Blondel <emmanuel.blondel1@gmail.com> |
| Description: | Provides an R interface to the 'GeoNetwork' API (https://geonetwork-opensource.org/#api) allowing to upload and publish metadata in a 'GeoNetwork' web-application and expose it to OGC CSW. |
| Depends: | R (≥ 3.1.0), geometa (≥ 0.9), keyring |
| Imports: | R6, openssl, httr, XML, plyr |
| Suggests: | testthat, roxygen2 |
| License: | MIT + file LICENSE |
| URL: | https://github.com/eblondel/geonapi/wiki, https://geonetwork-opensource.org |
| BugReports: | https://github.com/eblondel/geonapi/issues |
| LazyLoad: | yes |
| RoxygenNote: | 7.3.1 |
| NeedsCompilation: | no |
| Packaged: | 2025-01-30 23:18:59 UTC; emman |
| Author: | Emmanuel Blondel |
| Repository: | CRAN |
| Date/Publication: | 2025-01-31 09:40:06 UTC |
'GeoNetwork' API R Interface
Description
Provides an R interface to the 'GeoNetwork' API (<https://geonetwork-opensource.org/#api>) allowing to upload and publish metadata in a 'GeoNetwork' web-application and expose it to OGC CSW Web-Services (Catalogue Service for the Web).
Author(s)
Emmanuel Blondel emmanuel.blondel1@gmail.com
See Also
Useful links:
Report bugs at https://github.com/eblondel/geonapi/issues
GNAbstractManager
Description
GNAbstractManager
GNAbstractManager
Format
R6Class object.
Value
Object of R6Class with methods for communication with
the REST API of a GeoNetwork instance.
Public fields
verbose.infoIf package info log messages have to be printed out
verbose.debugIf curl debug log messages have to be printed out
loggerTypethe type of logger
urlthe Base url of GeoNetwork
versionthe version of GeoNetwork. Handled as
GNVersionobjectlangthe language for Geonetwork service. Default is
engbasicAuthif basic auth is performed
Methods
Public methods
Method logger()
Provides log messages
Usage
GNAbstractManager$logger(type, text)
Arguments
typetype of log ("INFO", "WARN", "ERROR")
textthe log message text
Method INFO()
Provides INFO log messages
Usage
GNAbstractManager$INFO(text)
Arguments
textthe log message text
Method WARN()
Provides WARN log messages
Usage
GNAbstractManager$WARN(text)
Arguments
textthe log message text
Method ERROR()
Provides ERROR log messages
Usage
GNAbstractManager$ERROR(text)
Arguments
textthe log message text
Method new()
This method is used to instantiate a GNAbstractManager with the url of the
GeoNetwork and credentials to authenticate (user/pwd). By default,
the logger argument will be set to NULL (no logger).
The keyring_backend can be set to use a different backend for storing
the Geonetwork password/token with keyring (Default value is 'env').
The logger can be either NULL, "INFO" (with minimum logs), or "DEBUG" (for complete curl http calls logs)
Usage
GNAbstractManager$new( url, user = NULL, pwd = NULL, version, logger = NULL, keyring_backend = "env" )
Arguments
urlurl
useruser
pwdpwd
versionversion
loggerlogger
keyring_backendkeyring backend. Default is 'env'
Method getUrl()
Get URL
Usage
GNAbstractManager$getUrl()
Returns
an object of class character
Method getLang()
Get service language
Usage
GNAbstractManager$getLang()
Returns
an object of class character
Method login()
Log-ins. This methods (here abstract) attempts a connection to GeoNetwork API. Used internally by subclasses of GNAbstractManager to login Geonetwork.
Usage
GNAbstractManager$login(user, pwd)
Arguments
useruser
pwdpwd
Method getClassName()
Get class name
Usage
GNAbstractManager$getClassName()
Returns
an object of class character
Method clone()
The objects of this class are cloneable with this method.
Usage
GNAbstractManager$clone(deep = FALSE)
Arguments
deepWhether to make a deep clone.
Author(s)
Emmanuel Blondel <emmanuel.blondel1@gmail.com>
GNLegacyAPIManager
Description
GNLegacyAPIManager
GNLegacyAPIManager
Format
R6Class object.
Value
Object of R6Class with methods for communication with
the REST API of a GeoNetwork instance using the legacy API.
Super class
geonapi::GNAbstractManager -> GNLegacyAPIManager
Methods
Public methods
Inherited methods
Method new()
This method is used to instantiate a GNLegacyAPIManager with the url of the
GeoNetwork and credentials to authenticate (user/pwd).
The keyring_backend can be set to use a different backend for storing
the Geonetwork password/token with keyring (Default value is 'env').
The logger can be either NULL, "INFO" (with minimum logs), or "DEBUG" (for complete curl http calls logs)
Usage
GNLegacyAPIManager$new( url, user = NULL, pwd = NULL, version, logger = NULL, keyring_backend = "env" )
Arguments
urlurl
useruser
pwdpwd
versionversion
loggerlogger
keyring_backendkeyring backend. Default is 'env'
Method login()
#' This methods attempts a connection to GeoNetwork REST API. User internally
during initialization of GNLegacyAPIManager.
Usage
GNLegacyAPIManager$login(user, pwd)
Arguments
useruser
pwdpwd
Method getGroups()
Retrieves the list of user groups available in Geonetwork
Usage
GNLegacyAPIManager$getGroups()
Returns
an object of class data.frame
Method getCategories()
Retrieves the list of categories available in Geonetwork
Usage
GNLegacyAPIManager$getCategories()
Returns
an object of class data.frame
Method insertMetadata()
Inserts a metadata by file, XML object or geometa object of class
ISOMetadata or ISOFeatureCatalogue. If successful, returns the Geonetwork
metadata internal identifier (integer). Extra parameters geometa_validate (TRUE
by default) and geometa_inspire (FALSE by default) can be used with geometa objects
for perform ISO and INSPIRE validation respectively. In that case on object of class
geometa::INSPIREMetadataValidator, with a proper user API key, should be specified as
geometa_inspireValidator argument.
Usage
GNLegacyAPIManager$insertMetadata( xml = NULL, file = NULL, geometa = NULL, group, category = NULL, stylesheet = NULL, validate = FALSE, geometa_validate = TRUE, geometa_inspire = FALSE, geometa_inspireValidator = NULL )
Arguments
xmlxml object of class XMLInternalNode-class
filefile
geometageometa, object of class ISOMetadata or ISOFeatureCatalogue
groupgroup
categorycategory
stylesheetstylesheet
validatevalidate
geometa_validatevalidate geometa object
geometa_inspirevalidate geometa object vs. INSPIRE
geometa_inspireValidatorgeometa INSPIRE validator to use
Method setPrivConfiguration()
Set the privilege configuration for a metadata. 'id' is the metadata integer id. 'config' is an object of class "GNPrivConfiguration".
Usage
GNLegacyAPIManager$setPrivConfiguration(id, config)
Arguments
idid
configconfig
Method get()
Generic getter for metadata. Possible values for by are 'id', 'uuid'. Used internally only. The 'output' argument gives the type of output to return, with possible values "id", "metadata", "info".
Usage
GNLegacyAPIManager$get(id, by, output)
Arguments
idid
byby
outputoutput
Method getMetadataByID()
Get a metadata by Id
Usage
GNLegacyAPIManager$getMetadataByID(id)
Arguments
idid
Returns
an object of class ISOMetadata (ISO 19115) or ISOFeatureCatalogue
(ISO 19110) (from geometa package)
Method getMetadataByUUID()
Get a metadata by UUID
Usage
GNLegacyAPIManager$getMetadataByUUID(uuid)
Arguments
uuiduuid
Returns
an object of class ISOMetadata (ISO 19115) or ISOFeatureCatalogue
(ISO 19110) (from geometa package)
Method getInfoByID()
Get a metadata Info by Id.
Usage
GNLegacyAPIManager$getInfoByID(id)
Arguments
idid
Returns
an XML document object
Method getInfoByUUID()
Get a metadata Info by UUID
Usage
GNLegacyAPIManager$getInfoByUUID(uuid)
Arguments
uuiduuid
Returns
an XML document object
Method updateMetadata()
Updates a metadata by file, XML object or geometa object of class
'ISOMetadata' or 'ISOFeatureCatalogue'. Extra parameters geometa_validate (TRUE
by default) and geometa_inspire (FALSE by default) can be used with geometa objects
for perform ISO and INSPIRE validation respectively. In that case on object of class
geometa::INSPIREMetadataValidator, with a proper user API key, should be specified as
geometa_inspireValidator argument.
Usage
GNLegacyAPIManager$updateMetadata( id, xml = NULL, file = NULL, geometa = NULL, geometa_validate = TRUE, geometa_inspire = FALSE, geometa_inspireValidator = NULL )
Arguments
idmetadata id
xmlxml object of class XMLInternalNode-class
filefile
geometageometa, object of class ISOMetadata or ISOFeatureCatalogue
geometa_validatevalidate geometa object
geometa_inspirevalidate geometa object vs. INSPIRE
geometa_inspireValidatorgeometa INSPIRE validator to use
Method deleteMetadata()
Deletes metadata by Id.
Usage
GNLegacyAPIManager$deleteMetadata(id)
Arguments
idid
Returns
the id of the record deleted, NULL otherwise
Method deleteMetadataAll()
Deletes all metadata
Usage
GNLegacyAPIManager$deleteMetadataAll()
Method clone()
The objects of this class are cloneable with this method.
Usage
GNLegacyAPIManager$clone(deep = FALSE)
Arguments
deepWhether to make a deep clone.
Author(s)
Emmanuel Blondel <emmanuel.blondel1@gmail.com>
Examples
## Not run:
GNLegacyAPIManager$new("http://localhost:8080/geonetwork", "admin", "geonetwork", "3.0.0")
## End(Not run)
GeoNetwork REST API Manager
Description
The function GNManager$new will set-up the right Geonetwork
manager depending on the GeoNetwork version specified by the user. For the time-being,
GeoNetwork with version < 4 will be interfaced with the GeoNetwork legacy API (see detailed
documentation at GNLegacyAPIManager), while starting with GeoNetwork 3.2, the new
GeoNetwork OpenAPI will be used.
Format
R6Class object.
Value
Object of R6Class with methods for communication with
the API of a GeoNetwork instance.
Super class
geonapi::GNAbstractManager -> GNManager
Methods
Public methods
Inherited methods
Method new()
Initializes a GNManager
Usage
GNManager$new(url, user = NULL, pwd = NULL, version, logger = NULL)
Arguments
urlurl
useruser
pwdpwd
versionversion
loggerlogger
Method clone()
The objects of this class are cloneable with this method.
Usage
GNManager$clone(deep = FALSE)
Arguments
deepWhether to make a deep clone.
Author(s)
Emmanuel Blondel <emmanuel.blondel1@gmail.com>
Examples
## Not run:
GMManager$new("http://localhost:8080/geonetwork", "admin", "geonetwork", "3.0.0")
## End(Not run)
GNOpenAPIManager
Description
GNOpenAPIManager
GNOpenAPIManager
Format
R6Class object.
Value
Object of R6Class with methods for communication with
the REST API of a GeoNetwork instance using the legacy API.
Super class
geonapi::GNAbstractManager -> GNOpenAPIManager
Methods
Public methods
Inherited methods
Method new()
This method is used to instantiate a GNOpenAPIManager with the url of the
GeoNetwork and credentials to authenticate (user/pwd).
The keyring_backend can be set to use a different backend for storing
the Geonetwork password/token with keyring (Default value is 'env').
The logger can be either NULL, "INFO" (with minimum logs), or "DEBUG" (for complete curl http calls logs)
Usage
GNOpenAPIManager$new( url, user = NULL, pwd = NULL, version, logger = NULL, keyring_backend = "env" )
Arguments
urlurl
useruser
pwdpwd
versionversion
loggerlogger
keyring_backendkeyring backend
Method login()
This methods attempts a connection to GeoNetwork REST API. User internally
during initialization of GNLegacyAPIManager.
Usage
GNOpenAPIManager$login(user, pwd)
Arguments
useruser
pwdpwd
Method getGroups()
Retrieves the list of user groups available in Geonetwork
Usage
GNOpenAPIManager$getGroups()
Returns
an object of class data.frame
Method getTags()
Retrieves the list of tags (categories) available in Geonetwork
Usage
GNOpenAPIManager$getTags()
Returns
an object of class data.frame
Method getCategories()
Retrieves the list of categories (same as tags) available in Geonetwork
Usage
GNOpenAPIManager$getCategories()
Returns
an object of class data.frame
Method getMetadataByUUID()
Get a metadata by UUID.
Usage
GNOpenAPIManager$getMetadataByUUID( uuid, addSchemaLocation = TRUE, increasePopularity = TRUE, approved = TRUE )
Arguments
uuiduuid
addSchemaLocationadd schema location. Default is
TRUEincreasePopularityincrease popularity. Default is
TRUEapprovedapproved
Returns
Returns an object of class ISOMetadata (ISO 19115)
or ISOFeatureCatalogue (ISO 19110) (from geometa package)
Method insertRecord()
Inserts a record by file, XML object or geometa object of class ISOMetadata or ISOFeatureCatalogue.
Extra parameters related to geometa objects: geometa_validate (TRUE by default) and geometa_inspire
(FALSE by default) can be used to perform ISO and INSPIRE validation respectively. In that case on object of class
geometa::INSPIREMetadataValidator, with a proper user API key, should be specified as geometa_inspireValidator
argument.
Usage
GNOpenAPIManager$insertRecord( xml = NULL, file = NULL, geometa = NULL, metadataType = "METADATA", uuidProcessing = "NOTHING", group, category = NULL, rejectIfInvalid = FALSE, publishToAll = TRUE, transformWith = "_none_", schema = NULL, extra = NULL, geometa_validate = TRUE, geometa_inspire = FALSE, geometa_inspireValidator = NULL )
Arguments
xmlobject of class XMLInternalNode-class
filefile
geometageometa object of class ISOMetadata or ISOFeatureCatalogue
metadataTypemetadata type. By default
METADATAuuidProcessingUUID processing. By default
NOTHING. Other possible value:OVERWRITEgroupgroup
categorycategory
rejectIfInvalidreject if invalid. Default
FALSEpublishToAllpublish to all. Default
TRUEtransformWithtransform with. Default is
_none_schemaschema
extraextra
geometa_validatevalidate geometa object
geometa_inspirevalidate geometa object vs. INSPIRE
geometa_inspireValidatorgeometa INSPIRE validator to use
Method insertMetadata()
Inserts a metadata by file, XML object or geometa object of class ISOMetadata or ISOFeatureCatalogue.
Extra parameters related to geometa objects: geometa_validate (TRUE by default) and geometa_inspire
(FALSE by default) can be used to perform ISO and INSPIRE validation respectively. In that case on object of class
geometa::INSPIREMetadataValidator, with a proper user API key, should be specified as
geometa_inspireValidator argument.
Usage
GNOpenAPIManager$insertMetadata( xml = NULL, file = NULL, geometa = NULL, metadataType = "METADATA", uuidProcessing = "NOTHING", group, category = NULL, rejectIfInvalid = FALSE, publishToAll = TRUE, transformWith = "_none_", schema = NULL, extra = NULL, geometa_validate = TRUE, geometa_inspire = FALSE, geometa_inspireValidator = NULL )
Arguments
xmlobject of class XMLInternalNode-class
filefile
geometageometa object of class ISOMetadata or ISOFeatureCatalogue
metadataTypemetadata type. By default
METADATAuuidProcessingUUID processing. By default
NOTHING. Other possible value:OVERWRITEgroupgroup
categorycategory
rejectIfInvalidreject if invalid. Default
FALSEpublishToAllpublish to all. Default
TRUEtransformWithtransform with. Default is
_none_schemaschema
extraextra
geometa_validatevalidate geometa object
geometa_inspirevalidate geometa object vs. INSPIRE
geometa_inspireValidatorgeometa INSPIRE validator to use
Method updateMetadata()
Inserts a metadata by file, XML object or geometa object of class ISOMetadata or ISOFeatureCatalogue.
Extra parameters related to geometa objects: geometa_validate (TRUE by default) and geometa_inspire
(FALSE by default) can be used to perform ISO and INSPIRE validation respectively. In that case on object of class
geometa::INSPIREMetadataValidator, with a proper user API key, should be specified as
geometa_inspireValidator argument.
Usage
GNOpenAPIManager$updateMetadata( xml = NULL, file = NULL, geometa = NULL, metadataType = "METADATA", group, category = NULL, rejectIfInvalid = FALSE, publishToAll = TRUE, transformWith = "_none_", schema = NULL, extra = NULL, geometa_validate = TRUE, geometa_inspire = FALSE, geometa_inspireValidator = NULL )
Arguments
xmlobject of class XMLInternalNode-class
filefile
geometageometa object of class ISOMetadata or ISOFeatureCatalogue
metadataTypemetadata type. By default
METADATAgroupgroup
categorycategory
rejectIfInvalidreject if invalid. Default
FALSEpublishToAllpublish to all. Default
TRUEtransformWithtransform with. Default is
_none_schemaschema
extraextra
geometa_validatevalidate geometa object
geometa_inspirevalidate geometa object vs. INSPIRE
geometa_inspireValidatorgeometa INSPIRE validator to use
Method deleteMetadata()
Deletes a metadata by ID
Usage
GNOpenAPIManager$deleteMetadata(id, withBackup = TRUE)
Arguments
idid
withBackupproceed with backup. Default is
TRUE
Method uploadAttachment()
Uploads attachment
Usage
GNOpenAPIManager$uploadAttachment( id, file, visibility = "public", approved = TRUE )
Arguments
idmetadata identifier
filefile to upload
visibilitypublic or private
approvedobject of class
logical
Returns
a named list of the uploaded attachment, including the url, size, id and type, NULL otherwise
Method publishThumbnail()
Publishes thumbnail based on URL
Usage
GNOpenAPIManager$publishThumbnail(id, url, desc = "")
Arguments
idmetadata identifier
urlthumbnail URL
descthumbnail description
Returns
TRUE if published, FALSE otherwise
Method doiCheckPreConditions()
Checks pre-conditions to publish DOI
Usage
GNOpenAPIManager$doiCheckPreConditions(id)
Arguments
idmetadata identifier
Returns
TRUE if DOI pre-conditions are fulfiled, FALSE otherwise
Method createDOI()
Submit a record to the Datacite metadata store in order to create a DOI.
Usage
GNOpenAPIManager$createDOI(id)
Arguments
idmetadata identifier
Returns
TRUE if metadata record has been submitted with DOI created, FALSE otherwise
Method deleteDOI()
Remove a DOI (this is not recommended, DOI are supposed to be persistent once created. This is mainly here for testing).
Usage
GNOpenAPIManager$deleteDOI(id)
Arguments
id
Method clone()
The objects of this class are cloneable with this method.
Usage
GNOpenAPIManager$clone(deep = FALSE)
Arguments
deepWhether to make a deep clone.
Author(s)
Emmanuel Blondel <emmanuel.blondel1@gmail.com>
Examples
## Not run:
GNOpenAPIManager$new("http://localhost:8080/geonetwork", "admin", "geonetwork", "4.0.5")
## End(Not run)
A GeoNetwork privilege configuration
Description
This class is an utility to configure privileges
Format
R6Class object.
Details
GeoNetwork REST API - GeoNetwork privilege configuration
Value
Object of R6Class for modelling a GeoNetwork Privilege configuration
Public fields
groupgroup
privilegesprivileges
Methods
Public methods
Method new()
Initializes a GNPriv object
Usage
GNPriv$new(group, privileges)
Arguments
groupgroup
privilegesprivileges
Method clone()
The objects of this class are cloneable with this method.
Usage
GNPriv$clone(deep = FALSE)
Arguments
deepWhether to make a deep clone.
Author(s)
Emmanuel Blondel <emmanuel.blondel1@gmail.com>
Examples
## Not run:
priv <- GNPriv$new(group="all", privileges=c("view","dynamic","featured"))
## End(Not run)
A GeoNetwork privilege configuration
Description
This class is an utility to configure privileges
Format
R6Class object.
Details
GeoNetwork REST API - GeoNetwork privilege configuration
Value
Object of R6Class for modelling a GeoNetwork Privilege configuration
Public fields
privilegesprivileges
Methods
Public methods
Method new()
Initializes an object of class GNPrivConfiguration
Usage
GNPrivConfiguration$new()
Method setPrivileges()
Sets the operation privileges for a particular group. Allowed group values are "guest","intranet" and "all". Allowed values for operation privileges are "view", "download", "editing", "notify", "dynamic" and "featured".
Usage
GNPrivConfiguration$setPrivileges(group, privileges)
Arguments
groupgroup
privilegesprivileges
Method clone()
The objects of this class are cloneable with this method.
Usage
GNPrivConfiguration$clone(deep = FALSE)
Arguments
deepWhether to make a deep clone.
Author(s)
Emmanuel Blondel <emmanuel.blondel1@gmail.com>
Examples
## Not run:
pcfg <- GNPrivConfiguration$new()
pcfg$setPrivileges("all", c("view","dynamic","featured"))
## End(Not run)
GeoNetwork REST API REST Request
Description
GeoNetwork REST API REST Request
GeoNetwork REST API REST Request
Format
R6Class object.
Value
Object of R6Class for modelling a GeoNetwork REST request
Public fields
rootNameroot name
childrenchildren
Methods
Public methods
Method new()
Initializes a GNRESTRequest
Usage
GNRESTRequest$new(...)
Arguments
...any parameter to pass to the request
Method setChild()
Set child
Usage
GNRESTRequest$setChild(key, value)
Arguments
keykey
valuevalue
Method encode()
Encodes request as XML
Usage
GNRESTRequest$encode()
Returns
an object of class character representing the XML
Method clone()
The objects of this class are cloneable with this method.
Usage
GNRESTRequest$clone(deep = FALSE)
Arguments
deepWhether to make a deep clone.
Author(s)
Emmanuel Blondel <emmanuel.blondel1@gmail.com>
GeoNetwork REST API Manager Utils
Description
GeoNetwork REST API Manager Utils
GeoNetwork REST API Manager Utils
Format
R6Class object.
Value
Object of R6Class with static util methods for communication
with the REST API of a GeoNetwork instance.
Static methods
getUserAgent()-
This method is used to get the user agent for performing GeoNetwork API requests. Here the user agent will be compound by geonapi package name and version.
getUserToken(user, pwd)-
This method is used to get the user authentication token for performing GeoNetwork API requests. Token is given a Base64 encoded string.
GET(url, path, token, verbose)-
This method performs a GET request for a given
pathto GeoNetwork REST API PUT(url, path, token, filename, contentType, verbose)-
This method performs a PUT request for a given
pathto GeoNetwork REST API, to upload a file of namefilenamewith givencontentType POST(url, path, token, content, contentType, encode, verbose)-
This method performs a POST request for a given
pathto GeoNetwork REST API, to post content of givencontentType DELETE(url, path, token, verbose)-
This method performs a DELETE request for a given GeoNetwork resource identified by a
pathin GeoNetwork REST API parseResponseXML(req)-
Convenience method to parse XML response from GeoNetwork REST API. Although package httr suggests the use of xml2 package for handling XML, geonapi still relies on the package XML. Response from httr is retrieved as text, and then parsed as XML 'xmlParse' function.
getPayloadXML(obj)-
Convenience method to create payload XML to send to GeoNetwork.
Methods
Public methods
Method clone()
The objects of this class are cloneable with this method.
Usage
GNUtils$clone(deep = FALSE)
Arguments
deepWhether to make a deep clone.
Author(s)
Emmanuel Blondel <emmanuel.blondel1@gmail.com>
A GeoNetwork version
Description
This class is an utility wrap the Geonetwork version
Format
R6Class object.
Details
GeoNetwork REST API - GeoNetwork Version
Value
Object of R6Class for modelling a GeoNetwork version
Public fields
versionversion
valuevalue
Methods
Public methods
Method new()
Initializes an object of class GNVersion
Usage
GNVersion$new(version)
Arguments
versionversion
Method lowerThan()
Compares to a version and returns TRUE if it is lower, FALSE otherwise
Usage
GNVersion$lowerThan(version)
Arguments
versionversion
Returns
TRUE if lower, FALSE otherwise
Method greaterThan()
Compares to a version and returns TRUE if it is greater, FALSE otherwise
Usage
GNVersion$greaterThan(version)
Arguments
versionversion
Returns
TRUE if lower, FALSE otherwise
Method equalTo()
Compares to a version and returns TRUE if it is equal, FALSE otherwise
Usage
GNVersion$equalTo(version)
Arguments
versionversion
Returns
TRUE if lower, FALSE otherwise
Method clone()
The objects of this class are cloneable with this method.
Usage
GNVersion$clone(deep = FALSE)
Arguments
deepWhether to make a deep clone.
Author(s)
Emmanuel Blondel <emmanuel.blondel1@gmail.com>
Examples
## Not run:
version <- GNVersion$new("2.6.4")
## End(Not run)