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

io.github.xinyangpan.cucumber.tool.DataTableGenerator Maven / Gradle / Ivy

package io.github.xinyangpan.cucumber.tool;

import java.beans.PropertyDescriptor;
import java.util.List;

import org.apache.commons.lang3.ArrayUtils;

import com.google.common.base.Defaults;
import com.google.common.base.Preconditions;

public class DataTableGenerator {

	public static void generate(Class targetClass, PropertyCollectingType propertyCollectingType, String... ignores) {
		Preconditions.checkNotNull(propertyCollectingType);
		List propertyDescriptors = propertyCollectingType.getPropertyDescriptors(targetClass);
		// 
		propertyDescriptors.stream()
			.filter(pd -> !ArrayUtils.contains(ignores, pd.getName()))
			.forEach(pd -> System.out.printf("|%s", pd.getName()));
		System.out.println("|");
		propertyDescriptors.stream()
			.filter(pd -> !ArrayUtils.contains(ignores, pd.getName()))
			.forEach(pd -> System.out.printf("|%s", Defaults.defaultValue(pd.getPropertyType())));
		System.out.println("|");
	}

	public static void generateMap(Class targetClass, PropertyCollectingType propertyCollectingType, String... ignores) {
		List propertyDescriptors = propertyCollectingType.getPropertyDescriptors(targetClass);
		// 
		propertyDescriptors.stream()
			.filter(pd -> !ArrayUtils.contains(ignores, pd.getName()))
			.forEach(pd -> {
				System.out.printf("|%s|%s|%n", pd.getName(), Defaults.defaultValue(pd.getPropertyType()));
			});
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy