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}