class OutputColsHelper implements Serializable {

    public TableSchema getResultSchema() {
        int resultLength = reservedCols.length + outputColNames.length;
        String[] resultColNames = new String[resultLength];
        TypeInformation[] resultColTypes = new TypeInformation[resultLength];
        for (int i = 0; i < reservedCols.length; i++) {
            resultColNames[reservedColsPosInResult[i]] = inputColNames[reservedCols[i]];
            resultColTypes[reservedColsPosInResult[i]] = inputColTypes[reservedCols[i]];
        }
        for (int i = 0; i < outputColsPosInResult.length; i++) {
            resultColNames[outputColsPosInResult[i]] = outputColNames[i];
            resultColTypes[outputColsPosInResult[i]] = outputColTypes[i];
        }
        return new TableSchema(resultColNames, resultColTypes);
    }

    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);

}