Changeset 3103


Ignore:
Timestamp:
01/31/12 22:13:13 (4 months ago)
Author:
kasper
Message:

Ticket #751: Deprecated DataTypeFamily? and replaced it with java types throughout AnalyzerBeans

Location:
AnalyzerBeans/trunk
Files:
37 edited

Legend:

Unmodified
Added
Removed
  • AnalyzerBeans/trunk/api/src/main/java/org/eobjects/analyzer/data/DataTypeFamily.java

    r2551 r3103  
    5151 *  
    5252 * @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. 
    5356 */ 
     57@Deprecated 
    5458public enum DataTypeFamily { 
    5559 
  • AnalyzerBeans/trunk/api/src/main/java/org/eobjects/analyzer/data/InputColumn.java

    r3031 r3103  
    7979         * @return the family of datatypes that matches column's data type. This 
    8080         *         value should be corresponding to the type-parameter <E>. 
     81         *  
     82         * @deprecated use {@link #getDataType()} instead. 
    8183         */ 
     84        @Deprecated 
    8285        public DataTypeFamily getDataTypeFamily(); 
    8386} 
  • AnalyzerBeans/trunk/api/src/test/java/org/eobjects/analyzer/beans/api/DataTypeFamilyTest.java

    r3025 r3103  
    2222import java.util.Date; 
    2323 
     24import junit.framework.TestCase; 
     25 
    2426import org.eobjects.analyzer.data.DataTypeFamily; 
    2527 
    26 import junit.framework.TestCase; 
    27  
     28@SuppressWarnings("deprecation") 
    2829public class DataTypeFamilyTest extends TestCase { 
    2930 
  • AnalyzerBeans/trunk/api/src/test/java/org/eobjects/analyzer/data/DataTypeFamilyTest.java

    r2551 r3103  
    2424import junit.framework.TestCase; 
    2525 
     26@SuppressWarnings("deprecation") 
    2627public class DataTypeFamilyTest extends TestCase { 
    2728 
     
    3536 
    3637        public void testValueOfClass() throws Exception { 
    37                 assertEquals(DataTypeFamily.BOOLEAN, 
    38                                 DataTypeFamily.valueOf(Boolean.class)); 
     38                assertEquals(DataTypeFamily.BOOLEAN, DataTypeFamily.valueOf(Boolean.class)); 
    3939                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)); 
    5246        } 
    5347} 
  • AnalyzerBeans/trunk/cli/src/main/java/org/eobjects/analyzer/cli/CliRunner.java

    r3070 r3103  
    4545import org.eobjects.analyzer.connection.Datastore; 
    4646import org.eobjects.analyzer.connection.DatastoreConnection; 
    47 import org.eobjects.analyzer.data.DataTypeFamily; 
    4847import org.eobjects.analyzer.descriptors.AnalyzerBeanDescriptor; 
    4948import org.eobjects.analyzer.descriptors.BeanDescriptor; 
     
    464463                                if (propertyForInput != null) { 
    465464                                        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() + ")"); 
    468467                                        } 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() + ")"); 
    471470                                        } 
    472471                                } 
     
    476475                                        if (propertyForInput.isArray()) { 
    477476                                                write("   Input columns: " + propertyForInput.getName() + " (type: " 
    478                                                                 + propertyForInput.getInputColumnDataTypeFamily() + ")"); 
     477                                                                + propertyForInput.getTypeArgument(0).getSimpleName() + ")"); 
    479478                                        } else { 
    480479                                                write("   Input column: " + propertyForInput.getName() + " (type: " 
    481                                                                 + propertyForInput.getInputColumnDataTypeFamily() + ")"); 
     480                                                                + propertyForInput.getTypeArgument(0).getSimpleName() + ")"); 
    482481                                        } 
    483482                                } 
     
    493492 
    494493                        if (descriptor instanceof TransformerBeanDescriptor<?>) { 
    495                                 DataTypeFamily dataTypeFamily = ((TransformerBeanDescriptor<?>) descriptor).getOutputDataTypeFamily(); 
    496                                 write(" - Output type is: " + dataTypeFamily); 
     494                                Class<?> dataType = ((TransformerBeanDescriptor<?>) descriptor).getOutputDataType(); 
     495                                write(" - Output type is: " + dataType.getSimpleName()); 
    497496                        } 
    498497 
  • AnalyzerBeans/trunk/cli/src/test/java/org/eobjects/analyzer/cli/MainTest.java

    r3070 r3103  
    148148 
    149149                assertTrue(out.indexOf("name: Email standardizer") != -1); 
    150                 assertTrue(out.indexOf("Output type is: STRING") != -1); 
     150                assertTrue(out.indexOf("Output type is: String") != -1); 
    151151        } 
    152152 
  • 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"> 
    23        <modelVersion>4.0.0</modelVersion> 
    34        <parent> 
     
    1617                <dependency> 
    1718                        <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> 
    2032                </dependency> 
    2133        </dependencies> 
  • AnalyzerBeans/trunk/components/el/src/main/java/org/eobjects/analyzer/data/ELInputColumn.java

    r3097 r3103  
    4444        private static final long serialVersionUID = 1L; 
    4545 
    46         private static final Logger logger = LoggerFactory.getLogger(ELInputColumn.class); 
     46        private static final Logger logger = LoggerFactory 
     47                        .getLogger(ELInputColumn.class); 
    4748 
    4849        private final ExpressionFactory _factory; 
     
    6162                        if (!(inputColumn instanceof ExpressionBasedInputColumn)) { 
    6263                                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); 
    6567                                String variableName = inputColumn.getName(); 
    66                                 variableName = StringUtils.replaceWhitespaces(variableName, "_"); 
     68                                variableName = StringUtils 
     69                                                .replaceWhitespaces(variableName, "_"); 
    6770                                context.setVariable(variableName, valueExpression); 
    6871                        } 
     
    7073 
    7174                try { 
    72                         ValueExpression valueExpression = _factory.createValueExpression(context, _expression, String.class); 
     75                        ValueExpression valueExpression = _factory.createValueExpression( 
     76                                        context, _expression, String.class); 
    7377                        return (String) valueExpression.getValue(context); 
    7478                } catch (ELException e) { 
     
    8387        } 
    8488 
     89        @SuppressWarnings("deprecation") 
    8590        @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; 
    8893        } 
    8994 
     95        @Override 
     96        public Class<? extends String> getDataType() { 
     97                return String.class; 
     98        } 
    9099} 
  • AnalyzerBeans/trunk/components/javascript/src/main/java/org/eobjects/analyzer/beans/script/JavaScriptUtils.java

    r1461 r3103  
    2020package org.eobjects.analyzer.beans.script; 
    2121 
    22 import org.eobjects.analyzer.data.DataTypeFamily; 
    2322import org.eobjects.analyzer.data.InputColumn; 
    2423import org.eobjects.analyzer.data.InputRow; 
     24import org.eobjects.analyzer.util.ReflectionUtils; 
    2525import org.mozilla.javascript.Context; 
    2626import org.mozilla.javascript.NativeArray; 
     
    6969 
    7070                        if (value != null) { 
    71                                 if (column.getDataTypeFamily() == DataTypeFamily.NUMBER) { 
     71                                Class<?> dataType = column.getDataType(); 
     72                                if (ReflectionUtils.isNumber(dataType)) { 
    7273                                        value = Context.toNumber(value); 
    73                                 } else if (column.getDataTypeFamily() == DataTypeFamily.BOOLEAN) { 
     74                                } else if (ReflectionUtils.isBoolean(dataType)) { 
    7475                                        value = Context.toBoolean(value); 
    7576                                } 
  • AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/beans/filter/EqualsFilter.java

    r3042 r3103  
    3232import org.eobjects.analyzer.beans.convert.ConvertToNumberTransformer; 
    3333import org.eobjects.analyzer.beans.convert.ConvertToStringTransformer; 
    34 import org.eobjects.analyzer.data.DataTypeFamily; 
    3534import org.eobjects.analyzer.data.InputColumn; 
    3635import org.eobjects.analyzer.data.InputRow; 
     36import org.eobjects.analyzer.util.ReflectionUtils; 
    3737import org.eobjects.metamodel.query.FilterItem; 
    3838import org.eobjects.metamodel.query.OperatorType; 
     
    7272        @Initialize 
    7373        public void init() { 
    74                 DataTypeFamily dataTypeFamily = column.getDataTypeFamily(); 
     74                Class<?> dataType = column.getDataType(); 
    7575                operands = new Object[values.length]; 
    7676                for (int i = 0; i < values.length; i++) { 
    7777                        final String value = values[i]; 
    7878                        final Object operand; 
    79                         if (dataTypeFamily == DataTypeFamily.BOOLEAN) { 
     79                        if (ReflectionUtils.isBoolean(dataType)) { 
    8080                                operand = ConvertToBooleanTransformer.transformValue(value, ConvertToBooleanTransformer.DEFAULT_TRUE_TOKENS, 
    8181                                                ConvertToBooleanTransformer.DEFAULT_FALSE_TOKENS); 
    82                         } else if (dataTypeFamily == DataTypeFamily.DATE) { 
     82                        } else if (ReflectionUtils.isDate(dataType)) { 
    8383                                operand = ConvertToDateTransformer.getInternalInstance().transformValue(value); 
    84                         } else if (dataTypeFamily == DataTypeFamily.NUMBER) { 
     84                        } else if (ReflectionUtils.isNumber(dataType)) { 
    8585                                operand = ConvertToNumberTransformer.transformValue(value); 
    8686                                number = true; 
  • AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/beans/filter/NullCheckFilter.java

    r3053 r3103  
    2828import org.eobjects.analyzer.beans.api.FilterBean; 
    2929import org.eobjects.analyzer.beans.api.QueryOptimizedFilter; 
    30 import org.eobjects.analyzer.data.DataTypeFamily; 
    3130import org.eobjects.analyzer.data.InputColumn; 
    3231import org.eobjects.analyzer.data.InputRow; 
     
    8281                                Column column = col.getPhysicalColumn(); 
    8382                                q.where(column, OperatorType.DIFFERENT_FROM, null); 
    84                                 if (considerEmptyStringAsNull && col.getDataTypeFamily() == DataTypeFamily.STRING) { 
     83                                if (considerEmptyStringAsNull && col.getDataType() == String.class) { 
    8584                                        q.where(column, OperatorType.DIFFERENT_FROM, ""); 
    8685                                } 
     
    9594                                FilterItem fi1 = new FilterItem(selectItem, OperatorType.EQUALS_TO, null); 
    9695                                filterItems.add(fi1); 
    97                                 if (considerEmptyStringAsNull && col.getDataTypeFamily() == DataTypeFamily.STRING) { 
     96                                if (considerEmptyStringAsNull && col.getDataType() == String.class) { 
    9897                                        FilterItem fi2 = new FilterItem(selectItem, OperatorType.EQUALS_TO, ""); 
    9998                                        filterItems.add(fi2); 
  • AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/data/AbstractInputColumn.java

    r3031 r3103  
    3636        } 
    3737 
    38         @SuppressWarnings("unchecked") 
    39         @Override 
    40         public Class<? extends E> getDataType() { 
    41                 return (Class<? extends E>) getDataTypeFamily().getJavaType(); 
    42         } 
    43  
    4438        @Override 
    4539        public Column getPhysicalColumn() throws IllegalStateException { 
     
    7670                if (obj.getClass() == this.getClass()) { 
    7771                        AbstractInputColumn<?> that = (AbstractInputColumn<?>) obj; 
    78                         if (that.getDataTypeFamily() == this.getDataTypeFamily()) { 
     72                        if (that.getDataType() == this.getDataType()) { 
    7973                                if (that.isPhysicalColumn() == this.isPhysicalColumn()) { 
    8074                                        return equalsInternal(that); 
  • AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/data/ConstantInputColumn.java

    r3031 r3103  
    3131 */ 
    3232public final class ConstantInputColumn extends AbstractExpressionBasedInputColumn<String> { 
    33          
     33 
    3434        private static final long serialVersionUID = 1L; 
    3535 
     
    4949        } 
    5050 
     51        @SuppressWarnings("deprecation") 
    5152        @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; 
    5455        } 
    5556 
     
    5859                return _value; 
    5960        } 
     61 
     62        @Override 
     63        public Class<? extends String> getDataType() { 
     64                return String.class; 
     65        } 
    6066} 
  • AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/data/MetaModelInputColumn.java

    r3031 r3103  
    8989 
    9090        @Override 
     91        @SuppressWarnings("deprecation") 
    9192        public DataTypeFamily getDataTypeFamily() { 
    9293                ColumnType type = _column.getType(); 
  • AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/data/MetaModelInputRow.java

    r3072 r3103  
    2222import java.util.ArrayList; 
    2323import 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; 
    2924 
    3025import org.eobjects.metamodel.data.Row; 
     
    7974                Column physicalColumn = column.getPhysicalColumn(); 
    8075                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                 
    9977                return (E) value; 
    10078        } 
  • AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/data/MockInputColumn.java

    r3031 r3103  
    3131 */ 
    3232public class MockInputColumn<E> extends AbstractInputColumn<E> { 
    33          
     33 
    3434        private static final long serialVersionUID = 1L; 
    3535 
     
    5252        } 
    5353 
     54        @SuppressWarnings("deprecation") 
    5455        @Override 
    5556        public DataTypeFamily getDataTypeFamily() { 
  • AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/data/TransformedInputColumn.java

    r2611 r3103  
    3838 
    3939        private final String _id; 
    40         private DataTypeFamily _dataTypeFamily; 
    4140        private Class<?> _dataType; 
    4241        private String _name; 
     
    7776        } 
    7877 
    79         public void setDataTypeFamily(DataTypeFamily dataTypeFamily) { 
    80                 _dataTypeFamily = dataTypeFamily; 
    81         } 
    82  
    8378        @Override 
    8479        public boolean isPhysicalColumn() { 
     
    9186        } 
    9287 
     88        @SuppressWarnings("deprecation") 
    9389        @Override 
    9490        public DataTypeFamily getDataTypeFamily() { 
    95                 return _dataTypeFamily; 
     91                return DataTypeFamily.valueOf(_dataType); 
    9692        } 
    9793 
  • AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/descriptors/AnnotationBasedTransformerBeanDescriptor.java

    r3031 r3103  
    2222import org.eobjects.analyzer.beans.api.Transformer; 
    2323import org.eobjects.analyzer.beans.api.TransformerBean; 
    24 import org.eobjects.analyzer.data.DataTypeFamily; 
    2524import org.eobjects.analyzer.util.ReflectionUtils; 
    2625 
    2726final class AnnotationBasedTransformerBeanDescriptor<T extends Transformer<?>> extends AbstractBeanDescriptor<T> implements 
    2827                TransformerBeanDescriptor<T> { 
    29          
     28 
    3029        private static final long serialVersionUID = 1L; 
    3130 
     
    5958 
    6059        @Override 
    61         public DataTypeFamily getOutputDataTypeFamily() { 
     60        public Class<?> getOutputDataType() { 
    6261                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        } 
    6764 
    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); 
    7970        } 
    8071} 
  • AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/descriptors/ConfiguredPropertyDescriptor.java

    r2755 r3103  
    2323import org.eobjects.analyzer.beans.api.Convertable; 
    2424import org.eobjects.analyzer.beans.api.Converter; 
    25 import org.eobjects.analyzer.data.DataTypeFamily; 
    2625import org.eobjects.analyzer.util.HasAliases; 
    2726 
     
    5251 
    5352        /** 
    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()}) 
    5656         *  
    5757         * @return 
     58         *  
     59         * @deprecated use {@link #getType()} and {@link #getTypeArgument(int)} 
     60         *             instead 
    5861         */ 
    59         public DataTypeFamily getInputColumnDataTypeFamily(); 
     62        @Deprecated 
     63        public org.eobjects.analyzer.data.DataTypeFamily getInputColumnDataTypeFamily(); 
    6064 
    6165        /** 
  • AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/descriptors/ConfiguredPropertyDescriptorImpl.java

    r3031 r3103  
    2828import org.eobjects.analyzer.beans.api.Converter; 
    2929import org.eobjects.analyzer.beans.api.Description; 
    30 import org.eobjects.analyzer.data.DataTypeFamily; 
    3130import org.eobjects.analyzer.util.ReflectionUtils; 
    3231 
     
    7877        } 
    7978 
     79        @SuppressWarnings("deprecation") 
    8080        @Override 
    81         public DataTypeFamily getInputColumnDataTypeFamily() { 
     81        public org.eobjects.analyzer.data.DataTypeFamily getInputColumnDataTypeFamily() { 
    8282                if (isInputColumn()) { 
    8383                        int count = getTypeArgumentCount(); 
    8484                        if (count == 0) { 
    85                                 return DataTypeFamily.UNDEFINED; 
     85                                return org.eobjects.analyzer.data.DataTypeFamily.UNDEFINED; 
    8686                        } 
    8787                        Type typeArgument = getTypeArgument(0); 
    88                         return DataTypeFamily.valueOf(typeArgument); 
     88                        return org.eobjects.analyzer.data.DataTypeFamily.valueOf(typeArgument); 
    8989                } 
    9090                return null; 
  • AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/descriptors/TransformerBeanDescriptor.java

    r2611 r3103  
    2121 
    2222import org.eobjects.analyzer.beans.api.Transformer; 
    23 import org.eobjects.analyzer.data.DataTypeFamily; 
    2423 
    2524/** 
     
    3332 
    3433        /** 
    35          * Gets the output data's {@link DataTypeFamily}. 
     34         * Gets the output data's {@link org.eobjects.analyzer.data.DataTypeFamily}. 
    3635         *  
    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. 
    3940         */ 
    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 
    4252} 
  • AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/job/builder/AbstractBeanWithInputColumnsBuilder.java

    r3051 r3103  
    2828import java.util.Set; 
    2929 
    30 import org.eobjects.analyzer.data.DataTypeFamily; 
    3130import org.eobjects.analyzer.data.InputColumn; 
    3231import org.eobjects.analyzer.descriptors.BeanDescriptor; 
     
    3736import org.eobjects.analyzer.job.OutcomeSourceJob; 
    3837import org.eobjects.analyzer.util.CollectionUtils2; 
     38import org.eobjects.analyzer.util.ReflectionUtils; 
    3939import org.eobjects.metamodel.util.CollectionUtils; 
    4040 
     
    8686        // delegate to 
    8787        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); 
    9499                        } 
    95100                } 
     
    200205                        return true; 
    201206                } 
    202                  
     207 
    203208                return validateRequirementCandidate(outcomes[0]); 
    204209        } 
  • AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/job/builder/AnalysisJobBuilder.java

    r3000 r3103  
    3434import org.eobjects.analyzer.connection.Datastore; 
    3535import org.eobjects.analyzer.connection.DatastoreConnection; 
    36 import org.eobjects.analyzer.data.DataTypeFamily; 
    3736import org.eobjects.analyzer.data.InputColumn; 
    3837import org.eobjects.analyzer.data.MetaModelInputColumn; 
     
    500499         *            the {@link DataTypeFamily} to search for 
    501500         * @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) { 
    504505                return getAvailableInputColumns(dataTypeFamily, null); 
    505506        } 
     
    509510         * given data type specification. 
    510511         *  
     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         *  
    511524         * @param dataTypeFamily 
    512          *            the {@link DataTypeFamily} to search for 
     525         *            the {@link org.eobjects.analyzer.data.DataTypeFamily} to 
     526         *            search for 
    513527         * @param dataType 
    514528         *            optionally a concrete type to look for, if the 
    515          *            {@link DataTypeFamily} is null or 
    516          *            {@link DataTypeFamily#UNDEFINED}. 
     529         *            {@link org.eobjects.analyzer.data.DataTypeFamily} is null or 
     530         *            {@link org.eobjects.analyzer.data.DataTypeFamily#UNDEFINED}. 
    517531         * @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) { 
    520538                SourceColumnFinder finder = new SourceColumnFinder(); 
    521539                finder.addSources(this); 
  • AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/job/builder/MergedOutcomeJobBuilder.java

    r2617 r3103  
    122122                                        InputColumn<?> inputColumn = inputColumns.get(i); 
    123123                                        TransformedInputColumn<Object> outputColumn = new TransformedInputColumn<Object>("Merged column " + (i + 1), _idGenerator); 
    124                                         outputColumn.setDataTypeFamily(inputColumn.getDataTypeFamily()); 
    125124                                        outputColumn.setDataType(inputColumn.getDataType()); 
    126125                                        _outputColumns.add(outputColumn); 
  • AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/job/builder/TransformerJobBuilder.java

    r3021 r3103  
    2828import org.eobjects.analyzer.configuration.InjectionManager; 
    2929import org.eobjects.analyzer.configuration.InjectionManagerImpl; 
    30 import org.eobjects.analyzer.data.DataTypeFamily; 
    3130import org.eobjects.analyzer.data.InputColumn; 
    3231import org.eobjects.analyzer.data.MutableInputColumn; 
     
    126125                        Class<?> dataType = outputColumns.getColumnType(i); 
    127126                        if (dataType == null) { 
    128                                 dataType = descriptor.getOutputDataTypeFamily().getJavaType(); 
    129                         } 
    130                         DataTypeFamily dataTypeFamily = DataTypeFamily.valueOf(dataType); 
     127                                dataType = descriptor.getOutputDataType(); 
     128                        } 
    131129 
    132130                        TransformedInputColumn<?> col = (TransformedInputColumn<?>) _outputColumns.get(i); 
     
    134132                        if (dataType != col.getDataType()) { 
    135133                                col.setDataType(dataType); 
    136                                 changed = true; 
    137                         } 
    138                         if (dataTypeFamily != col.getDataTypeFamily()) { 
    139                                 col.setDataTypeFamily(dataTypeFamily); 
    140134                                changed = true; 
    141135                        } 
  • AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/util/SourceColumnFinder.java

    r3049 r3103  
    2727import java.util.TreeSet; 
    2828 
    29 import org.eobjects.analyzer.data.DataTypeFamily; 
    3029import org.eobjects.analyzer.data.ExpressionBasedInputColumn; 
    3130import org.eobjects.analyzer.data.InputColumn; 
     
    9190        } 
    9291 
    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) { 
    94101                if (dataTypeFamily == null) { 
    95                         dataTypeFamily = DataTypeFamily.UNDEFINED; 
     102                        dataTypeFamily = org.eobjects.analyzer.data.DataTypeFamily.UNDEFINED; 
    96103                } 
    97104 
     
    100107                        InputColumn<?>[] outputColumns = source.getOutput(); 
    101108                        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) { 
    104111                                        final Class<?> columnDataType = col.getDataType(); 
    105112                                        if (dataType == null || columnDataType == null) { 
  • AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/util/StandardTypeConverter.java

    r2736 r3103  
    108108                        return Float.valueOf(str); 
    109109                } 
     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                } 
    110117                if (type.isEnum()) { 
    111118                        try { 
     
    154161                        ChangeAwareObjectInputStream objectInputStream = null; 
    155162                        try { 
    156                                 objectInputStream = new ChangeAwareObjectInputStream(new ByteArrayInputStream( 
    157                                                 bytes)); 
     163                                objectInputStream = new ChangeAwareObjectInputStream(new ByteArrayInputStream(bytes)); 
    158164                                objectInputStream.addClassLoader(type.getClassLoader()); 
    159165                                Object obj = objectInputStream.readObject(); 
     
    192198                } else if (o instanceof Enum) { 
    193199                        return ((Enum<?>) o).name(); 
     200                } else if (o instanceof Class) { 
     201                        result = ((Class<?>) o).getName(); 
    194202                } else if (o instanceof Serializable) { 
    195203                        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  
    8383                } 
    8484 
    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)); 
    8989 
    9090                final MutableInputColumn<?> elementColumn; 
  • AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/data/MetaModelInputColumnTest.java

    r1555 r3103  
    2626public class MetaModelInputColumnTest extends TestCase { 
    2727 
     28        @SuppressWarnings("deprecation") 
    2829        public void testGetDataTypeFamily() throws Exception { 
    2930                assertEquals(DataTypeFamily.STRING, 
  • AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/descriptors/AnnotationBasedAnalyzerBeanDescriptorTest.java

    r3050 r3103  
    3636import org.eobjects.analyzer.result.AnalyzerResult; 
    3737 
     38@SuppressWarnings("deprecation") 
    3839public class AnnotationBasedAnalyzerBeanDescriptorTest extends TestCase { 
    3940 
  • AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/descriptors/AnnotationBasedTransformerBeanDescriptorTest.java

    r2604 r3103  
    2222import java.util.Set; 
    2323 
     24import junit.framework.TestCase; 
     25 
    2426import org.eobjects.analyzer.beans.api.OutputRowCollector; 
    2527import org.eobjects.analyzer.beans.convert.ConvertToNumberTransformer; 
     
    3032import org.eobjects.analyzer.job.tasks.MockMultiRowTransformer; 
    3133 
    32 import junit.framework.TestCase; 
    33  
     34@SuppressWarnings("deprecation") 
    3435public class AnnotationBasedTransformerBeanDescriptorTest extends TestCase { 
    3536 
  • AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/descriptors/ConfiguredPropertyDescriptorImplTest.java

    r3049 r3103  
    4949        InputColumn<byte[]> someBytes; 
    5050 
     51        @Configured 
     52        InputColumn<String>[] stringColumns; 
     53 
    5154        @Override 
    5255        protected void setUp() throws Exception { 
     
    5558        } 
    5659 
    57         public void testGetTypeParameterOfArrayType() throws Exception { 
     60        public void testGetTypeParameterOfArrayType1() throws Exception { 
    5861                ConfiguredPropertyDescriptor descriptor = new ConfiguredPropertyDescriptorImpl(getClass().getDeclaredField( 
    5962                                "someBytes"), null); 
     
    6164                Class<?> typeArgument = descriptor.getTypeArgument(0); 
    6265                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); 
    6374        } 
    6475 
  • AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/job/builder/AnalysisJobBuilderTest.java

    r3095 r3103  
    4747import org.eobjects.analyzer.connection.DatastoreConnection; 
    4848import org.eobjects.analyzer.connection.JdbcDatastore; 
    49 import org.eobjects.analyzer.data.DataTypeFamily; 
    5049import org.eobjects.analyzer.data.InputColumn; 
    5150import org.eobjects.analyzer.data.MetaModelInputColumn; 
     
    147146                                .addTransformer(ConvertToStringTransformer.class); 
    148147 
    149                 Collection<InputColumn<?>> numberColumns = analysisJobBuilder.getAvailableInputColumns(DataTypeFamily.NUMBER, null); 
     148                Collection<InputColumn<?>> numberColumns = analysisJobBuilder.getAvailableInputColumns(Number.class); 
    150149                assertEquals(1, numberColumns.size()); 
    151150                assertEquals("[MetaModelInputColumn[PUBLIC.EMPLOYEES.EMPLOYEENUMBER]]", Arrays.toString(numberColumns.toArray())); 
     
    159158                AnalyzerJobBuilder<StringAnalyzer> analyzerJobBuilder = analysisJobBuilder.addAnalyzer(StringAnalyzer.class); 
    160159 
    161                 List<InputColumn<?>> stringInputColumns = analysisJobBuilder.getAvailableInputColumns(DataTypeFamily.STRING, null); 
     160                List<InputColumn<?>> stringInputColumns = analysisJobBuilder.getAvailableInputColumns(String.class); 
    162161                Set<String> columnNames = new TreeSet<String>(); 
    163162                for (InputColumn<?> inputColumn : stringInputColumns) { 
  • AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/job/builder/TransformerJobBuilderTest.java

    r2667 r3103  
    2020package org.eobjects.analyzer.job.builder; 
    2121 
     22import java.util.Date; 
    2223import java.util.LinkedList; 
    2324import java.util.List; 
     
    3334import org.eobjects.analyzer.configuration.AnalyzerBeansConfigurationImpl; 
    3435import org.eobjects.analyzer.data.ConstantInputColumn; 
    35 import org.eobjects.analyzer.data.DataTypeFamily; 
    3636import org.eobjects.analyzer.data.InputColumn; 
    3737import org.eobjects.analyzer.data.MockInputColumn; 
     
    116116 
    117117        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(DataTypeFamily.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()); 
    122122        } 
    123123 
     
    130130                        fail("Exception expected"); 
    131131                } 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()); 
    133133                } 
    134134                assertFalse(tjb.isConfigured()); 
  • AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/test/full/scenarios/ValueDistributionAndStringAnalysisTest.java

    r2749 r3103  
    3131import org.eobjects.analyzer.connection.DatastoreConnection; 
    3232import org.eobjects.analyzer.connection.JdbcDatastore; 
    33 import org.eobjects.analyzer.data.DataTypeFamily; 
    3433import org.eobjects.analyzer.data.InputColumn; 
    3534import org.eobjects.analyzer.data.InputRow; 
     
    8887 
    8988                AnalyzerJobBuilder<StringAnalyzer> stringAnalyzerJob = analysisJobBuilder.addAnalyzer(StringAnalyzer.class); 
    90                 stringAnalyzerJob.addInputColumns(analysisJobBuilder.getAvailableInputColumns(DataTypeFamily.STRING, null)); 
     89                stringAnalyzerJob.addInputColumns(analysisJobBuilder.getAvailableInputColumns(String.class)); 
    9190 
    9291                AnalysisJob analysisJob = analysisJobBuilder.toAnalysisJob(); 
  • AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/util/SourceColumnFinderTest.java

    r2667 r3103  
    2727import org.eobjects.analyzer.customcolumn.MockConvertToMonthObjectTransformer; 
    2828import org.eobjects.analyzer.customcolumn.Month; 
    29 import org.eobjects.analyzer.data.DataTypeFamily; 
    3029import org.eobjects.analyzer.data.InputColumn; 
    3130import org.eobjects.analyzer.data.MockInputColumn; 
     
    4039                analysisJobBuilder.addTransformer(MockConvertToMonthObjectTransformer.class).addInputColumn(new MockInputColumn<String>("month", String.class)); 
    4140                columnFinder.addSources(analysisJobBuilder); 
    42                 List<InputColumn<?>> findInputColumns = columnFinder.findInputColumns(DataTypeFamily.UNDEFINED, Month.class); 
     41                List<InputColumn<?>> findInputColumns = columnFinder.findInputColumns(Month.class); 
    4342                assertEquals(1, findInputColumns.size()); 
    4443        } 
  • AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/util/StringConverterTest.java

    r2734 r3103  
    9090                runTests((short) 12, "12"); 
    9191                runTests((byte) 12, "12"); 
     92                runTests(String.class, "java.lang.String"); 
    9293                runTests(1337.0, "1337.0"); 
    9394                runTests(1337.0f, "1337.0"); 
Note: See TracChangeset for help on using the changeset viewer.