def image(*args)
      raise ArgumentError, "Expected one or none arguments, got #{args.length}." unless [0, 1].include?(args.length)
      if args.length == 1
        return @associated_images[args.first]
      else
        # No argument used, therefore we return the first Image instance:
        return @images.first
      end
    end
def image(*args)
      raise ArgumentError, "Expected one or none arguments, got #{args.length}." unless [0, 1].include?(args.length)
      if args.length == 1
        return @associated_images[args.first]
      else
        # No argument used, therefore we return the first Image instance:
        return @images.first
      end
    end
Computes a hash code for this object.

 @note Two objects with the same attributes will have the same hash code.

 @return [Fixnum] the object's hash code

 Gives the Image instance mathcing the specified UID.

 @overload image(uid)
   @param [String] uid image UID
   @return [Image, NilClass] the matched image (or nil if no image is matched)
 @overload image
   @return [Image, NilClass] the first image of this instance (or nil if no child images exists)