@Override
	public Collection<ColumnConstraint<?>> getColumnConstraints() {
		List<ColumnConstraint<?>> list = new ArrayList<>();

		// @formatter:off

		list.add(new AddressColumnConstraint(new AtMostColumnConstraint<>(UnsignedLongConstraintEditor.MAX_VALUE, new UnsignedLongConstraintEditorProvider())));
		list.add(new AddressColumnConstraint(new AtLeastColumnConstraint<>(BigInteger.ZERO, new UnsignedLongConstraintEditorProvider())));
		list.add(new AddressColumnConstraint(new InRangeColumnConstraint<>(BigInteger.ZERO, UnsignedLongConstraintEditor.MAX_VALUE, new UnsignedLongRangeEditorProvider())));
		list.add(new AddressColumnConstraint(new NotInRangeColumnConstraint<>(BigInteger.ZERO, UnsignedLongConstraintEditor.MAX_VALUE, new UnsignedLongRangeEditorProvider())));

		// @formatter:on

		return list;

	}
Class for providing Program related column type constraints.  Addresses get converted to
UnsignedLong (via BigInteger) and many others get converted to Strings.  For example, some
tables have a column whose type is "Symbol", but the column just displays the symbol's name.
So we created a number of "Symbol" constraints, but they are just adapters to the
various String constraints.
Ghidra/Features/Base/src/main/java/ghidra/base/widgets/table/constraint/provider/ProgramColumnConstraintProvider.java