@Override public boolean isNumberCategory() { return ReflectionUtils.isNumber(_categoryColumn.getDataType()); }
@Override public boolean isTimeCategory() { return ReflectionUtils.isDate(_categoryColumn.getDataType()); }
private boolean isColumnApplicable(final InputColumn<?> column) { return _dataType == Object.class || ReflectionUtils.is(column.getDataType(), _dataType); }
private boolean isColumnApplicable(final InputColumn<?> column) { return _dataType == Object.class || ReflectionUtils.is(column.getDataType(), _dataType); }
public List<InputColumn<?>> findInputColumns(final Class<?> dataType) { final List<InputColumn<?>> result = new ArrayList<>(); for (final InputColumnSourceJob source : _inputColumnSources) { final InputColumn<?>[] outputColumns = source.getOutput(); for (final InputColumn<?> col : outputColumns) { final Class<?> columnDataType = col.getDataType(); if (dataType == null || columnDataType == null) { result.add(col); } else { if (ReflectionUtils.is(columnDataType, dataType)) { result.add(col); } } } } return result; }
private Collection<? extends InputColumn<?>> getRelevantSourceColumns( final List<? extends InputColumn<?>> sourceColumns, final ConfiguredPropertyDescriptor inputProperty) { assert inputProperty.isInputColumn(); final List<InputColumn<?>> result = new ArrayList<>(); final Class<?> expectedDataType = inputProperty.getTypeArgument(0); for (final InputColumn<?> inputColumn : sourceColumns) { final Class<?> actualDataType = inputColumn.getDataType(); if (ReflectionUtils.is(actualDataType, expectedDataType, false)) { result.add(inputColumn); } } return result; }
@Override public OutputColumns getOutputColumns() { init(); final int size = _outputColumns.size(); final String[] names = new String[size]; final Class<?>[] types = new Class[size]; for (int i = 0; i < size; i++) { final InputColumn<?> outputColumn = _outputColumns.get(i); names[i] = outputColumn.getName(); types[i] = outputColumn.getDataType(); } return new OutputColumns(names, types); }
@Initialize public void init() { final Class<?> dataType = inputColumn.getDataType(); if (ReflectionUtils.isNumber(dataType)) { _number = true; } final List<Object> operandList = new ArrayList<>(); if (compareColumn != null) { operandList.add(null); } if (compareValues != null) { for (final String value : compareValues) { final Object operand = toOperand(value); operandList.add(operand); } } _operands = operandList.toArray(); }
private InputColumn<?> getFirstRelevantSourceColumn(final List<? extends InputColumn<?>> sourceColumns, final ConfiguredPropertyDescriptor inputProperty) { assert inputProperty.isInputColumn(); final Class<?> expectedDataType = inputProperty.getTypeArgument(0); for (final InputColumn<?> inputColumn : sourceColumns) { final Class<?> actualDataType = inputColumn.getDataType(); if (ReflectionUtils.is(actualDataType, expectedDataType, false)) { return inputColumn; } } return null; }
public static boolean isDirectlyInsertableType(final InputColumn<?> column) { final Class<?> dataType = column.getDataType(); return ReflectionUtils.isNumber(dataType) || ReflectionUtils.isDate(dataType) || ReflectionUtils .isBoolean(dataType); }
public Class<?> getOutputDataType() { Class<?> candidate = null; for (final InputColumn<?> inputColumn : _inputColumns) { final Class<?> dataType = inputColumn.getDataType(); if (candidate == null) { candidate = dataType; } else if (candidate == Object.class) { return candidate; } else { if (candidate != dataType) { if (ReflectionUtils.is(dataType, candidate)) { // keep the current candidate } else if (ReflectionUtils.is(candidate, dataType)) { candidate = dataType; } else { return Object.class; } } } } if (candidate == null) { return Object.class; } return candidate; }
@Override public String evaluate(final InputRow row) { final SimpleContext context = new SimpleContext(); final List<InputColumn<?>> inputColumns = row.getInputColumns(); for (final InputColumn<?> inputColumn : inputColumns) { if (!(inputColumn instanceof ExpressionBasedInputColumn)) { final Object value = row.getValue(inputColumn); final Class<?> javaType = inputColumn.getDataType(); final ValueExpression valueExpression = _factory.createValueExpression(value, javaType); String variableName = inputColumn.getName(); variableName = StringUtils.replaceWhitespaces(variableName, "_"); context.setVariable(variableName, valueExpression); } } try { final ValueExpression valueExpression = _factory.createValueExpression(context, _expression, String.class); return (String) valueExpression.getValue(context); } catch (final ELException e) { logger.error("Could not evaluate EL expression", e); return null; } }
@Override public void onAdd(final InputColumn<?> sourceColumn) { if (_dataType == Object.class || ReflectionUtils.is(sourceColumn.getDataType(), _dataType)) { addAvailableInputColumn(sourceColumn); updateVisibility(); updateUI(); } }
@Initialize public void init() { compareValueAsOperand = toOperand(compareValue); compareSelectItem = new SelectItem( new MutableColumn("my column", ColumnTypeImpl.convertColumnType(inputColumn.getDataType()))); }
@Override public OutputDataStreamBuilder withColumnLike(final InputColumn<?> column) { if (column.isPhysicalColumn()) { return withColumnLike(column.getPhysicalColumn()); } else { final ColumnType columnType = ColumnTypeImpl.convertColumnType(column.getDataType()); return withColumn(column.getName(), columnType); } }
@Override public B addInputColumn(final InputColumn<?> inputColumn, final ConfiguredPropertyDescriptor propertyDescriptor) throws IllegalArgumentException { if (propertyDescriptor == null || !propertyDescriptor.isInputColumn()) { throw new IllegalArgumentException("Property is not of InputColumn type: " + propertyDescriptor); } final Class<?> expectedDataType = propertyDescriptor.getTypeArgument(0); if (expectedDataType != null && expectedDataType != Object.class) { // check input column type parameter compatibility final Class<?> actualDataType = inputColumn.getDataType(); if (!ReflectionUtils.is(actualDataType, expectedDataType, false)) { throw new IllegalArgumentException( "Unsupported InputColumn type: " + actualDataType + ", expected: " + expectedDataType); } } Object inputColumns = getConfiguredProperty(propertyDescriptor); if (inputColumns == null) { if (propertyDescriptor.isArray()) { inputColumns = new InputColumn[] { inputColumn }; } else { inputColumns = inputColumn; } } else { inputColumns = CollectionUtils2.array(InputColumn.class, inputColumns, inputColumn); } setConfiguredProperty(propertyDescriptor, inputColumns); return (B) this; }
private Object toOperand(final Object value) { final Class<?> dataType = inputColumn.getDataType(); if (ReflectionUtils.isBoolean(dataType)) { return ConvertToBooleanTransformer.transformValue(value, ConvertToBooleanTransformer.DEFAULT_TRUE_TOKENS, ConvertToBooleanTransformer.DEFAULT_FALSE_TOKENS); } else if (ReflectionUtils.isDate(dataType)) { return ConvertToDateTransformer.getInternalInstance().transformValue(value); } else if (ReflectionUtils.isNumber(dataType)) { return ConvertToNumberTransformer.transformValue(value); } else if (ReflectionUtils.isString(dataType)) { return ConvertToStringTransformer.transformValue(value); } else { return value; } }
public CreateTableDialog(final WindowContext windowContext, final UpdateableDatastore datastore, final Schema schema, final Collection<InputColumn<?>> columnSuggestions) { super(windowContext, ImageManager.get().getImage("images/window/banner-tabledef.png")); _datastore = datastore; _schema = schema; _listeners = new ArrayList<>(1); _columnDefinitionPanels = new ArrayList<>(); _columnsListPanel = new DCPanel(); _columnsListPanel.setBorder(WidgetUtils.BORDER_EMPTY); _columnsListPanel.setLayout(new VerticalLayout()); if (columnSuggestions != null && !columnSuggestions.isEmpty()) { // add columns based on the suggestions for (final InputColumn<?> columnSuggestion : columnSuggestions) { final String name = columnSuggestion.getName(); if (columnSuggestion.isPhysicalColumn()) { final Column physicalColumn = columnSuggestion.getPhysicalColumn(); final ColumnType columnType = physicalColumn.getType(); final boolean isPrimaryKey = physicalColumn.isPrimaryKey(); addColumnDefinitionPanel(new CreateTableColumnDefintionPanel(this, name, columnType, isPrimaryKey)); } else { final ColumnType columnType = ColumnTypeImpl.convertColumnType(columnSuggestion.getDataType()); addColumnDefinitionPanel(new CreateTableColumnDefintionPanel(this, name, columnType, false)); } } } else { // add some columns to begin with addColumnDefinitionPanel(new CreateTableColumnDefintionPanel(this, "ID", ColumnType.INTEGER, true)); addColumnDefinitionPanel(); } }
private Object toOperand(final Object value) { if (value == null) { return null; } final Class<?> dataType = inputColumn.getDataType(); if (ReflectionUtils.isBoolean(dataType)) { return ConvertToBooleanTransformer.transformValue(value, ConvertToBooleanTransformer.DEFAULT_TRUE_TOKENS, ConvertToBooleanTransformer.DEFAULT_FALSE_TOKENS); } else if (ReflectionUtils.isDate(dataType)) { return ConvertToDateTransformer.getInternalInstance().transformValue(value); } else if (ReflectionUtils.isNumber(dataType)) { return ConvertToNumberTransformer.transformValue(value); } else if (ReflectionUtils.isString(dataType)) { if (operator == Operator.IN && value instanceof String) { return csvStringToArray((String) value); } else { return ConvertToStringTransformer.transformValue(value); } } else { return value; } }
ajb.addAnalyzer(ValueDistributionAnalyzer.class).addInputColumn(inputColumn); if (inputColumn.getDataType() == String.class && isIncludePatternFinder()) { ajb.addAnalyzer(PatternFinderAnalyzer.class).addInputColumn(inputColumn);