code: public static final <T> T applyList(Object bean, String property, BiFunction<Class<T>,String,T> factory)
      {
          int addIdx = property.lastIndexOf(Add);
          if (addIdx != -1)
          {
              String hint = property.substring(addIdx+1);
              return addList(bean, property.substring(0, addIdx), hint, factory);
          }
          else
          {
              int assignIdx = property.lastIndexOf(Assign);
              if (assignIdx != -1)
              {
                  String hint = property.substring(assignIdx+1);
                  return assignList(bean, property.substring(0, assignIdx), hint, factory);
              }
              else
              {
                  if (property.endsWith(Remove))
                  {
                      return (T)removeList(bean, property.substring(0, property.length()-1));
                  }
                  else
                  {
                      return null;
                  }
              }
          }
      }
docs: Applies bean action by using given factory
  <p>Bean actions are:
  <p>List item property remove by adding '#' to the end of pattern.
  <p>E.g. list.3- - list.remove(3)
  <p>List item creation to the end of the list.
  <p>E.g. list+ - add(factory.get(cls, null))
  <p>E.g. list+hint - add(factory.get(cls, hint))
  @param <T>
  @param bean
  @param property
  @param factory
  @return true if pattern was applied