Changeset 3053
- Timestamp:
- 01/18/12 19:49:37 (4 months ago)
- Location:
- AnalyzerBeans/trunk
- Files:
-
- 15 edited
- 2 moved
-
cli/src/test/java/org/eobjects/analyzer/cli/MainTest.java (modified) (1 diff)
-
core/src/main/java/org/eobjects/analyzer/beans/filter/NullCheckFilter.java (moved) (moved from AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/beans/filter/NotNullFilter.java) (5 diffs)
-
core/src/main/java/org/eobjects/analyzer/descriptors/AnnotationBasedFilterBeanDescriptor.java (modified) (4 diffs)
-
core/src/main/java/org/eobjects/analyzer/util/ReflectionUtils.java (modified) (2 diffs)
-
core/src/test/java/org/eobjects/analyzer/beans/filter/NullCheckFilterTest.java (moved) (moved from AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/beans/filter/NotNullFilterTest.java) (4 diffs)
-
core/src/test/java/org/eobjects/analyzer/descriptors/AnnotationBasedFilterDescriptorTest.java (modified) (2 diffs)
-
core/src/test/java/org/eobjects/analyzer/job/builder/AnalysisJobBuilderTest.java (modified) (6 diffs)
-
core/src/test/java/org/eobjects/analyzer/job/builder/MergedOutcomeJobBuilderTest.java (modified) (5 diffs)
-
core/src/test/java/org/eobjects/analyzer/job/runner/RowProcessingConsumerSorterTest.java (modified) (7 diffs)
-
core/src/test/java/org/eobjects/analyzer/job/runner/RowProcessingMetricsImplTest.java (modified) (3 diffs)
-
core/src/test/java/org/eobjects/analyzer/job/runner/RowProcessingQueryOptimizerTest.java (modified) (4 diffs)
-
core/src/test/java/org/eobjects/analyzer/job/tasks/ConsumeRowTaskTest.java (modified) (3 diffs)
-
env/xml-config/src/test/java/org/eobjects/analyzer/job/JaxbJobWriterTest.java (modified) (3 diffs)
-
env/xml-config/src/test/resources/JaxbJobWriterTest-file3.xml (modified) (1 diff)
-
env/xml-config/src/test/resources/JaxbJobWriterTest-file4.xml (modified) (1 diff)
-
env/xml-config/src/test/resources/JaxbJobWriterTest-file5.xml (modified) (1 diff)
-
env/xml-config/src/test/resources/JaxbJobWriterTest-file6.xml (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
AnalyzerBeans/trunk/cli/src/test/java/org/eobjects/analyzer/cli/MainTest.java
r2817 r3053 138 138 assertEquals("Filters:", lines[0]); 139 139 140 assertTrue(out.indexOf("name: N ot null") != -1);141 assertTrue(out.indexOf("- Outcome category: VALID") != -1);140 assertTrue(out.indexOf("name: Null check") != -1); 141 assertTrue(out.indexOf("- Outcome category: NOT_NULL") != -1); 142 142 } 143 143 -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/beans/filter/NullCheckFilter.java
r3043 r3053 23 23 import java.util.List; 24 24 25 import org.eobjects.analyzer.beans.api.Alias; 25 26 import org.eobjects.analyzer.beans.api.Configured; 26 27 import org.eobjects.analyzer.beans.api.Description; … … 36 37 import org.eobjects.metamodel.schema.Column; 37 38 38 @FilterBean("Not null") 39 @FilterBean("Null check") 40 @Alias("Not null") 39 41 @Description("Filter rows that contain null values.") 40 public class NotNullFilter implements QueryOptimizedFilter<ValidationCategory> { 42 public class NullCheckFilter implements QueryOptimizedFilter<NullCheckFilter.NullCheckCategory> { 43 44 public static enum NullCheckCategory { 45 @Alias("INVALID") 46 NULL, 47 48 @Alias("VALID") 49 NOT_NULL; 50 } 41 51 42 52 @Configured … … 48 58 boolean considerEmptyStringAsNull = false; 49 59 50 public N otNullFilter() {60 public NullCheckFilter() { 51 61 } 52 62 53 public N otNullFilter(InputColumn<?>[] columns, boolean considerEmptyStringAsNull) {63 public NullCheckFilter(InputColumn<?>[] columns, boolean considerEmptyStringAsNull) { 54 64 this(); 55 65 this.columns = columns; 56 66 this.considerEmptyStringAsNull = considerEmptyStringAsNull; 57 67 } 58 68 59 69 public void setConsiderEmptyStringAsNull(boolean considerEmptyStringAsNull) { 60 70 this.considerEmptyStringAsNull = considerEmptyStringAsNull; 61 71 } 62 72 63 73 @Override 64 public boolean isOptimizable( ValidationCategory category) {74 public boolean isOptimizable(NullCheckCategory category) { 65 75 return true; 66 76 } 67 77 68 78 @Override 69 public Query optimizeQuery(Query q, ValidationCategory category) {70 if (category == ValidationCategory.VALID) {79 public Query optimizeQuery(Query q, NullCheckCategory category) { 80 if (category == NullCheckCategory.NOT_NULL) { 71 81 for (InputColumn<?> col : columns) { 72 82 Column column = col.getPhysicalColumn(); … … 77 87 } 78 88 } else { 79 // if INVALIDall filter items will be OR'ed.89 // if NULL all filter items will be OR'ed. 80 90 List<FilterItem> filterItems = new ArrayList<FilterItem>(); 81 91 for (InputColumn<?> col : columns) { … … 96 106 97 107 @Override 98 public ValidationCategory categorize(InputRow inputRow) {108 public NullCheckCategory categorize(InputRow inputRow) { 99 109 for (InputColumn<?> col : columns) { 100 110 Object value = inputRow.getValue(col); 101 111 if (value == null) { 102 return ValidationCategory.INVALID;112 return NullCheckCategory.NULL; 103 113 } 104 114 105 115 if (considerEmptyStringAsNull && "".equals(value)) { 106 return ValidationCategory.INVALID;116 return NullCheckCategory.NULL; 107 117 } 108 118 } 109 return ValidationCategory.VALID;119 return NullCheckCategory.NOT_NULL; 110 120 } 111 121 } -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/descriptors/AnnotationBasedFilterBeanDescriptor.java
r3031 r3053 24 24 import java.util.Set; 25 25 26 import org.eobjects.analyzer.beans.api.Alias; 26 27 import org.eobjects.analyzer.beans.api.Filter; 27 28 import org.eobjects.analyzer.beans.api.FilterBean; … … 30 31 final class AnnotationBasedFilterBeanDescriptor<F extends Filter<C>, C extends Enum<C>> extends AbstractBeanDescriptor<F> 31 32 implements FilterBeanDescriptor<F, C> { 32 33 33 34 private static final long serialVersionUID = 1L; 34 35 … … 89 90 @Override 90 91 public Enum<C> getOutcomeCategoryByName(String categoryName) { 92 if (categoryName == null) { 93 return null; 94 } 91 95 EnumSet<C> categories = getOutcomeCategories(); 92 96 for (Enum<C> c : categories) { … … 95 99 } 96 100 } 101 102 for (Enum<C> c : categories) { 103 // check aliases 104 Alias aliasAnnotation = ReflectionUtils.getAnnotation(c, Alias.class); 105 if (aliasAnnotation != null) { 106 String[] aliases = aliasAnnotation.value(); 107 for (String alias : aliases) { 108 if (categoryName.equals(alias)) { 109 return c; 110 } 111 } 112 } 113 } 114 97 115 return null; 98 116 } -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/util/ReflectionUtils.java
r3049 r3053 479 479 } 480 480 } 481 482 public static <A extends Annotation> A getAnnotation(Enum<?> enumConstant, Class<A> annotationClass) { 483 try { 484 Field field = enumConstant.getClass().getDeclaredField(enumConstant.name()); 485 return getAnnotation(field, annotationClass); 486 } catch (Exception e) { 487 throw new IllegalStateException(e); 488 } 489 } 481 490 482 491 public static <A extends Annotation> A getAnnotation(AnnotatedElement element, Class<A> annotationClass) { … … 485 494 } 486 495 } 496 497 public static boolean isAnnotationPresent(Enum<?> enumConstant, Class<? extends Annotation> annotationClass) { 498 try { 499 Field field = enumConstant.getClass().getDeclaredField(enumConstant.name()); 500 return isAnnotationPresent(field, annotationClass); 501 } catch (Exception e) { 502 throw new IllegalStateException(e); 503 } 504 } 487 505 488 506 public static boolean isAnnotationPresent(AnnotatedElement element, Class<? extends Annotation> annotationClass) { -
AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/beans/filter/NullCheckFilterTest.java
r2749 r3053 30 30 import org.eobjects.analyzer.descriptors.Descriptors; 31 31 import org.eobjects.analyzer.descriptors.FilterBeanDescriptor; 32 import org.eobjects.analyzer.descriptors.SimpleDescriptorProvider; 32 33 import org.eobjects.analyzer.test.TestHelper; 33 34 import org.eobjects.analyzer.util.SchemaNavigator; 34 35 import org.eobjects.metamodel.query.Query; 35 36 36 public class NotNullFilterTest extends TestCase { 37 public class NullCheckFilterTest extends TestCase { 38 39 public void testAliases() throws Exception { 40 FilterBeanDescriptor<?, ?> desc1 = Descriptors.ofFilter(NullCheckFilter.class); 41 42 SimpleDescriptorProvider descriptorProvider = new SimpleDescriptorProvider(); 43 descriptorProvider.addFilterBeanDescriptor(desc1); 44 45 FilterBeanDescriptor<?, ?> desc2 = descriptorProvider.getFilterBeanDescriptorByDisplayName("Not null"); 46 FilterBeanDescriptor<?, ?> desc3 = descriptorProvider.getFilterBeanDescriptorByDisplayName("Null check"); 47 48 assertSame(desc1, desc2); 49 assertSame(desc1, desc3); 50 51 Enum<?> notNullOutcome1 = desc1.getOutcomeCategoryByName("VALID"); 52 Enum<?> notNullOutcome2 = desc1.getOutcomeCategoryByName("NOT_NULL"); 53 assertSame(notNullOutcome1, notNullOutcome2); 54 55 Enum<?> nullOutcome1 = desc1.getOutcomeCategoryByName("INVALID"); 56 Enum<?> nullOutcome2 = desc1.getOutcomeCategoryByName("NULL"); 57 assertSame(nullOutcome1, nullOutcome2); 58 } 37 59 38 60 public void testCategorize() throws Exception { … … 42 64 InputColumn<?>[] columns = new InputColumn[] { col1, col2, col3 }; 43 65 44 N otNullFilter filter = new NotNullFilter(columns, true);45 assertEquals( ValidationCategory.VALID,66 NullCheckFilter filter = new NullCheckFilter(columns, true); 67 assertEquals(NullCheckFilter.NullCheckCategory.NOT_NULL, 46 68 filter.categorize(new MockInputRow().put(col1, 1).put(col2, true).put(col3, "foo"))); 47 69 48 assertEquals( ValidationCategory.INVALID,70 assertEquals(NullCheckFilter.NullCheckCategory.NULL, 49 71 filter.categorize(new MockInputRow().put(col1, 1).put(col2, null).put(col3, "foo"))); 50 72 51 assertEquals( ValidationCategory.INVALID,73 assertEquals(NullCheckFilter.NullCheckCategory.NULL, 52 74 filter.categorize(new MockInputRow().put(col1, 1).put(col2, true).put(col3, ""))); 53 75 54 assertEquals( ValidationCategory.INVALID,76 assertEquals(NullCheckFilter.NullCheckCategory.NULL, 55 77 filter.categorize(new MockInputRow().put(col1, 1).put(col2, true).put(col3, null))); 56 78 57 assertEquals( ValidationCategory.INVALID,79 assertEquals(NullCheckFilter.NullCheckCategory.NULL, 58 80 filter.categorize(new MockInputRow().put(col1, null).put(col2, null).put(col3, null))); 59 81 } 60 82 61 83 public void testDescriptor() throws Exception { 62 FilterBeanDescriptor<NotNullFilter, ValidationCategory> desc = Descriptors.ofFilter(NotNullFilter.class); 63 Class<ValidationCategory> categoryEnum = desc.getOutcomeCategoryEnum(); 64 assertEquals(ValidationCategory.class, categoryEnum); 84 FilterBeanDescriptor<NullCheckFilter, NullCheckFilter.NullCheckCategory> desc = Descriptors 85 .ofFilter(NullCheckFilter.class); 86 Class<NullCheckFilter.NullCheckCategory> categoryEnum = desc.getOutcomeCategoryEnum(); 87 assertEquals(NullCheckFilter.NullCheckCategory.class, categoryEnum); 65 88 } 66 89 … … 74 97 InputColumn<?>[] columns = new InputColumn[] { col1, col2 }; 75 98 76 N otNullFilter filter = new NotNullFilter(columns, true);99 NullCheckFilter filter = new NullCheckFilter(columns, true); 77 100 78 101 Query baseQuery = con.getDataContext().query().from("EMPLOYEES").select("EMAIL").and("EMPLOYEENUMBER").toQuery(); 79 Query optimizedQuery = filter.optimizeQuery(baseQuery.clone(), ValidationCategory.VALID);102 Query optimizedQuery = filter.optimizeQuery(baseQuery.clone(), NullCheckFilter.NullCheckCategory.NOT_NULL); 80 103 81 104 assertEquals("SELECT \"EMPLOYEES\".\"EMAIL\", \"EMPLOYEES\".\"EMPLOYEENUMBER\" FROM " … … 83 106 + "\"EMPLOYEES\".\"EMPLOYEENUMBER\" IS NOT NULL", optimizedQuery.toSql()); 84 107 85 optimizedQuery = filter.optimizeQuery(baseQuery.clone(), ValidationCategory.INVALID);108 optimizedQuery = filter.optimizeQuery(baseQuery.clone(), NullCheckFilter.NullCheckCategory.NULL); 86 109 87 110 assertEquals("SELECT \"EMPLOYEES\".\"EMAIL\", \"EMPLOYEES\".\"EMPLOYEENUMBER\" FROM " -
AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/descriptors/AnnotationBasedFilterDescriptorTest.java
r2464 r3053 25 25 import junit.framework.TestCase; 26 26 27 import org.eobjects.analyzer.beans.filter.NotNullFilter; 28 import org.eobjects.analyzer.beans.filter.ValidationCategory; 27 import org.eobjects.analyzer.beans.filter.NullCheckFilter; 29 28 30 29 public class AnnotationBasedFilterDescriptorTest extends TestCase { 31 30 32 private FilterBeanDescriptor<N otNullFilter, ValidationCategory> desc = Descriptors.ofFilter(NotNullFilter.class);31 private FilterBeanDescriptor<NullCheckFilter, NullCheckFilter.NullCheckCategory> desc = Descriptors.ofFilter(NullCheckFilter.class); 33 32 34 33 public void testGetCategoryEnum() throws Exception { 35 Class< ValidationCategory> categoryEnum = desc.getOutcomeCategoryEnum();34 Class<NullCheckFilter.NullCheckCategory> categoryEnum = desc.getOutcomeCategoryEnum(); 36 35 37 assertEquals( ValidationCategory.class, categoryEnum);36 assertEquals(NullCheckFilter.NullCheckCategory.class, categoryEnum); 38 37 } 39 38 … … 41 40 Set<String> categoryNames = desc.getOutcomeCategoryNames(); 42 41 categoryNames = new TreeSet<String>(categoryNames); 43 assertEquals("[ INVALID, VALID]", categoryNames.toString());42 assertEquals("[NOT_NULL, NULL]", categoryNames.toString()); 44 43 } 45 44 } -
AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/job/builder/AnalysisJobBuilderTest.java
r3046 r3053 34 34 import org.eobjects.analyzer.beans.convert.ConvertToStringTransformer; 35 35 import org.eobjects.analyzer.beans.filter.MaxRowsFilter; 36 import org.eobjects.analyzer.beans.filter.NotNullFilter; 36 import org.eobjects.analyzer.beans.filter.NullCheckFilter; 37 import org.eobjects.analyzer.beans.filter.NullCheckFilter.NullCheckCategory; 37 38 import org.eobjects.analyzer.beans.filter.ValidationCategory; 38 39 import org.eobjects.analyzer.beans.standardize.EmailStandardizerTransformer; … … 81 82 analysisJobBuilder.addSourceColumns("PUBLIC.EMPLOYEES.REPORTSTO"); 82 83 FilterJobBuilder<MaxRowsFilter, ValidationCategory> filter1 = analysisJobBuilder.addFilter(MaxRowsFilter.class); 83 FilterJobBuilder<NotNullFilter, ValidationCategory> filter2 = analysisJobBuilder.addFilter(NotNullFilter.class); 84 FilterJobBuilder<NullCheckFilter, NullCheckFilter.NullCheckCategory> filter2 = analysisJobBuilder 85 .addFilter(NullCheckFilter.class); 84 86 filter2.addInputColumn(analysisJobBuilder.getSourceColumnByName("reportsto")); 85 filter1.setRequirement(filter2.getOutcome( ValidationCategory.VALID));87 filter1.setRequirement(filter2.getOutcome(NullCheckCategory.NOT_NULL)); 86 88 87 89 try { … … 195 197 saAjb.addInputColumns(analysisJobBuilder.getSourceColumns()); 196 198 197 FilterJobBuilder<NotNullFilter, ValidationCategory> fjb = analysisJobBuilder.addFilter(NotNullFilter.class); 199 FilterJobBuilder<NullCheckFilter, NullCheckFilter.NullCheckCategory> fjb = analysisJobBuilder 200 .addFilter(NullCheckFilter.class); 198 201 fjb.addInputColumn(analysisJobBuilder.getSourceColumns().get(0)); 199 202 … … 210 213 assertEquals(result.get(1), pfAjb); 211 214 212 pfAjb.setRequirement(fjb, ValidationCategory.VALID);215 pfAjb.setRequirement(fjb, NullCheckCategory.NOT_NULL); 213 216 214 217 result = analysisJobBuilder.getAvailableUnfilteredBeans(fjb); … … 228 231 assertSame(maxRowsFilter.getOutcome(ValidationCategory.VALID), emailStdTransformer.getRequirement()); 229 232 230 FilterJobBuilder<N otNullFilter, ValidationCategory> notNullFilter = analysisJobBuilder231 .addFilter(N otNullFilter.class);233 FilterJobBuilder<NullCheckFilter, NullCheckFilter.NullCheckCategory> notNullFilter = analysisJobBuilder 234 .addFilter(NullCheckFilter.class); 232 235 notNullFilter.setRequirement(null); 233 maxRowsFilter.setRequirement(notNullFilter.getOutcome( ValidationCategory.VALID));236 maxRowsFilter.setRequirement(notNullFilter.getOutcome(NullCheckFilter.NullCheckCategory.NOT_NULL)); 234 237 235 238 assertNull(notNullFilter.getRequirement()); … … 246 249 247 250 assertNull(analysisJobBuilder.getDefaultRequirement()); 248 assertSame(notNullFilter.getOutcome( ValidationCategory.VALID), stringAnalyzer.getRequirement());249 assertSame(notNullFilter.getOutcome( ValidationCategory.VALID), emailStdTransformer.getRequirement());251 assertSame(notNullFilter.getOutcome(NullCheckCategory.NOT_NULL), stringAnalyzer.getRequirement()); 252 assertSame(notNullFilter.getOutcome(NullCheckCategory.NOT_NULL), emailStdTransformer.getRequirement()); 250 253 251 254 con.close(); -
AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/job/builder/MergedOutcomeJobBuilderTest.java
r2631 r3053 25 25 26 26 import org.eobjects.analyzer.beans.StringAnalyzer; 27 import org.eobjects.analyzer.beans.filter.N otNullFilter;27 import org.eobjects.analyzer.beans.filter.NullCheckFilter; 28 28 import org.eobjects.analyzer.beans.filter.SingleWordFilter; 29 29 import org.eobjects.analyzer.beans.filter.ValidationCategory; 30 import org.eobjects.analyzer.beans.filter.NullCheckFilter.NullCheckCategory; 30 31 import org.eobjects.analyzer.beans.standardize.EmailStandardizerTransformer; 31 32 import org.eobjects.analyzer.beans.stringpattern.PatternFinderAnalyzer; … … 59 60 analysisJobBuilder.addSourceColumns("PUBLIC.EMPLOYEES.FIRSTNAME"); 60 61 61 FilterJobBuilder<NotNullFilter, ValidationCategory> fjb1 = analysisJobBuilder.addFilter(NotNullFilter.class); 62 FilterJobBuilder<NullCheckFilter, NullCheckFilter.NullCheckCategory> fjb1 = analysisJobBuilder 63 .addFilter(NullCheckFilter.class); 62 64 fjb1.addInputColumn(analysisJobBuilder.getSourceColumns().get(0)); 63 65 … … 74 76 } 75 77 76 mergedOutcomeJobBuilder.addMergedOutcome(fjb1, ValidationCategory.VALID);78 mergedOutcomeJobBuilder.addMergedOutcome(fjb1, NullCheckFilter.NullCheckCategory.NOT_NULL); 77 79 78 80 try { … … 92 94 MergedOutcome outcome = mergedOutcomeJob.getOutcome(); 93 95 94 assertTrue(outcome.satisfiesRequirement(new ImmutableFilterOutcome(fjb1.toFilterJob(), ValidationCategory.VALID)));95 assertFalse(outcome.satisfiesRequirement(new ImmutableFilterOutcome(fjb1.toFilterJob(), ValidationCategory.INVALID)));96 assertTrue(outcome.satisfiesRequirement(new ImmutableFilterOutcome(fjb1.toFilterJob(), NullCheckCategory.NOT_NULL))); 97 assertFalse(outcome.satisfiesRequirement(new ImmutableFilterOutcome(fjb1.toFilterJob(), NullCheckCategory.NULL))); 96 98 assertTrue(outcome.satisfiesRequirement(new ImmutableFilterOutcome(fjb2.toFilterJob(), ValidationCategory.VALID))); 97 99 assertFalse(outcome.satisfiesRequirement(new ImmutableFilterOutcome(fjb2.toFilterJob(), ValidationCategory.INVALID))); 98 100 99 AnalyzerJobBuilder<StringAnalyzer> ajb = analysisJobBuilder 100 .addAnalyzer(StringAnalyzer.class); 101 AnalyzerJobBuilder<StringAnalyzer> ajb = analysisJobBuilder.addAnalyzer(StringAnalyzer.class); 101 102 ajb.setRequirement(outcome); 102 103 } … … 122 123 assertNotNull(usernameCol); 123 124 124 FilterJobBuilder<N otNullFilter, ValidationCategory> f = ajb.addFilter(NotNullFilter.class);125 FilterJobBuilder<NullCheckFilter, NullCheckFilter.NullCheckCategory> f = ajb.addFilter(NullCheckFilter.class); 125 126 f.addInputColumn(usernameCol); 126 127 127 128 MergedOutcomeJobBuilder mojb = ajb.addMergedOutcomeJobBuilder(); 128 mojb.addMergedOutcome(f, ValidationCategory.VALID).addInputColumn(usernameCol);129 mojb.addMergedOutcome(f, ValidationCategory.INVALID).addInputColumn(fnCol);129 mojb.addMergedOutcome(f, NullCheckCategory.NOT_NULL).addInputColumn(usernameCol); 130 mojb.addMergedOutcome(f, NullCheckCategory.NULL).addInputColumn(fnCol); 130 131 131 132 MergedOutcomeJob mergedOutcomeJob = mojb.toMergedOutcomeJob(); -
AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/job/runner/RowProcessingConsumerSorterTest.java
r3014 r3053 30 30 import org.eobjects.analyzer.beans.StringAnalyzer; 31 31 import org.eobjects.analyzer.beans.convert.ConvertToStringTransformer; 32 import org.eobjects.analyzer.beans.filter.N otNullFilter;32 import org.eobjects.analyzer.beans.filter.NullCheckFilter; 33 33 import org.eobjects.analyzer.beans.filter.SingleWordFilter; 34 34 import org.eobjects.analyzer.beans.filter.ValidationCategory; 35 import org.eobjects.analyzer.beans.filter.NullCheckFilter.NullCheckCategory; 35 36 import org.eobjects.analyzer.beans.mock.TransformerMock; 36 37 import org.eobjects.analyzer.beans.transform.WhitespaceTrimmerTransformer; … … 78 79 79 80 // 1: add a not-null filter 80 FilterJobBuilder<N otNullFilter, ValidationCategory> fjb1 = ajb.addFilter(NotNullFilter.class);81 FilterJobBuilder<NullCheckFilter, NullCheckFilter.NullCheckCategory> fjb1 = ajb.addFilter(NullCheckFilter.class); 81 82 fjb1.addInputColumn(inputColumn); 82 83 … … 84 85 TransformerJobBuilder<WhitespaceTrimmerTransformer> tjb1 = ajb.addTransformer(WhitespaceTrimmerTransformer.class); 85 86 tjb1.addInputColumn(inputColumn); 86 tjb1.setRequirement(fjb1, ValidationCategory.VALID);87 tjb1.setRequirement(fjb1, NullCheckFilter.NullCheckCategory.NOT_NULL); 87 88 88 89 // 3: merge either the null or the trimmed value 89 90 MergedOutcomeJobBuilder mojb = ajb.addMergedOutcomeJobBuilder(); 90 mojb.addMergedOutcome(fjb1, ValidationCategory.VALID).addInputColumn(tjb1.getOutputColumns().get(0));91 mojb.addMergedOutcome(fjb1, ValidationCategory.INVALID).addInputColumn(inputColumn);91 mojb.addMergedOutcome(fjb1, NullCheckCategory.NOT_NULL).addInputColumn(tjb1.getOutputColumns().get(0)); 92 mojb.addMergedOutcome(fjb1, NullCheckCategory.NULL).addInputColumn(inputColumn); 92 93 MutableInputColumn<?> mergedColumn1 = mojb.getOutputColumns().get(0); 93 94 … … 107 108 assertEquals(5, consumers.size()); 108 109 109 assertEquals("ImmutableFilterJob[name=null,filter=N ot null]", consumers.get(0).getComponentJob().toString());110 assertEquals("ImmutableFilterJob[name=null,filter=Null check]", consumers.get(0).getComponentJob().toString()); 110 111 assertEquals("ImmutableTransformerJob[name=null,transformer=Whitespace trimmer]", consumers.get(1).getComponentJob() 111 112 .toString()); 112 113 assertEquals( 113 "ImmutableMergedOutcomeJob[name=null,mergeInputs=[ImmutableMergeInput[FilterOutcome[category= VALID]], ImmutableMergeInput[FilterOutcome[category=INVALID]]]]",114 "ImmutableMergedOutcomeJob[name=null,mergeInputs=[ImmutableMergeInput[FilterOutcome[category=NOT_NULL]], ImmutableMergeInput[FilterOutcome[category=NULL]]]]", 114 115 consumers.get(2).getComponentJob().toString()); 115 116 assertEquals("ImmutableFilterJob[name=null,filter=Single word]", consumers.get(3).getComponentJob().toString()); … … 125 126 126 127 // 1: add a not-null filter 127 FilterJobBuilder<N otNullFilter, ValidationCategory> fjb1 = ajb.addFilter(NotNullFilter.class);128 FilterJobBuilder<NullCheckFilter, NullCheckFilter.NullCheckCategory> fjb1 = ajb.addFilter(NullCheckFilter.class); 128 129 fjb1.addInputColumn(inputColumn); 129 130 … … 131 132 TransformerJobBuilder<WhitespaceTrimmerTransformer> tjb1 = ajb.addTransformer(WhitespaceTrimmerTransformer.class); 132 133 tjb1.addInputColumn(inputColumn); 133 tjb1.setRequirement(fjb1, ValidationCategory.VALID);134 tjb1.setRequirement(fjb1, NullCheckCategory.NOT_NULL); 134 135 135 136 // 3: trim again, just to examplify (depends on first trim output) … … 155 156 consumers = new RowProcessingConsumerSorter(consumers).createProcessOrderedConsumerList(); 156 157 157 assertEquals("ImmutableFilterJob[name=null,filter=N ot null]", consumers.get(0).getComponentJob().toString());158 assertEquals("ImmutableFilterJob[name=null,filter=Null check]", consumers.get(0).getComponentJob().toString()); 158 159 assertEquals("ImmutableTransformerJob[name=null,transformer=Whitespace trimmer]", consumers.get(1).getComponentJob() 159 160 .toString()); -
AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/job/runner/RowProcessingMetricsImplTest.java
r3043 r3053 27 27 import org.eobjects.analyzer.beans.filter.EqualsFilter; 28 28 import org.eobjects.analyzer.beans.filter.MaxRowsFilter; 29 import org.eobjects.analyzer.beans.filter.N otNullFilter;29 import org.eobjects.analyzer.beans.filter.NullCheckFilter; 30 30 import org.eobjects.analyzer.beans.filter.ValidationCategory; 31 31 import org.eobjects.analyzer.configuration.AnalyzerBeansConfiguration; … … 104 104 105 105 // there's 1 record which has a reportsto value of null. 106 FilterJobBuilder<N otNullFilter, ValidationCategory> filter2 = ajb.addFilter(NotNullFilter.class);106 FilterJobBuilder<NullCheckFilter, NullCheckFilter.NullCheckCategory> filter2 = ajb.addFilter(NullCheckFilter.class); 107 107 ajb.addSourceColumns("PUBLIC.EMPLOYEES.REPORTSTO"); 108 108 filter2.addInputColumn(ajb.getSourceColumnByName("reportsto")); … … 110 110 filter2.setRequirement(filter1.getOutcome(ValidationCategory.INVALID)); 111 111 112 ajb.getAnalyzerJobBuilders().get(0).setRequirement(filter2.getOutcome( ValidationCategory.VALID));112 ajb.getAnalyzerJobBuilders().get(0).setRequirement(filter2.getOutcome(NullCheckFilter.NullCheckCategory.NOT_NULL)); 113 113 114 114 job = ajb.toAnalysisJob(); -
AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/job/runner/RowProcessingQueryOptimizerTest.java
r3014 r3053 30 30 import org.eobjects.analyzer.beans.api.Transformer; 31 31 import org.eobjects.analyzer.beans.filter.MaxRowsFilter; 32 import org.eobjects.analyzer.beans.filter.NotNullFilter; 32 import org.eobjects.analyzer.beans.filter.NullCheckFilter; 33 import org.eobjects.analyzer.beans.filter.NullCheckFilter.NullCheckCategory; 33 34 import org.eobjects.analyzer.beans.filter.ValidationCategory; 34 35 import org.eobjects.analyzer.beans.standardize.EmailStandardizerTransformer; … … 122 123 assertTrue(optimizer.isOptimizable()); 123 124 124 FilterJobBuilder<?, ?> fjb = ajb.addFilter(N otNullFilter.class).addInputColumn(lastNameInputColumn);125 maxRowsBuilder.setRequirement(fjb, ValidationCategory.VALID);125 FilterJobBuilder<?, ?> fjb = ajb.addFilter(NullCheckFilter.class).addInputColumn(lastNameInputColumn); 126 maxRowsBuilder.setRequirement(fjb, NullCheckCategory.NOT_NULL); 126 127 consumers.add(0, createConsumer(fjb)); 127 128 … … 182 183 183 184 public void testMultipleOptimizations() throws Exception { 184 FilterJobBuilder<N otNullFilter, ValidationCategory> notNullBuilder = ajb.addFilter(NotNullFilter.class);185 FilterJobBuilder<NullCheckFilter, NullCheckFilter.NullCheckCategory> notNullBuilder = ajb.addFilter(NullCheckFilter.class); 185 186 Column emailColumn = con.getSchemaNavigator().convertToColumn("EMPLOYEES.EMAIL"); 186 187 ajb.addSourceColumn(emailColumn); … … 188 189 notNullBuilder.addInputColumn(emailInputColumn); 189 190 notNullBuilder.setRequirement(maxRowsBuilder, ValidationCategory.VALID); 190 stringAnalyzerBuilder.setRequirement(notNullBuilder, ValidationCategory.VALID);191 stringAnalyzerBuilder.setRequirement(notNullBuilder, NullCheckCategory.NOT_NULL); 191 192 192 193 consumers.remove(1); -
AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/job/tasks/ConsumeRowTaskTest.java
r2647 r3053 25 25 26 26 import org.eobjects.analyzer.beans.convert.ConvertToNumberTransformer; 27 import org.eobjects.analyzer.beans.filter.NotNullFilter; 28 import org.eobjects.analyzer.beans.filter.ValidationCategory; 27 import org.eobjects.analyzer.beans.filter.NullCheckFilter; 29 28 import org.eobjects.analyzer.configuration.AnalyzerBeansConfiguration; 30 29 import org.eobjects.analyzer.configuration.AnalyzerBeansConfigurationImpl; … … 121 120 builder.setDatastore(new CsvDatastore("Names", "src/test/resources/example-name-lengths.csv")); 122 121 builder.addSourceColumns("name"); 123 FilterJobBuilder<N otNullFilter, ValidationCategory> filterJobBuilder = builder.addFilter(124 N otNullFilter.class);122 FilterJobBuilder<NullCheckFilter, NullCheckFilter.NullCheckCategory> filterJobBuilder = builder.addFilter( 123 NullCheckFilter.class); 125 124 filterJobBuilder.addInputColumn(builder.getSourceColumnByName("name")); 126 125 filterJobBuilder.setConfiguredProperty("Consider empty string as null", true); … … 130 129 MutableInputColumn<?> numberColumn = convertTransformer.getOutputColumns().get(0); 131 130 132 convertTransformer.setRequirement(filterJobBuilder, ValidationCategory.VALID);131 convertTransformer.setRequirement(filterJobBuilder, NullCheckFilter.NullCheckCategory.NOT_NULL); 133 132 builder.addAnalyzer(MockAnalyzer.class).addInputColumns(numberColumn); 134 133 job = builder.toAnalysisJob(); -
AnalyzerBeans/trunk/env/xml-config/src/test/java/org/eobjects/analyzer/job/JaxbJobWriterTest.java
r2749 r3053 34 34 import org.eobjects.analyzer.beans.DateGapAnalyzer; 35 35 import org.eobjects.analyzer.beans.StringAnalyzer; 36 import org.eobjects.analyzer.beans.filter.NotNullFilter; 36 import org.eobjects.analyzer.beans.filter.NullCheckFilter; 37 import org.eobjects.analyzer.beans.filter.NullCheckFilter.NullCheckCategory; 37 38 import org.eobjects.analyzer.beans.filter.SingleWordFilter; 38 39 import org.eobjects.analyzer.beans.filter.ValidationCategory; … … 245 246 "JaxbJobWriterTest-file2.xml"); 246 247 247 FilterJobBuilder<N otNullFilter, ValidationCategory> fjb1 = ajb248 .addFilter(N otNullFilter.class);248 FilterJobBuilder<NullCheckFilter, NullCheckFilter.NullCheckCategory> fjb1 = ajb 249 .addFilter(NullCheckFilter.class); 249 250 fjb1.addInputColumn(fnCol); 250 strAnalyzer.setRequirement(fjb1, " VALID");251 strAnalyzer.setRequirement(fjb1, "NOT_NULL"); 251 252 252 253 assertMatchesBenchmark(ajb.toAnalysisJob(), … … 270 271 MergedOutcomeJobBuilder mergedOutcome = ajb 271 272 .addMergedOutcomeJobBuilder(); 272 mergedOutcome.addMergedOutcome(fjb1, ValidationCategory.INVALID)273 mergedOutcome.addMergedOutcome(fjb1, NullCheckCategory.NULL) 273 274 .addInputColumn(fnCol); 274 275 mergedOutcome.addMergedOutcome(fjb2, ValidationCategory.INVALID) -
AnalyzerBeans/trunk/env/xml-config/src/test/resources/JaxbJobWriterTest-file3.xml
r2568 r3053 23 23 </transformer> 24 24 <filter> 25 <descriptor ref="N ot null"/>25 <descriptor ref="Null check"/> 26 26 <properties> 27 27 <property value="false" name="Consider empty string as null"/> 28 28 </properties> 29 29 <input ref="col_0"/> 30 <outcome id="outcome_0" category=" VALID"/>30 <outcome id="outcome_0" category="NOT_NULL"/> 31 31 </filter> 32 32 </transformation> -
AnalyzerBeans/trunk/env/xml-config/src/test/resources/JaxbJobWriterTest-file4.xml
r2568 r3053 23 23 </transformer> 24 24 <filter> 25 <descriptor ref="N ot null"/>25 <descriptor ref="Null check"/> 26 26 <properties> 27 27 <property value="false" name="Consider empty string as null"/> 28 28 </properties> 29 29 <input ref="col_0"/> 30 <outcome id="outcome_0" category=" VALID"/>30 <outcome id="outcome_0" category="NOT_NULL"/> 31 31 </filter> 32 32 </transformation> -
AnalyzerBeans/trunk/env/xml-config/src/test/resources/JaxbJobWriterTest-file5.xml
r2568 r3053 23 23 </transformer> 24 24 <filter> 25 <descriptor ref="N ot null"/>25 <descriptor ref="Null check"/> 26 26 <properties> 27 27 <property value="false" name="Consider empty string as null"/> 28 28 </properties> 29 29 <input ref="col_0"/> 30 <outcome id="outcome_ 3" category="VALID"/>31 <outcome id="outcome_ 0" category="INVALID"/>30 <outcome id="outcome_0" category="NULL"/> 31 <outcome id="outcome_3" category="NOT_NULL"/> 32 32 </filter> 33 33 <filter> -
AnalyzerBeans/trunk/env/xml-config/src/test/resources/JaxbJobWriterTest-file6.xml
r2568 r3053 23 23 </transformer> 24 24 <filter name="fjb1"> 25 <descriptor ref="N ot null"/>25 <descriptor ref="Null check"/> 26 26 <properties> 27 27 <property value="false" name="Consider empty string as null"/> 28 28 </properties> 29 29 <input ref="col_0"/> 30 <outcome id="outcome_ 3" category="VALID"/>31 <outcome id="outcome_ 0" category="INVALID"/>30 <outcome id="outcome_0" category="NULL"/> 31 <outcome id="outcome_3" category="NOT_NULL"/> 32 32 </filter> 33 33 <filter name="fjb2">
Note: See TracChangeset
for help on using the changeset viewer.
