Changeset 3103
- Timestamp:
- 01/31/12 22:13:13 (4 months ago)
- Location:
- AnalyzerBeans/trunk
- Files:
-
- 37 edited
-
api/src/main/java/org/eobjects/analyzer/data/DataTypeFamily.java (modified) (1 diff)
-
api/src/main/java/org/eobjects/analyzer/data/InputColumn.java (modified) (1 diff)
-
api/src/test/java/org/eobjects/analyzer/beans/api/DataTypeFamilyTest.java (modified) (1 diff)
-
api/src/test/java/org/eobjects/analyzer/data/DataTypeFamilyTest.java (modified) (2 diffs)
-
cli/src/main/java/org/eobjects/analyzer/cli/CliRunner.java (modified) (4 diffs)
-
cli/src/test/java/org/eobjects/analyzer/cli/MainTest.java (modified) (1 diff)
-
components/el/pom.xml (modified) (2 diffs)
-
components/el/src/main/java/org/eobjects/analyzer/data/ELInputColumn.java (modified) (4 diffs)
-
components/javascript/src/main/java/org/eobjects/analyzer/beans/script/JavaScriptUtils.java (modified) (2 diffs)
-
core/src/main/java/org/eobjects/analyzer/beans/filter/EqualsFilter.java (modified) (2 diffs)
-
core/src/main/java/org/eobjects/analyzer/beans/filter/NullCheckFilter.java (modified) (3 diffs)
-
core/src/main/java/org/eobjects/analyzer/data/AbstractInputColumn.java (modified) (2 diffs)
-
core/src/main/java/org/eobjects/analyzer/data/ConstantInputColumn.java (modified) (3 diffs)
-
core/src/main/java/org/eobjects/analyzer/data/MetaModelInputColumn.java (modified) (1 diff)
-
core/src/main/java/org/eobjects/analyzer/data/MetaModelInputRow.java (modified) (2 diffs)
-
core/src/main/java/org/eobjects/analyzer/data/MockInputColumn.java (modified) (2 diffs)
-
core/src/main/java/org/eobjects/analyzer/data/TransformedInputColumn.java (modified) (3 diffs)
-
core/src/main/java/org/eobjects/analyzer/descriptors/AnnotationBasedTransformerBeanDescriptor.java (modified) (2 diffs)
-
core/src/main/java/org/eobjects/analyzer/descriptors/ConfiguredPropertyDescriptor.java (modified) (2 diffs)
-
core/src/main/java/org/eobjects/analyzer/descriptors/ConfiguredPropertyDescriptorImpl.java (modified) (2 diffs)
-
core/src/main/java/org/eobjects/analyzer/descriptors/TransformerBeanDescriptor.java (modified) (2 diffs)
-
core/src/main/java/org/eobjects/analyzer/job/builder/AbstractBeanWithInputColumnsBuilder.java (modified) (4 diffs)
-
core/src/main/java/org/eobjects/analyzer/job/builder/AnalysisJobBuilder.java (modified) (3 diffs)
-
core/src/main/java/org/eobjects/analyzer/job/builder/MergedOutcomeJobBuilder.java (modified) (1 diff)
-
core/src/main/java/org/eobjects/analyzer/job/builder/TransformerJobBuilder.java (modified) (3 diffs)
-
core/src/main/java/org/eobjects/analyzer/util/SourceColumnFinder.java (modified) (3 diffs)
-
core/src/main/java/org/eobjects/analyzer/util/StandardTypeConverter.java (modified) (3 diffs)
-
core/src/test/java/org/eobjects/analyzer/beans/datastructures/DataStructuresIntegrationTest.java (modified) (1 diff)
-
core/src/test/java/org/eobjects/analyzer/data/MetaModelInputColumnTest.java (modified) (1 diff)
-
core/src/test/java/org/eobjects/analyzer/descriptors/AnnotationBasedAnalyzerBeanDescriptorTest.java (modified) (1 diff)
-
core/src/test/java/org/eobjects/analyzer/descriptors/AnnotationBasedTransformerBeanDescriptorTest.java (modified) (2 diffs)
-
core/src/test/java/org/eobjects/analyzer/descriptors/ConfiguredPropertyDescriptorImplTest.java (modified) (3 diffs)
-
core/src/test/java/org/eobjects/analyzer/job/builder/AnalysisJobBuilderTest.java (modified) (3 diffs)
-
core/src/test/java/org/eobjects/analyzer/job/builder/TransformerJobBuilderTest.java (modified) (4 diffs)
-
core/src/test/java/org/eobjects/analyzer/test/full/scenarios/ValueDistributionAndStringAnalysisTest.java (modified) (2 diffs)
-
core/src/test/java/org/eobjects/analyzer/util/SourceColumnFinderTest.java (modified) (2 diffs)
-
core/src/test/java/org/eobjects/analyzer/util/StringConverterTest.java (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
AnalyzerBeans/trunk/api/src/main/java/org/eobjects/analyzer/data/DataTypeFamily.java
r2551 r3103 51 51 * 52 52 * @author Kasper SÞrensen 53 * 54 * @deprecated {@link DataTypeFamily} is no longer sufficient for AnalyzerBeans' 55 * scope. The full Java type system will be used. 53 56 */ 57 @Deprecated 54 58 public enum DataTypeFamily { 55 59 -
AnalyzerBeans/trunk/api/src/main/java/org/eobjects/analyzer/data/InputColumn.java
r3031 r3103 79 79 * @return the family of datatypes that matches column's data type. This 80 80 * value should be corresponding to the type-parameter <E>. 81 * 82 * @deprecated use {@link #getDataType()} instead. 81 83 */ 84 @Deprecated 82 85 public DataTypeFamily getDataTypeFamily(); 83 86 } -
AnalyzerBeans/trunk/api/src/test/java/org/eobjects/analyzer/beans/api/DataTypeFamilyTest.java
r3025 r3103 22 22 import java.util.Date; 23 23 24 import junit.framework.TestCase; 25 24 26 import org.eobjects.analyzer.data.DataTypeFamily; 25 27 26 import junit.framework.TestCase; 27 28 @SuppressWarnings("deprecation") 28 29 public class DataTypeFamilyTest extends TestCase { 29 30 -
AnalyzerBeans/trunk/api/src/test/java/org/eobjects/analyzer/data/DataTypeFamilyTest.java
r2551 r3103 24 24 import junit.framework.TestCase; 25 25 26 @SuppressWarnings("deprecation") 26 27 public class DataTypeFamilyTest extends TestCase { 27 28 … … 35 36 36 37 public void testValueOfClass() throws Exception { 37 assertEquals(DataTypeFamily.BOOLEAN, 38 DataTypeFamily.valueOf(Boolean.class)); 38 assertEquals(DataTypeFamily.BOOLEAN, DataTypeFamily.valueOf(Boolean.class)); 39 39 assertEquals(DataTypeFamily.DATE, DataTypeFamily.valueOf(Date.class)); 40 assertEquals(DataTypeFamily.NUMBER, 41 DataTypeFamily.valueOf(Number.class)); 42 assertEquals(DataTypeFamily.NUMBER, 43 DataTypeFamily.valueOf(Integer.class)); 44 assertEquals(DataTypeFamily.NUMBER, 45 DataTypeFamily.valueOf(Double.class)); 46 assertEquals(DataTypeFamily.STRING, 47 DataTypeFamily.valueOf(String.class)); 48 assertEquals(DataTypeFamily.UNDEFINED, 49 DataTypeFamily.valueOf(Object.class)); 50 assertEquals(DataTypeFamily.UNDEFINED, 51 DataTypeFamily.valueOf(Byte[].class)); 40 assertEquals(DataTypeFamily.NUMBER, DataTypeFamily.valueOf(Number.class)); 41 assertEquals(DataTypeFamily.NUMBER, DataTypeFamily.valueOf(Integer.class)); 42 assertEquals(DataTypeFamily.NUMBER, DataTypeFamily.valueOf(Double.class)); 43 assertEquals(DataTypeFamily.STRING, DataTypeFamily.valueOf(String.class)); 44 assertEquals(DataTypeFamily.UNDEFINED, DataTypeFamily.valueOf(Object.class)); 45 assertEquals(DataTypeFamily.UNDEFINED, DataTypeFamily.valueOf(Byte[].class)); 52 46 } 53 47 } -
AnalyzerBeans/trunk/cli/src/main/java/org/eobjects/analyzer/cli/CliRunner.java
r3070 r3103 45 45 import org.eobjects.analyzer.connection.Datastore; 46 46 import org.eobjects.analyzer.connection.DatastoreConnection; 47 import org.eobjects.analyzer.data.DataTypeFamily;48 47 import org.eobjects.analyzer.descriptors.AnalyzerBeanDescriptor; 49 48 import org.eobjects.analyzer.descriptors.BeanDescriptor; … … 464 463 if (propertyForInput != null) { 465 464 if (propertyForInput.isArray()) { 466 write(" - Consumes multiple input columns (type: " + propertyForInput.getInputColumnDataTypeFamily()467 + ")");465 write(" - Consumes multiple input columns (type: " 466 + propertyForInput.getTypeArgument(0).getSimpleName() + ")"); 468 467 } else { 469 write(" - Consumes a single input column (type: " + propertyForInput.getInputColumnDataTypeFamily()470 + ")");468 write(" - Consumes a single input column (type: " 469 + propertyForInput.getTypeArgument(0).getSimpleName() + ")"); 471 470 } 472 471 } … … 476 475 if (propertyForInput.isArray()) { 477 476 write(" Input columns: " + propertyForInput.getName() + " (type: " 478 + propertyForInput.get InputColumnDataTypeFamily() + ")");477 + propertyForInput.getTypeArgument(0).getSimpleName() + ")"); 479 478 } else { 480 479 write(" Input column: " + propertyForInput.getName() + " (type: " 481 + propertyForInput.get InputColumnDataTypeFamily() + ")");480 + propertyForInput.getTypeArgument(0).getSimpleName() + ")"); 482 481 } 483 482 } … … 493 492 494 493 if (descriptor instanceof TransformerBeanDescriptor<?>) { 495 DataTypeFamily dataTypeFamily = ((TransformerBeanDescriptor<?>) descriptor).getOutputDataTypeFamily();496 write(" - Output type is: " + dataType Family);494 Class<?> dataType = ((TransformerBeanDescriptor<?>) descriptor).getOutputDataType(); 495 write(" - Output type is: " + dataType.getSimpleName()); 497 496 } 498 497 -
AnalyzerBeans/trunk/cli/src/test/java/org/eobjects/analyzer/cli/MainTest.java
r3070 r3103 148 148 149 149 assertTrue(out.indexOf("name: Email standardizer") != -1); 150 assertTrue(out.indexOf("Output type is: S TRING") != -1);150 assertTrue(out.indexOf("Output type is: String") != -1); 151 151 } 152 152 -
AnalyzerBeans/trunk/components/el/pom.xml
r3083 r3103 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 1 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 2 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 2 3 <modelVersion>4.0.0</modelVersion> 3 4 <parent> … … 16 17 <dependency> 17 18 <groupId>de.odysseus.juel</groupId> 18 <artifactId>juel</artifactId> 19 <version>2.1.3</version> 19 <artifactId>juel-impl</artifactId> 20 <version>2.2.4</version> 21 <exclusions> 22 <exclusion> 23 <groupId>de.odysseus.juel</groupId> 24 <artifactId>juel-api</artifactId> 25 </exclusion> 26 </exclusions> 27 </dependency> 28 <dependency> 29 <groupId>javax.el</groupId> 30 <artifactId>javax.el-api</artifactId> 31 <version>2.2.4</version> 20 32 </dependency> 21 33 </dependencies> -
AnalyzerBeans/trunk/components/el/src/main/java/org/eobjects/analyzer/data/ELInputColumn.java
r3097 r3103 44 44 private static final long serialVersionUID = 1L; 45 45 46 private static final Logger logger = LoggerFactory.getLogger(ELInputColumn.class); 46 private static final Logger logger = LoggerFactory 47 .getLogger(ELInputColumn.class); 47 48 48 49 private final ExpressionFactory _factory; … … 61 62 if (!(inputColumn instanceof ExpressionBasedInputColumn)) { 62 63 Object value = row.getValue(inputColumn); 63 Class<?> javaType = inputColumn.getDataTypeFamily().getJavaType(); 64 ValueExpression valueExpression = _factory.createValueExpression(value, javaType); 64 Class<?> javaType = inputColumn.getDataType(); 65 ValueExpression valueExpression = _factory 66 .createValueExpression(value, javaType); 65 67 String variableName = inputColumn.getName(); 66 variableName = StringUtils.replaceWhitespaces(variableName, "_"); 68 variableName = StringUtils 69 .replaceWhitespaces(variableName, "_"); 67 70 context.setVariable(variableName, valueExpression); 68 71 } … … 70 73 71 74 try { 72 ValueExpression valueExpression = _factory.createValueExpression(context, _expression, String.class); 75 ValueExpression valueExpression = _factory.createValueExpression( 76 context, _expression, String.class); 73 77 return (String) valueExpression.getValue(context); 74 78 } catch (ELException e) { … … 83 87 } 84 88 89 @SuppressWarnings("deprecation") 85 90 @Override 86 public DataTypeFamily getDataTypeFamily() {87 return DataTypeFamily.STRING;91 public org.eobjects.analyzer.data.DataTypeFamily getDataTypeFamily() { 92 return org.eobjects.analyzer.data.DataTypeFamily.STRING; 88 93 } 89 94 95 @Override 96 public Class<? extends String> getDataType() { 97 return String.class; 98 } 90 99 } -
AnalyzerBeans/trunk/components/javascript/src/main/java/org/eobjects/analyzer/beans/script/JavaScriptUtils.java
r1461 r3103 20 20 package org.eobjects.analyzer.beans.script; 21 21 22 import org.eobjects.analyzer.data.DataTypeFamily;23 22 import org.eobjects.analyzer.data.InputColumn; 24 23 import org.eobjects.analyzer.data.InputRow; 24 import org.eobjects.analyzer.util.ReflectionUtils; 25 25 import org.mozilla.javascript.Context; 26 26 import org.mozilla.javascript.NativeArray; … … 69 69 70 70 if (value != null) { 71 if (column.getDataTypeFamily() == DataTypeFamily.NUMBER) { 71 Class<?> dataType = column.getDataType(); 72 if (ReflectionUtils.isNumber(dataType)) { 72 73 value = Context.toNumber(value); 73 } else if ( column.getDataTypeFamily() == DataTypeFamily.BOOLEAN) {74 } else if (ReflectionUtils.isBoolean(dataType)) { 74 75 value = Context.toBoolean(value); 75 76 } -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/beans/filter/EqualsFilter.java
r3042 r3103 32 32 import org.eobjects.analyzer.beans.convert.ConvertToNumberTransformer; 33 33 import org.eobjects.analyzer.beans.convert.ConvertToStringTransformer; 34 import org.eobjects.analyzer.data.DataTypeFamily;35 34 import org.eobjects.analyzer.data.InputColumn; 36 35 import org.eobjects.analyzer.data.InputRow; 36 import org.eobjects.analyzer.util.ReflectionUtils; 37 37 import org.eobjects.metamodel.query.FilterItem; 38 38 import org.eobjects.metamodel.query.OperatorType; … … 72 72 @Initialize 73 73 public void init() { 74 DataTypeFamily dataTypeFamily = column.getDataTypeFamily();74 Class<?> dataType = column.getDataType(); 75 75 operands = new Object[values.length]; 76 76 for (int i = 0; i < values.length; i++) { 77 77 final String value = values[i]; 78 78 final Object operand; 79 if ( dataTypeFamily == DataTypeFamily.BOOLEAN) {79 if (ReflectionUtils.isBoolean(dataType)) { 80 80 operand = ConvertToBooleanTransformer.transformValue(value, ConvertToBooleanTransformer.DEFAULT_TRUE_TOKENS, 81 81 ConvertToBooleanTransformer.DEFAULT_FALSE_TOKENS); 82 } else if ( dataTypeFamily == DataTypeFamily.DATE) {82 } else if (ReflectionUtils.isDate(dataType)) { 83 83 operand = ConvertToDateTransformer.getInternalInstance().transformValue(value); 84 } else if ( dataTypeFamily == DataTypeFamily.NUMBER) {84 } else if (ReflectionUtils.isNumber(dataType)) { 85 85 operand = ConvertToNumberTransformer.transformValue(value); 86 86 number = true; -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/beans/filter/NullCheckFilter.java
r3053 r3103 28 28 import org.eobjects.analyzer.beans.api.FilterBean; 29 29 import org.eobjects.analyzer.beans.api.QueryOptimizedFilter; 30 import org.eobjects.analyzer.data.DataTypeFamily;31 30 import org.eobjects.analyzer.data.InputColumn; 32 31 import org.eobjects.analyzer.data.InputRow; … … 82 81 Column column = col.getPhysicalColumn(); 83 82 q.where(column, OperatorType.DIFFERENT_FROM, null); 84 if (considerEmptyStringAsNull && col.getDataType Family() == DataTypeFamily.STRING) {83 if (considerEmptyStringAsNull && col.getDataType() == String.class) { 85 84 q.where(column, OperatorType.DIFFERENT_FROM, ""); 86 85 } … … 95 94 FilterItem fi1 = new FilterItem(selectItem, OperatorType.EQUALS_TO, null); 96 95 filterItems.add(fi1); 97 if (considerEmptyStringAsNull && col.getDataType Family() == DataTypeFamily.STRING) {96 if (considerEmptyStringAsNull && col.getDataType() == String.class) { 98 97 FilterItem fi2 = new FilterItem(selectItem, OperatorType.EQUALS_TO, ""); 99 98 filterItems.add(fi2); -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/data/AbstractInputColumn.java
r3031 r3103 36 36 } 37 37 38 @SuppressWarnings("unchecked")39 @Override40 public Class<? extends E> getDataType() {41 return (Class<? extends E>) getDataTypeFamily().getJavaType();42 }43 44 38 @Override 45 39 public Column getPhysicalColumn() throws IllegalStateException { … … 76 70 if (obj.getClass() == this.getClass()) { 77 71 AbstractInputColumn<?> that = (AbstractInputColumn<?>) obj; 78 if (that.getDataType Family() == this.getDataTypeFamily()) {72 if (that.getDataType() == this.getDataType()) { 79 73 if (that.isPhysicalColumn() == this.isPhysicalColumn()) { 80 74 return equalsInternal(that); -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/data/ConstantInputColumn.java
r3031 r3103 31 31 */ 32 32 public final class ConstantInputColumn extends AbstractExpressionBasedInputColumn<String> { 33 33 34 34 private static final long serialVersionUID = 1L; 35 35 … … 49 49 } 50 50 51 @SuppressWarnings("deprecation") 51 52 @Override 52 public DataTypeFamily getDataTypeFamily() {53 return DataTypeFamily.STRING;53 public org.eobjects.analyzer.data.DataTypeFamily getDataTypeFamily() { 54 return org.eobjects.analyzer.data.DataTypeFamily.STRING; 54 55 } 55 56 … … 58 59 return _value; 59 60 } 61 62 @Override 63 public Class<? extends String> getDataType() { 64 return String.class; 65 } 60 66 } -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/data/MetaModelInputColumn.java
r3031 r3103 89 89 90 90 @Override 91 @SuppressWarnings("deprecation") 91 92 public DataTypeFamily getDataTypeFamily() { 92 93 ColumnType type = _column.getType(); -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/data/MetaModelInputRow.java
r3072 r3103 22 22 import java.util.ArrayList; 23 23 import java.util.List; 24 25 import org.eobjects.analyzer.beans.convert.ConvertToBooleanTransformer;26 import org.eobjects.analyzer.beans.convert.ConvertToDateTransformer;27 import org.eobjects.analyzer.beans.convert.ConvertToNumberTransformer;28 import org.eobjects.analyzer.beans.convert.ConvertToStringTransformer;29 24 30 25 import org.eobjects.metamodel.data.Row; … … 79 74 Column physicalColumn = column.getPhysicalColumn(); 80 75 Object value = _row.getValue(physicalColumn); 81 82 DataTypeFamily dataTypeFamily = column.getDataTypeFamily(); 83 switch (dataTypeFamily) { 84 case DATE: 85 value = ConvertToDateTransformer.getInternalInstance().transformValue(value); 86 break; 87 case BOOLEAN: 88 value = ConvertToBooleanTransformer.transformValue(value, ConvertToBooleanTransformer.DEFAULT_TRUE_TOKENS, 89 ConvertToBooleanTransformer.DEFAULT_FALSE_TOKENS); 90 break; 91 case NUMBER: 92 value = ConvertToNumberTransformer.transformValue(value); 93 break; 94 case STRING: 95 value = ConvertToStringTransformer.transformValue(value); 96 break; 97 } 98 76 99 77 return (E) value; 100 78 } -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/data/MockInputColumn.java
r3031 r3103 31 31 */ 32 32 public class MockInputColumn<E> extends AbstractInputColumn<E> { 33 33 34 34 private static final long serialVersionUID = 1L; 35 35 … … 52 52 } 53 53 54 @SuppressWarnings("deprecation") 54 55 @Override 55 56 public DataTypeFamily getDataTypeFamily() { -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/data/TransformedInputColumn.java
r2611 r3103 38 38 39 39 private final String _id; 40 private DataTypeFamily _dataTypeFamily;41 40 private Class<?> _dataType; 42 41 private String _name; … … 77 76 } 78 77 79 public void setDataTypeFamily(DataTypeFamily dataTypeFamily) {80 _dataTypeFamily = dataTypeFamily;81 }82 83 78 @Override 84 79 public boolean isPhysicalColumn() { … … 91 86 } 92 87 88 @SuppressWarnings("deprecation") 93 89 @Override 94 90 public DataTypeFamily getDataTypeFamily() { 95 return _dataTypeFamily;91 return DataTypeFamily.valueOf(_dataType); 96 92 } 97 93 -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/descriptors/AnnotationBasedTransformerBeanDescriptor.java
r3031 r3103 22 22 import org.eobjects.analyzer.beans.api.Transformer; 23 23 import org.eobjects.analyzer.beans.api.TransformerBean; 24 import org.eobjects.analyzer.data.DataTypeFamily;25 24 import org.eobjects.analyzer.util.ReflectionUtils; 26 25 27 26 final class AnnotationBasedTransformerBeanDescriptor<T extends Transformer<?>> extends AbstractBeanDescriptor<T> implements 28 27 TransformerBeanDescriptor<T> { 29 28 30 29 private static final long serialVersionUID = 1L; 31 30 … … 59 58 60 59 @Override 61 public DataTypeFamily getOutputDataTypeFamily() {60 public Class<?> getOutputDataType() { 62 61 Class<?> typeParameter = ReflectionUtils.getTypeParameter(getComponentClass(), Transformer.class, 0); 63 if (typeParameter == null) { 64 throw new IllegalStateException("Could not determine Transformer's output data type"); 65 } 66 return DataTypeFamily.valueOf(typeParameter); 62 return typeParameter; 63 } 67 64 68 // Type[] interfaces = getComponentClass().getGenericInterfaces(); 69 // for (Type type : interfaces) { 70 // if (type instanceof ParameterizedType) { 71 // ParameterizedType pType = (ParameterizedType) type; 72 // if (pType.getRawType() == Transformer.class) { 73 // Class<?> typeParameter = ReflectionUtils.getTypeParameter(pType, 0); 74 // return DataTypeFamily.valueOf(typeParameter); 75 // } 76 // } 77 // } 78 // return DataTypeFamily.UNDEFINED; 65 @Override 66 @SuppressWarnings("deprecation") 67 public org.eobjects.analyzer.data.DataTypeFamily getOutputDataTypeFamily() { 68 Class<?> outputDataType = getOutputDataType(); 69 return org.eobjects.analyzer.data.DataTypeFamily.valueOf(outputDataType); 79 70 } 80 71 } -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/descriptors/ConfiguredPropertyDescriptor.java
r2755 r3103 23 23 import org.eobjects.analyzer.beans.api.Convertable; 24 24 import org.eobjects.analyzer.beans.api.Converter; 25 import org.eobjects.analyzer.data.DataTypeFamily;26 25 import org.eobjects.analyzer.util.HasAliases; 27 26 … … 52 51 53 52 /** 54 * Gets the {@link DataTypeFamily} of the configured property, if it is an 55 * input column type property (see {@link #isInputColumn()}) 53 * Gets the {@link org.eobjects.analyzer.data.DataTypeFamily} of the 54 * configured property, if it is an input column type property (see 55 * {@link #isInputColumn()}) 56 56 * 57 57 * @return 58 * 59 * @deprecated use {@link #getType()} and {@link #getTypeArgument(int)} 60 * instead 58 61 */ 59 public DataTypeFamily getInputColumnDataTypeFamily(); 62 @Deprecated 63 public org.eobjects.analyzer.data.DataTypeFamily getInputColumnDataTypeFamily(); 60 64 61 65 /** -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/descriptors/ConfiguredPropertyDescriptorImpl.java
r3031 r3103 28 28 import org.eobjects.analyzer.beans.api.Converter; 29 29 import org.eobjects.analyzer.beans.api.Description; 30 import org.eobjects.analyzer.data.DataTypeFamily;31 30 import org.eobjects.analyzer.util.ReflectionUtils; 32 31 … … 78 77 } 79 78 79 @SuppressWarnings("deprecation") 80 80 @Override 81 public DataTypeFamily getInputColumnDataTypeFamily() {81 public org.eobjects.analyzer.data.DataTypeFamily getInputColumnDataTypeFamily() { 82 82 if (isInputColumn()) { 83 83 int count = getTypeArgumentCount(); 84 84 if (count == 0) { 85 return DataTypeFamily.UNDEFINED;85 return org.eobjects.analyzer.data.DataTypeFamily.UNDEFINED; 86 86 } 87 87 Type typeArgument = getTypeArgument(0); 88 return DataTypeFamily.valueOf(typeArgument);88 return org.eobjects.analyzer.data.DataTypeFamily.valueOf(typeArgument); 89 89 } 90 90 return null; -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/descriptors/TransformerBeanDescriptor.java
r2611 r3103 21 21 22 22 import org.eobjects.analyzer.beans.api.Transformer; 23 import org.eobjects.analyzer.data.DataTypeFamily;24 23 25 24 /** … … 33 32 34 33 /** 35 * Gets the output data's {@link DataTypeFamily}.34 * Gets the output data's {@link org.eobjects.analyzer.data.DataTypeFamily}. 36 35 * 37 * @return a {@link DataTypeFamily} value that represents the data type of 38 * this transformer bean's output. 36 * @return a {@link org.eobjects.analyzer.data.DataTypeFamily} value that 37 * represents the data type of this transformer bean's output. 38 * 39 * @deprecated use {@link #getOutputDataType()} instead. 39 40 */ 40 public DataTypeFamily getOutputDataTypeFamily(); 41 41 @Deprecated 42 public org.eobjects.analyzer.data.DataTypeFamily getOutputDataTypeFamily(); 43 44 /** 45 * Gets the output data's default data type. Note that individual output 46 * columns of the transformer can override this data type. 47 * 48 * @return the default data type of the transformed columns. 49 */ 50 public Class<?> getOutputDataType(); 51 42 52 } -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/job/builder/AbstractBeanWithInputColumnsBuilder.java
r3051 r3103 28 28 import java.util.Set; 29 29 30 import org.eobjects.analyzer.data.DataTypeFamily;31 30 import org.eobjects.analyzer.data.InputColumn; 32 31 import org.eobjects.analyzer.descriptors.BeanDescriptor; … … 37 36 import org.eobjects.analyzer.job.OutcomeSourceJob; 38 37 import org.eobjects.analyzer.util.CollectionUtils2; 38 import org.eobjects.analyzer.util.ReflectionUtils; 39 39 import org.eobjects.metamodel.util.CollectionUtils; 40 40 … … 86 86 // delegate to 87 87 public B addInputColumn(InputColumn<?> inputColumn, ConfiguredPropertyDescriptor propertyDescriptor) { 88 DataTypeFamily expectedDataTypeFamily = propertyDescriptor.getInputColumnDataTypeFamily(); 89 if (expectedDataTypeFamily != DataTypeFamily.UNDEFINED) { 90 DataTypeFamily actualDataTypeFamily = inputColumn.getDataTypeFamily(); 91 if (expectedDataTypeFamily != actualDataTypeFamily) { 92 throw new IllegalArgumentException("Unsupported InputColumn type: " + actualDataTypeFamily + ", expected: " 93 + expectedDataTypeFamily); 88 if (propertyDescriptor == null || !propertyDescriptor.isInputColumn()) { 89 throw new IllegalArgumentException("Property is not of InputColumn type: " + propertyDescriptor); 90 } 91 92 final Class<?> expectedDataType = propertyDescriptor.getTypeArgument(0); 93 if (expectedDataType != null && expectedDataType != Object.class) { 94 // check input column type parameter compatibility 95 final Class<?> actualDataType = inputColumn.getDataType(); 96 if (!ReflectionUtils.is(actualDataType, expectedDataType, false)) { 97 throw new IllegalArgumentException("Unsupported InputColumn type: " + actualDataType + ", expected: " 98 + expectedDataType); 94 99 } 95 100 } … … 200 205 return true; 201 206 } 202 207 203 208 return validateRequirementCandidate(outcomes[0]); 204 209 } -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/job/builder/AnalysisJobBuilder.java
r3000 r3103 34 34 import org.eobjects.analyzer.connection.Datastore; 35 35 import org.eobjects.analyzer.connection.DatastoreConnection; 36 import org.eobjects.analyzer.data.DataTypeFamily;37 36 import org.eobjects.analyzer.data.InputColumn; 38 37 import org.eobjects.analyzer.data.MetaModelInputColumn; … … 500 499 * the {@link DataTypeFamily} to search for 501 500 * @return a list of matching InputColumns. 502 */ 503 public List<InputColumn<?>> getAvailableInputColumns(DataTypeFamily dataTypeFamily) { 501 * @deprecated use {@link #getAvailableInputColumns(Class)} instead 502 */ 503 @Deprecated 504 public List<InputColumn<?>> getAvailableInputColumns(org.eobjects.analyzer.data.DataTypeFamily dataTypeFamily) { 504 505 return getAvailableInputColumns(dataTypeFamily, null); 505 506 } … … 509 510 * given data type specification. 510 511 * 512 * @param dataType 513 * the data type to look for 514 * @return a list of matching input columns 515 */ 516 public List<InputColumn<?>> getAvailableInputColumns(Class<?> dataType) { 517 return getAvailableInputColumns(null, dataType); 518 } 519 520 /** 521 * Finds the available input columns (source or transformed) that match the 522 * given data type specification. 523 * 511 524 * @param dataTypeFamily 512 * the {@link DataTypeFamily} to search for 525 * the {@link org.eobjects.analyzer.data.DataTypeFamily} to 526 * search for 513 527 * @param dataType 514 528 * optionally a concrete type to look for, if the 515 * {@link DataTypeFamily} is null or516 * {@link DataTypeFamily#UNDEFINED}.529 * {@link org.eobjects.analyzer.data.DataTypeFamily} is null or 530 * {@link org.eobjects.analyzer.data.DataTypeFamily#UNDEFINED}. 517 531 * @return a list of matching InputColumns. 518 */ 519 public List<InputColumn<?>> getAvailableInputColumns(DataTypeFamily dataTypeFamily, Class<?> dataType) { 532 * 533 * @deprecated use {@link #getAvailableInputColumns(Class)} instead 534 */ 535 @Deprecated 536 public List<InputColumn<?>> getAvailableInputColumns(org.eobjects.analyzer.data.DataTypeFamily dataTypeFamily, 537 Class<?> dataType) { 520 538 SourceColumnFinder finder = new SourceColumnFinder(); 521 539 finder.addSources(this); -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/job/builder/MergedOutcomeJobBuilder.java
r2617 r3103 122 122 InputColumn<?> inputColumn = inputColumns.get(i); 123 123 TransformedInputColumn<Object> outputColumn = new TransformedInputColumn<Object>("Merged column " + (i + 1), _idGenerator); 124 outputColumn.setDataTypeFamily(inputColumn.getDataTypeFamily());125 124 outputColumn.setDataType(inputColumn.getDataType()); 126 125 _outputColumns.add(outputColumn); -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/job/builder/TransformerJobBuilder.java
r3021 r3103 28 28 import org.eobjects.analyzer.configuration.InjectionManager; 29 29 import org.eobjects.analyzer.configuration.InjectionManagerImpl; 30 import org.eobjects.analyzer.data.DataTypeFamily;31 30 import org.eobjects.analyzer.data.InputColumn; 32 31 import org.eobjects.analyzer.data.MutableInputColumn; … … 126 125 Class<?> dataType = outputColumns.getColumnType(i); 127 126 if (dataType == null) { 128 dataType = descriptor.getOutputDataTypeFamily().getJavaType(); 129 } 130 DataTypeFamily dataTypeFamily = DataTypeFamily.valueOf(dataType); 127 dataType = descriptor.getOutputDataType(); 128 } 131 129 132 130 TransformedInputColumn<?> col = (TransformedInputColumn<?>) _outputColumns.get(i); … … 134 132 if (dataType != col.getDataType()) { 135 133 col.setDataType(dataType); 136 changed = true;137 }138 if (dataTypeFamily != col.getDataTypeFamily()) {139 col.setDataTypeFamily(dataTypeFamily);140 134 changed = true; 141 135 } -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/util/SourceColumnFinder.java
r3049 r3103 27 27 import java.util.TreeSet; 28 28 29 import org.eobjects.analyzer.data.DataTypeFamily;30 29 import org.eobjects.analyzer.data.ExpressionBasedInputColumn; 31 30 import org.eobjects.analyzer.data.InputColumn; … … 91 90 } 92 91 93 public List<InputColumn<?>> findInputColumns(DataTypeFamily dataTypeFamily, Class<?> dataType) { 92 public List<InputColumn<?>> findInputColumns(Class<?> dataType) { 93 return findInputColumns(null, dataType); 94 } 95 96 /** 97 * @deprecated use {@link #findInputColumns(Class)} instead. 98 */ 99 @Deprecated 100 public List<InputColumn<?>> findInputColumns(org.eobjects.analyzer.data.DataTypeFamily dataTypeFamily, Class<?> dataType) { 94 101 if (dataTypeFamily == null) { 95 dataTypeFamily = DataTypeFamily.UNDEFINED;102 dataTypeFamily = org.eobjects.analyzer.data.DataTypeFamily.UNDEFINED; 96 103 } 97 104 … … 100 107 InputColumn<?>[] outputColumns = source.getOutput(); 101 108 for (InputColumn<?> col : outputColumns) { 102 final DataTypeFamily columnFamily = col.getDataTypeFamily();103 if (columnFamily == dataTypeFamily || dataTypeFamily == DataTypeFamily.UNDEFINED) {109 final org.eobjects.analyzer.data.DataTypeFamily columnFamily = col.getDataTypeFamily(); 110 if (columnFamily == dataTypeFamily || dataTypeFamily == org.eobjects.analyzer.data.DataTypeFamily.UNDEFINED) { 104 111 final Class<?> columnDataType = col.getDataType(); 105 112 if (dataType == null || columnDataType == null) { -
AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/util/StandardTypeConverter.java
r2736 r3103 108 108 return Float.valueOf(str); 109 109 } 110 if (ReflectionUtils.is(type, Class.class)) { 111 try { 112 return Class.forName(str); 113 } catch (ClassNotFoundException e) { 114 throw new IllegalArgumentException("Class not found: " + str, e); 115 } 116 } 110 117 if (type.isEnum()) { 111 118 try { … … 154 161 ChangeAwareObjectInputStream objectInputStream = null; 155 162 try { 156 objectInputStream = new ChangeAwareObjectInputStream(new ByteArrayInputStream( 157 bytes)); 163 objectInputStream = new ChangeAwareObjectInputStream(new ByteArrayInputStream(bytes)); 158 164 objectInputStream.addClassLoader(type.getClassLoader()); 159 165 Object obj = objectInputStream.readObject(); … … 192 198 } else if (o instanceof Enum) { 193 199 return ((Enum<?>) o).name(); 200 } else if (o instanceof Class) { 201 result = ((Class<?>) o).getName(); 194 202 } else if (o instanceof Serializable) { 195 203 logger.info("toString(...): No built-in handling of type: {}, using serialization.", o.getClass().getName()); -
AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/beans/datastructures/DataStructuresIntegrationTest.java
r3102 r3103 83 83 } 84 84 85 assertSame(1, ajb.getAvailableInputColumns( null,Map.class).size());86 assertSame(mapColumn, ajb.getAvailableInputColumns( null,Map.class).get(0));87 assertSame(1, ajb.getAvailableInputColumns( null,List.class).size());88 assertSame(listColumn, ajb.getAvailableInputColumns( null,List.class).get(0));85 assertSame(1, ajb.getAvailableInputColumns(Map.class).size()); 86 assertSame(mapColumn, ajb.getAvailableInputColumns(Map.class).get(0)); 87 assertSame(1, ajb.getAvailableInputColumns(List.class).size()); 88 assertSame(listColumn, ajb.getAvailableInputColumns(List.class).get(0)); 89 89 90 90 final MutableInputColumn<?> elementColumn; -
AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/data/MetaModelInputColumnTest.java
r1555 r3103 26 26 public class MetaModelInputColumnTest extends TestCase { 27 27 28 @SuppressWarnings("deprecation") 28 29 public void testGetDataTypeFamily() throws Exception { 29 30 assertEquals(DataTypeFamily.STRING, -
AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/descriptors/AnnotationBasedAnalyzerBeanDescriptorTest.java
r3050 r3103 36 36 import org.eobjects.analyzer.result.AnalyzerResult; 37 37 38 @SuppressWarnings("deprecation") 38 39 public class AnnotationBasedAnalyzerBeanDescriptorTest extends TestCase { 39 40 -
AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/descriptors/AnnotationBasedTransformerBeanDescriptorTest.java
r2604 r3103 22 22 import java.util.Set; 23 23 24 import junit.framework.TestCase; 25 24 26 import org.eobjects.analyzer.beans.api.OutputRowCollector; 25 27 import org.eobjects.analyzer.beans.convert.ConvertToNumberTransformer; … … 30 32 import org.eobjects.analyzer.job.tasks.MockMultiRowTransformer; 31 33 32 import junit.framework.TestCase; 33 34 @SuppressWarnings("deprecation") 34 35 public class AnnotationBasedTransformerBeanDescriptorTest extends TestCase { 35 36 -
AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/descriptors/ConfiguredPropertyDescriptorImplTest.java
r3049 r3103 49 49 InputColumn<byte[]> someBytes; 50 50 51 @Configured 52 InputColumn<String>[] stringColumns; 53 51 54 @Override 52 55 protected void setUp() throws Exception { … … 55 58 } 56 59 57 public void testGetTypeParameterOfArrayType () throws Exception {60 public void testGetTypeParameterOfArrayType1() throws Exception { 58 61 ConfiguredPropertyDescriptor descriptor = new ConfiguredPropertyDescriptorImpl(getClass().getDeclaredField( 59 62 "someBytes"), null); … … 61 64 Class<?> typeArgument = descriptor.getTypeArgument(0); 62 65 assertEquals(byte[].class, typeArgument); 66 } 67 68 public void testGetTypeParameterOfArrayType2() throws Exception { 69 ConfiguredPropertyDescriptor descriptor = new ConfiguredPropertyDescriptorImpl(getClass().getDeclaredField( 70 "stringColumns"), null); 71 assertEquals(1, descriptor.getTypeArgumentCount()); 72 Class<?> typeArgument = descriptor.getTypeArgument(0); 73 assertEquals(String.class, typeArgument); 63 74 } 64 75 -
AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/job/builder/AnalysisJobBuilderTest.java
r3095 r3103 47 47 import org.eobjects.analyzer.connection.DatastoreConnection; 48 48 import org.eobjects.analyzer.connection.JdbcDatastore; 49 import org.eobjects.analyzer.data.DataTypeFamily;50 49 import org.eobjects.analyzer.data.InputColumn; 51 50 import org.eobjects.analyzer.data.MetaModelInputColumn; … … 147 146 .addTransformer(ConvertToStringTransformer.class); 148 147 149 Collection<InputColumn<?>> numberColumns = analysisJobBuilder.getAvailableInputColumns( DataTypeFamily.NUMBER, null);148 Collection<InputColumn<?>> numberColumns = analysisJobBuilder.getAvailableInputColumns(Number.class); 150 149 assertEquals(1, numberColumns.size()); 151 150 assertEquals("[MetaModelInputColumn[PUBLIC.EMPLOYEES.EMPLOYEENUMBER]]", Arrays.toString(numberColumns.toArray())); … … 159 158 AnalyzerJobBuilder<StringAnalyzer> analyzerJobBuilder = analysisJobBuilder.addAnalyzer(StringAnalyzer.class); 160 159 161 List<InputColumn<?>> stringInputColumns = analysisJobBuilder.getAvailableInputColumns( DataTypeFamily.STRING, null);160 List<InputColumn<?>> stringInputColumns = analysisJobBuilder.getAvailableInputColumns(String.class); 162 161 Set<String> columnNames = new TreeSet<String>(); 163 162 for (InputColumn<?> inputColumn : stringInputColumns) { -
AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/job/builder/TransformerJobBuilderTest.java
r2667 r3103 20 20 package org.eobjects.analyzer.job.builder; 21 21 22 import java.util.Date; 22 23 import java.util.LinkedList; 23 24 import java.util.List; … … 33 34 import org.eobjects.analyzer.configuration.AnalyzerBeansConfigurationImpl; 34 35 import org.eobjects.analyzer.data.ConstantInputColumn; 35 import org.eobjects.analyzer.data.DataTypeFamily;36 36 import org.eobjects.analyzer.data.InputColumn; 37 37 import org.eobjects.analyzer.data.MockInputColumn; … … 116 116 117 117 public void testGetAvailableInputColumns() throws Exception { 118 assertEquals(2, ajb.getAvailableInputColumns( DataTypeFamily.UNDEFINED, null).size());119 assertEquals(2, ajb.getAvailableInputColumns( null,null).size());120 assertEquals(1, ajb.getAvailableInputColumns( DataTypeFamily.STRING, null).size());121 assertEquals(0, ajb.getAvailableInputColumns(Dat aTypeFamily.DATE, null).size());118 assertEquals(2, ajb.getAvailableInputColumns(Object.class).size()); 119 assertEquals(2, ajb.getAvailableInputColumns((Class<?>) null).size()); 120 assertEquals(1, ajb.getAvailableInputColumns(String.class).size()); 121 assertEquals(0, ajb.getAvailableInputColumns(Date.class).size()); 122 122 } 123 123 … … 130 130 fail("Exception expected"); 131 131 } catch (IllegalArgumentException e) { 132 assertEquals("Unsupported InputColumn type: NUMBER, expected: STRING", e.getMessage());132 assertEquals("Unsupported InputColumn type: class java.lang.Integer, expected: class java.lang.String", e.getMessage()); 133 133 } 134 134 assertFalse(tjb.isConfigured()); -
AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/test/full/scenarios/ValueDistributionAndStringAnalysisTest.java
r2749 r3103 31 31 import org.eobjects.analyzer.connection.DatastoreConnection; 32 32 import org.eobjects.analyzer.connection.JdbcDatastore; 33 import org.eobjects.analyzer.data.DataTypeFamily;34 33 import org.eobjects.analyzer.data.InputColumn; 35 34 import org.eobjects.analyzer.data.InputRow; … … 88 87 89 88 AnalyzerJobBuilder<StringAnalyzer> stringAnalyzerJob = analysisJobBuilder.addAnalyzer(StringAnalyzer.class); 90 stringAnalyzerJob.addInputColumns(analysisJobBuilder.getAvailableInputColumns( DataTypeFamily.STRING, null));89 stringAnalyzerJob.addInputColumns(analysisJobBuilder.getAvailableInputColumns(String.class)); 91 90 92 91 AnalysisJob analysisJob = analysisJobBuilder.toAnalysisJob(); -
AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/util/SourceColumnFinderTest.java
r2667 r3103 27 27 import org.eobjects.analyzer.customcolumn.MockConvertToMonthObjectTransformer; 28 28 import org.eobjects.analyzer.customcolumn.Month; 29 import org.eobjects.analyzer.data.DataTypeFamily;30 29 import org.eobjects.analyzer.data.InputColumn; 31 30 import org.eobjects.analyzer.data.MockInputColumn; … … 40 39 analysisJobBuilder.addTransformer(MockConvertToMonthObjectTransformer.class).addInputColumn(new MockInputColumn<String>("month", String.class)); 41 40 columnFinder.addSources(analysisJobBuilder); 42 List<InputColumn<?>> findInputColumns = columnFinder.findInputColumns( DataTypeFamily.UNDEFINED,Month.class);41 List<InputColumn<?>> findInputColumns = columnFinder.findInputColumns(Month.class); 43 42 assertEquals(1, findInputColumns.size()); 44 43 } -
AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/util/StringConverterTest.java
r2734 r3103 90 90 runTests((short) 12, "12"); 91 91 runTests((byte) 12, "12"); 92 runTests(String.class, "java.lang.String"); 92 93 runTests(1337.0, "1337.0"); 93 94 runTests(1337.0f, "1337.0");
Note: See TracChangeset
for help on using the changeset viewer.
