@Override public boolean test(ROW row) { for(K k : keys) { try { if (keySourceGetter.getValue(k, row) == null) return false; } catch (Exception e) { ErrorHelper.rethrow(e); } } return true; } };
@Override public boolean test(ROW row) { for(K k : keys) { try { if (keySourceGetter.getValue(k, row) == null) return false; } catch (Exception e) { ErrorHelper.rethrow(e); } } return true; } };
private Key singleValueKeys(S source) throws Exception { Object value; if (singleKeyAndPredicate.test(source)) { value = keySourceGetter.getValue(singleKeyAndPredicate.key, source); } else { return NOT_EQUALS; } return new SingleValueKey(value); }
private Key singleValueKeys(S source) throws Exception { Object value; if (singleKeyAndPredicate.test(source)) { value = keySourceGetter.getValue(singleKeyAndPredicate.key, source); } else { return NOT_EQUALS; } return new SingleValueKey(value); }
@Override public boolean test(S s) { try { boolean empty = true; for (KeyAndPredicate<S, K> keyAndPredicate : keys) { if (keyAndPredicate.test(s)) { empty = false; if (keySourceGetter.getValue(keyAndPredicate.key, s) != null) { return false; } } } return !empty; } catch (Exception e) { ErrorHelper.rethrow(e); throw new IllegalStateException(); } }
private Key multiValueKeys(S source) throws Exception { Object[] values = new Object[keyAndPredicates.length]; boolean empty = true; for (int i = 0; i < values.length; i++) { Object value = null; KeyAndPredicate<S, K> keyAndPredicate = keyAndPredicates[i]; if (keyAndPredicate.test(source)) { empty = false; value = keySourceGetter.getValue(keyAndPredicate.key, source); } values[i] = value; } if (empty) return NOT_EQUALS; return new MultiValueKey(values); }
@Override public boolean test(S s) { try { boolean empty = true; for (KeyAndPredicate<S, K> keyAndPredicate : keys) { if (keyAndPredicate.test(s)) { empty = false; if (keySourceGetter.getValue(keyAndPredicate.key, s) != null) { return false; } } } return !empty; } catch (Exception e) { ErrorHelper.rethrow(e); throw new IllegalStateException(); } }
private Key multiValueKeys(S source) throws Exception { Object[] values = new Object[keyAndPredicates.length]; boolean empty = true; for (int i = 0; i < values.length; i++) { Object value = null; KeyAndPredicate<S, K> keyAndPredicate = keyAndPredicates[i]; if (keyAndPredicate.test(source)) { empty = false; value = keySourceGetter.getValue(keyAndPredicate.key, source); } values[i] = value; } if (empty) return NOT_EQUALS; return new MultiValueKey(values); }
@Test public void testBreakDetector() throws Exception { KeySourceGetter<SampleFieldKey, Object> keySourceGetter = mock(KeySourceGetter.class); Object object = new Object(); SampleFieldKey key = new SampleFieldKey("k", 1); when(keySourceGetter.getValue(key, object)).thenReturn(new byte[] {1, 2}, new byte[] {1, 2}, new byte[] {1, 3}); KeyDefinition<Object, SampleFieldKey> keyDefinition = new KeyDefinition<Object, SampleFieldKey>( new KeyAndPredicate[] { new KeyAndPredicate<Object[], SampleFieldKey>(key, null) }, keySourceGetter, 0); BreakDetector<Object> breakDetector = new BreakDetector<Object>(keyDefinition); assertTrue(breakDetector.broke(object)); assertFalse(breakDetector.broke(object)); assertTrue(breakDetector.broke(object)); } }