Changeset 3049


Ignore:
Timestamp:
01/17/12 16:18:55 (4 months ago)
Author:
kasper
Message:

Improved handling and matching of column types

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/util/ReflectionUtils.java

    r3031 r3049  
    2323import java.lang.annotation.Annotation; 
    2424import java.lang.reflect.AnnotatedElement; 
     25import java.lang.reflect.Array; 
    2526import java.lang.reflect.Field; 
    2627import java.lang.reflect.GenericArrayType; 
     
    7778                if (thisType instanceof Class<?>) { 
    7879                        thisClass = (Class<?>) thisType; 
    79                         if (includeArray && thisClass.isArray()) { 
     80                        if (includeArray && thisClass.isArray() && !ofThatType.isArray()) { 
    8081                                thisClass = thisClass.getComponentType(); 
    8182                        } 
     
    302303                        GenericArrayType gaType = (GenericArrayType) someType; 
    303304                        someType = gaType.getGenericComponentType(); 
     305                        return Array.newInstance((Class<?>) someType, 0).getClass(); 
    304306                } 
    305307 
  • AnalyzerBeans/trunk/core/src/main/java/org/eobjects/analyzer/util/SourceColumnFinder.java

    r2808 r3049  
    100100                        InputColumn<?>[] outputColumns = source.getOutput(); 
    101101                        for (InputColumn<?> col : outputColumns) { 
    102                                 DataTypeFamily dtf = col.getDataTypeFamily(); 
    103                                 if (dtf == dataTypeFamily || dataTypeFamily == DataTypeFamily.UNDEFINED) { 
    104                                         if (dataType == null || col.getDataType() == null) { 
     102                                final DataTypeFamily columnFamily = col.getDataTypeFamily(); 
     103                                if (columnFamily == dataTypeFamily || dataTypeFamily == DataTypeFamily.UNDEFINED) { 
     104                                        final Class<?> columnDataType = col.getDataType(); 
     105                                        if (dataType == null || columnDataType == null) { 
    105106                                                result.add(col); 
    106107                                        } else { 
    107                                                 if (ReflectionUtils.is(col.getDataType(), dataType)) { 
     108                                                if (ReflectionUtils.is(columnDataType, dataType)) { 
    108109                                                        result.add(col); 
    109110                                                } 
  • AnalyzerBeans/trunk/core/src/test/java/org/eobjects/analyzer/descriptors/ConfiguredPropertyDescriptorImplTest.java

    r2755 r3049  
    4646        String str2; 
    4747 
     48        @Configured 
     49        InputColumn<byte[]> someBytes; 
     50 
    4851        @Override 
    4952        protected void setUp() throws Exception { 
    5053                super.setUp(); 
    5154                _descriptor = Descriptors.ofFilter(MockFilter.class); 
     55        } 
     56 
     57        public void testGetTypeParameterOfArrayType() throws Exception { 
     58                ConfiguredPropertyDescriptor descriptor = new ConfiguredPropertyDescriptorImpl(getClass().getDeclaredField( 
     59                                "someBytes"), null); 
     60                assertEquals(1, descriptor.getTypeArgumentCount()); 
     61                Class<?> typeArgument = descriptor.getTypeArgument(0); 
     62                assertEquals(byte[].class, typeArgument); 
    5263        } 
    5364 
  • DataCleaner/trunk/core/src/main/java/org/eobjects/datacleaner/panels/MetadataPanel.java

    r2595 r3049  
    4343        private static final long serialVersionUID = 1L; 
    4444 
    45         private static final String[] columnNames = new String[] { "Table", "Column", "Type", "Native type", "Size", 
    46                         "Nullable?", "Indexed?" }; 
     45        private static final String[] COLUMN_NAMES = new String[] { "Table", "Column", "Type family", "Type", "Native type", 
     46                        "Size", "Nullable?", "Indexed?" }; 
    4747 
    4848        private final AnalysisJobBuilder _analysisJobBuilder; 
    49         private final DCTable _table;; 
     49        private final DCTable _table; 
    5050 
    5151        @Inject 
     
    5656                _analysisJobBuilder.getSourceColumnListeners().add(this); 
    5757 
    58                 _table = new DCTable(columnNames); 
    59                 _table.setAlignment(5, Alignment.CENTER); 
     58                _table = new DCTable(COLUMN_NAMES); 
     59                _table.setAlignment(5, Alignment.RIGHT); 
    6060                _table.setAlignment(6, Alignment.CENTER); 
     61                _table.setAlignment(7, Alignment.CENTER); 
    6162 
    6263                setLayout(new BorderLayout()); 
     
    7273                final Icon validIcon = ImageManager.getInstance().getImageIcon(IconUtils.STATUS_VALID, IconUtils.ICON_SIZE_SMALL); 
    7374 
    74                 DefaultTableModel model = new DefaultTableModel(columnNames, sourceColumns.size()); 
     75                final DefaultTableModel model = new DefaultTableModel(COLUMN_NAMES, sourceColumns.size()); 
    7576 
    7677                int i = 0; 
     
    8081                        model.setValueAt(column.getName(), i, 1); 
    8182                        model.setValueAt(inputColumn.getDataTypeFamily(), i, 2); 
    82                         model.setValueAt(column.getNativeType(), i, 3); 
    83                         model.setValueAt(column.getColumnSize(), i, 4); 
     83                        model.setValueAt(column.getType(), i, 3); 
     84                        model.setValueAt(column.getNativeType(), i, 4); 
     85                        model.setValueAt(column.getColumnSize(), i, 5); 
    8486 
    8587                        Boolean nullable = column.isNullable(); 
    8688                        if (nullable != null && nullable.booleanValue()) { 
    87                                 model.setValueAt(validIcon, i, 5); 
     89                                model.setValueAt(validIcon, i, 6); 
    8890                        } else { 
    89                                 model.setValueAt("", i, 5); 
     91                                model.setValueAt("", i, 6); 
    9092                        } 
    9193 
    9294                        boolean indexed = column.isIndexed(); 
    9395                        if (indexed) { 
    94                                 model.setValueAt(validIcon, i, 6); 
     96                                model.setValueAt(validIcon, i, 7); 
    9597                        } else { 
    96                                 model.setValueAt("", i, 6); 
     98                                model.setValueAt("", i, 7); 
    9799                        } 
    98100 
Note: See TracChangeset for help on using the changeset viewer.