code: public static TableRef valueOf(String[] components) {
          if (components == null) {
              throw new IllegalArgumentException("Null argument not allowed.");
          }
          switch (components.length) {
              case 1:
                  return new TableRef(null, null, components[0]);
              case 2:
                  return new TableRef(null, components[0], components[1]);
              case 3:
                  return new TableRef(components[0], components[1], components[2]);
              default:
                  throw new IllegalArgumentException("String array has more than 3 elements.");
          }
      }
docs: Creates an instance from an array of table ref components,
  <p/>
  <p>The components should be (in order): catalog (optional), schema (optional), table name. if the catalog or schema
  component is an empty String, the catalog or schema will be set to <code>null</code>.</p>
  
  @param components the components of the reference.
  @return a new instance corresponding to the specified components.
  @throws IllegalArgumentException if the parameter is null, or has more than 3 elements.