class OutputColsHelper implements Serializable {

	public Row getResultRow(Row input, Row output) {
		int numOutputs = outputColsPosInResult.length;
		if (output.getArity() != numOutputs) {
			throw new IllegalArgumentException("Invalid output size");
		}
		int resultLength = reservedCols.length + outputColNames.length;
		Row result = new Row(resultLength);
		for (int i = 0; i < reservedCols.length; i++) {
			result.setField(reservedColsPosInResult[i], input.getField(reservedCols[i]));
		}
		for (int i = 0; i < numOutputs; i++) {
			result.setField(outputColsPosInResult[i], output.getField(i));
		}
		return result;
	}

	public  OutputColsHelper(TableSchema inputSchema, String outputColName, TypeInformation<?> outputColType);
	public  OutputColsHelper(TableSchema inputSchema, String outputColName, TypeInformation<?> outputColType,
							String[] reservedColNames);
	public  OutputColsHelper(TableSchema inputSchema, String[] outputColNames, TypeInformation<?>[] outputColTypes);
	public  OutputColsHelper(TableSchema inputSchema, String[] outputColNames, TypeInformation<?>[] outputColTypes,
							String[] reservedColNames);

}