code: static <T extends Descriptor> T createFromUserView(final Class<T> userViewClass, String descriptorName)
          throws IllegalArgumentException {
          // Get the construction information
          final DescriptorConstructionInfo info = getDescriptorConstructionInfoForUserView(userViewClass);
  
          @SuppressWarnings("unchecked")
          final Class<? extends Descriptor> implClass = (Class<? extends Descriptor>) info.implClass;
          String name = info.defaultName;
          if (descriptorName != null) {
              name = descriptorName;
          }
  
          // Make model class
          final Descriptor descriptor = createFromImplModelType(implClass, name);
  
          // Return
          return userViewClass.cast(descriptor);
      }
docs: Creates a new {@link Descriptor} instance of the specified user view type. Will consult a configuration file
  visible to the {@link Thread} Context {@link ClassLoader} named "META-INF/services/$fullyQualfiedClassName" which
  should contain a key=value format with the keys {@link DescriptorInstantiator#KEY_IMPL_CLASS_NAME} and
  {@link DescriptorInstantiator#KEY_MODEL_CLASS_NAME}. The implementation class name must have a constructor
  accepting an instance of the model class, and the model class must have a no-arg constructor.
  
  @param <T>
  @param userViewClass
  @param descriptorName
  The name of the descriptor. If argument is null, the default name will be used.
  @return
  @throws IllegalArgumentException
  If the user view class was not specified