code: private void setFunctionArgs(final List<BELObject> args) {
          if (args != null) {
              this.functionArgs = args;
              this.terms = new ArrayList<Term>();
              this.parameters = new ArrayList<Parameter>();
              for (final BELObject arg : functionArgs) {
                  if (arg instanceof Term) {
                      terms.add((Term) arg);
                  } else if (arg instanceof Parameter) {
                      parameters.add((Parameter) arg);
                  } else {
                      String err = arg.getClass().getName();
                      err = err.concat(" is not a valid function argument");
                      throw new UnsupportedOperationException(err);
                  }
              }
          } else {
              this.functionArgs = null;
              this.terms = null;
              this.parameters = null;
          }
      }
docs: Sets the function arguments, terms, and parameters. A null argument will
  result in null function arguments, terms, and parameters.
  
  @param args List of BEL objects, or null
  @throws UnsupportedOperationException Thrown if a {@link BELObject}
  within {@code args} is not a {@link Term} or {@link Parameter}