code: @Override
  	@Pure
  	public UUID getUUID() {
  		if (this.uid == null) {
  			this.uid = UUID.randomUUID();
  		}
  		return this.uid;
  	}
docs: Replies an unique identifier for element.
  
  <p>A Unique IDentifier (UID) must be unique for all the object instances.
  
  <p>The following code is always true (where the arguments of the
  constructors are the list of points of the polyline). It illustrates
  that for two elements with the same geo-localized points, they
  have the same geo-location identifier (Geo-Id) and they
  have different unique ientifier (Uid):
  <pre><code>
  GISElement obj1 = new MapPolyline(100,10,200,30,300,4);
  GISElement obj2 = new MapPolyline(100,10,200,30,300,4);
  assert( obj1.getGeoId().equals(obj2.getGeoId()) );
  assert( obj2.getGeoId().equals(obj1.getGeoId()) );
  assert( ! obj1.getUid().equals(obj2.getUid()) );
  assert( ! obj2.getUid().equals(obj1.getUid()) );
  </code></pre>
  
  @return an identifier
  @since 4.0