code: @Nonnull
    @ReturnsMutableCopy
    public static <ELEMENTTYPE> ELEMENTTYPE [] getConcatenated (@Nullable final ELEMENTTYPE aHead,
                                                                @Nullable final ELEMENTTYPE [] aTailArray,
                                                                @Nonnull final Class <ELEMENTTYPE> aClass)
    {
      if (isEmpty (aTailArray))
        return newArraySingleElement (aHead, aClass);
  
      // Start concatenating
      final ELEMENTTYPE [] ret = newArray (aClass, 1 + aTailArray.length);
      ret[0] = aHead;
      System.arraycopy (aTailArray, 0, ret, 1, aTailArray.length);
      return ret;
    }
docs: Get a new array that combines the passed head and the array. The head
  element will be the first element of the created array.
  
  @param <ELEMENTTYPE>
  Array element type
  @param aHead
  The first element of the result array. If this element is
  <code>null</code> it will be inserted as such into the array!
  @param aTailArray
  The tail array. May be <code>null</code>.
  @param aClass
  The element class. Must be present, because in case both elements
  are <code>null</code> there would be no way to create a new array.
  May not be <code>null</code>.
  @return <code>null</code> if both array parameters are <code>null</code> -
  a non-<code>null</code> array with all elements in the correct
  order otherwise.