CombinedRecordMatcher extends AbstractRecordMatcher { @Override public boolean setAttributeMatchers(IAttributeMatcher[] attrMatchers) { return false; }  @Override double getMatchingWeight(String[] record1, String[] record2); boolean add(IRecordMatcher matcher); @Override String getLabeledAttributeMatchWeights(); @Override boolean setAttributeMatchers(IAttributeMatcher[] attrMatchers); @Override boolean setAttributeWeights(double[] weights); @Override double getRecordMatchThreshold(); @Override String toString(); @Override MatchResult getMatchingWeight(Record record1, Record record2); IRecordMatcher getLastPositiveMatcher(); List<IRecordMatcher> getMatchers();  }
@Test public void testSetAttributeMatchers() { for (RecordMatcherType type : RecordMatcherType.values()) { if (RecordMatcherType.T_SwooshAlgorithm.equals(type)) { continue; } IRecordMatcher recMatcher = RecordMatcherFactory.createMatcher(type, ATTRIBUTEMATCHERALGORITHMS, ATTRIBUTEWEIGHTS_1); if (recMatcher == null) { continue; } checkAttributeMatching(1.0d, recMatcher); assertTrue(recMatcher.setAttributeWeights(new double[] { 3, 2, 0, 3 })); CombinedRecordMatcher combMatcher = RecordMatcherFactory.createCombinedRecordMatcher(); checkAttributeMatching(0.0d, combMatcher); assertFalse("the attribute weights of a combined matcher cannot be modified", combMatcher.setAttributeWeights(new double[] { 3, 2, 0, 3 })); combMatcher.add(recMatcher); assertFalse("the attribute weights of a combined matcher cannot be modified", combMatcher.setAttributeWeights(new double[] { 3, 2, 0, 3 })); } }