### Question:
GetHBase extends AbstractProcessor implements VisibilityFetchSupport { @Override protected Collection<ValidationResult> customValidate(ValidationContext validationContext) { final String columns = validationContext.getProperty(COLUMNS).getValue(); final String filter = validationContext.getProperty(FILTER_EXPRESSION).getValue(); final List<ValidationResult> problems = new ArrayList<>(); if (!StringUtils.isBlank(columns) && !StringUtils.isBlank(filter)) { problems.add(new ValidationResult.Builder() .subject(FILTER_EXPRESSION.getDisplayName()) .input(filter).valid(false) .explanation("a filter expression can not be used in conjunction with the Columns property") .build()); } return problems; }  @Override Set<Relationship> getRelationships(); @Override void onPropertyModified(final PropertyDescriptor descriptor, final String oldValue, final String newValue); @OnScheduled void parseColumns(final ProcessContext context); @OnPrimaryNodeStateChange void onPrimaryNodeChange(final PrimaryNodeState newState); @OnRemoved void onRemoved(final ProcessContext context); @Override void onTrigger(final ProcessContext context, final ProcessSession session);  }### Answer:
@Test public void testCustomValidate() throws CharacterCodingException { runner.setProperty(GetHBase.FILTER_EXPRESSION, "PrefixFilter ('Row') AND PageFilter (1) AND FirstKeyOnlyFilter ()"); runner.assertValid(); runner.setProperty(GetHBase.COLUMNS, "colA"); runner.assertNotValid(); }