docs: public static Pin getPin(Class<? extends PinProvider> pinProviderClass, Pin defaultPin, String ... args){
          // search all arguments for the "--pin" or "-p" option
          // we skip the last argument in the array because we expect a value defined after the option designator
          for(int index = 0; index < (args.length-1); index++){
              if(args[index].toLowerCase().equals("--pin") ||
                 args[index].toLowerCase().equals("-p")){
                  try {
                      int pinAddress = Integer.parseInt(args[index+1]);
                      Method m = pinProviderClass.getDeclaredMethod("getPinByAddress", int.class);
                      Object pin = m.invoke(null, pinAddress);
                      return (Pin)pin;
                  }
                  catch(Exception ex){
                      System.err.println(ex.getMessage());
                  }
              }
          }
          return defaultPin;
      }