private void addFinal(Object[] stacks){
  Object[] input=new Object[inputSize], output=new Object[outputSize];
  for (int i=0; i < stacks.length; i++) {
    if (i < inputSize) {
      input[i]=stacks[i];
    }
 else     if (!(i - inputSize > outputSize)) {
      output[i - inputSize]=stacks[i];
    }
 else {
      throw new RuntimeException("Recipe is too big!");
    }
  }
  addRecipe(input,output);
}

private void addFinal ( Object [ ] stacks ) { Object [ ] input = new Object [ inputSize ] , output = new Object [ outputSize ] ; for ( int i = 0 ; i < stacks . length ; i ++ ) { if ( i < inputSize ) { input [ i ] = stacks [ i ] ; } else if ( ! ( i - inputSize > outputSize ) ) { output [ i - inputSize ] = stacks [ i ] ; } else { throw new RuntimeException ( "Recipe is too big!" ) ; } } addRecipe ( input , output ) ; }
separates the recipe into an input and output list
