All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.teasoft.honey.osql.autogen.ColumnUtil Maven / Gradle / Ivy

The newest version!
/*
 * Copyright 2016-2021 the original author.All rights reserved.
 * Kingstar([email protected])
 * The license,see the LICENSE file.
 */

package org.teasoft.honey.osql.autogen;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;

import org.teasoft.honey.osql.core.HoneyUtil;

/**
 * @author Kingstar
 * @since  1.9.8
 */
public class ColumnUtil {
	
	private ColumnUtil() {}

	public static List getColumnList(String tableName) {
		GenBean bean = new GenBean(null);
		Table table = bean.getTableInfo(tableName);

		if (table == null || table.getColumnNames() == null) return Collections.emptyList();

		List columnNames = table.getColumnNames();
		List columnTypes = table.getColumnTypes(); //jdbcType
		Map commentMap = table.getCommentMap();
		List ynNulls = table.getYnNulls();
		String newTableName = table.getTableName();
		String tableComment=commentMap.get(newTableName);

		List list = new ArrayList<>();
		ColumnBean columnBean = null;

		for (int i = 0; i < columnNames.size(); i++) {
			String columnName = columnNames.get(i);
			String columnType = columnTypes.get(i);
			boolean ynNull = ynNulls.get(i) == null ? true : ynNulls.get(i);
			String comment = commentMap.get(columnName);

			columnBean = new ColumnBean();
			columnBean.setName(columnName);
			columnBean.setType(HoneyUtil.getFieldType(columnType)); //java type
			columnBean.setLabel(comment);
			columnBean.setYnnull(ynNull);
			columnBean.setTablename(newTableName);
			columnBean.setTablecomment(tableComment);
			columnBean.setYnkey(isKey(columnName,table.getPrimaryKeyNames()));

			list.add(columnBean);
		}

		return list;
	}
	
	private static boolean isKey(String col,Map primaryKeyMap) {
        if(primaryKeyMap==null || col==null) return false;
		return primaryKeyMap.get(col)!=null;
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy