001package com.nimbusds.infinispan.persistence.sql; 002 003 004import java.util.LinkedList; 005import java.util.List; 006 007import org.jooq.DSLContext; 008import org.jooq.Result; 009import org.jooq.Table; 010 011 012/** 013 * SQL table utilities. 014 */ 015public class SQLTableUtils { 016 017 018 /** 019 * Gets the column names of the specified table. 020 * 021 * @param table The table. 022 * @param dslContext The DSL context. 023 * 024 * @return The column names, empty list if none. 025 */ 026 public static List<String> getColumnNames(final Table<?> table, final DSLContext dslContext) { 027 028 Result result = dslContext.selectFrom(table).limit(0).fetch(); 029 030 List<String> columnNames = new LinkedList<>(); 031 032 for (int i=0; i < result.fields().length; i++) 033 columnNames.add(result.fields()[i].getName()); 034 035 return columnNames; 036 } 037 038 039 private SQLTableUtils(){} 040}