Describe IvyDataModel here.
Here is a list of some element of the object model used to implement ivy.
a ModuleId identifies a module, with no revision information
a ModuleRevisionId identifies a revision of a module (which is itself identified by a ModuleId)
an ArtifactId identifies an Artifact of a module, in no particular revision
an ArtifactRevisionId identifies an Artifact of a module in a particular revision
an Artifact represents an artifact of a particular revision of a module, and is thus identified by an ArtifactRevisionId. It provides methods to ease access to data stored in the ArtifactRevisionId, such as !getModuleRevisionId, !getName, !getType, and so on. It basically corresponds to the artifacts elements in the publication section of an Ivy file, it thus offers configurations info for example.
a DefaultArtifact is one particular implementation of the Artifact interface
ArtifactInfo is an interface mainly used for LatestStrategy methods, to determine the latest revision among several ones. (NB: The name ArtifactInfo is not really well chosen)
ArtifactOrigin is used to store the original location of an Artifact