public void addValue(final InputColumn<?> inputColumn, final Object value) { if (inputColumn.isPhysicalColumn()) { throw new IllegalArgumentException("Cannot add physical column values to transformed InputRow."); } _values.put(inputColumn, value); }
@SuppressWarnings("unchecked") @Override public <E> E getValueInternal(final InputColumn<E> column) { if (column.isPhysicalColumn()) { logger.debug("Column is physical, delegating."); return _delegate.getValue(column); } if (_values.containsKey(column)) { return (E) _values.get(column); } return _delegate.getValue(column); }
private Set<Column> findOriginatingColumnsOfInputColumn(final InputColumn<?> inputColumn) { final Set<Column> cachedOriginatingColumns = originatingColumnsOfInputColumnCache.get(inputColumn); if (cachedOriginatingColumns != null) { return cachedOriginatingColumns; } final Set<Column> originatingColumns = new HashSet<>(); if (inputColumn != null) { if (inputColumn.isPhysicalColumn()) { originatingColumns.add(inputColumn.getPhysicalColumn()); } else { final InputColumnSourceJob source = findInputColumnSource(inputColumn); originatingColumns.addAll(findOriginatingColumnsOfSource(source)); } } originatingColumnsOfInputColumnCache.put(inputColumn, originatingColumns); return originatingColumns; }
private Table findOriginatingTable(final InputColumn<?> inputColumn, final Set<Object> resolvedSet) { if (!resolvedSet.add(inputColumn)) { logger.debug(LOG_MESSAGE_RECURSIVE_TRAVERSAL); return null; } if (inputColumn == null) { logger.warn("InputColumn was null, no originating table found"); return null; } if (inputColumn.isPhysicalColumn()) { return inputColumn.getPhysicalColumn().getTable(); } final InputColumnSourceJob inputColumnSource = findInputColumnSource(inputColumn); if (!resolvedSet.add(inputColumnSource)) { logger.debug(LOG_MESSAGE_RECURSIVE_TRAVERSAL); return null; } return findOriginatingTableOfSource(inputColumnSource, resolvedSet); }
private InputColumn<?> findInputColumn(final InputColumn<?>[] allInputColumns, final String inputColumnName) { // Exact match round on path. for (final InputColumn<?> inputColumn : allInputColumns) { if (inputColumnName.contains(".") && inputColumn.isPhysicalColumn() && inputColumnName .equals(inputColumn.getPhysicalColumn().getQualifiedLabel())) { return inputColumn; } } // Trimmed and case-insensitive path match round. for (final InputColumn<?> inputColumn : allInputColumns) { if (inputColumnName.contains(".") && inputColumn.isPhysicalColumn() && inputColumnName.trim() .equalsIgnoreCase(inputColumn.getPhysicalColumn().getQualifiedLabel())) { return inputColumn; } } // Legacy: Exact name match round for (final InputColumn<?> inputColumn : allInputColumns) { if (inputColumnName.equals(inputColumn.getName())) { return inputColumn; } } // Legacy: Trimmed and case-insensitive name match round. for (final InputColumn<?> inputColumn : allInputColumns) { if (inputColumnName.trim().equalsIgnoreCase(inputColumn.getName().trim())) { return inputColumn; } } return null; }
private String[] getInputColumnNames(final InputColumn<?>[] inputColumns) { final String[] result = new String[inputColumns.length]; for (int i = 0; i < inputColumns.length; i++) { final InputColumn<?> inputColumn = inputColumns[i]; if (inputColumn.isPhysicalColumn()) { result[i] = inputColumn.getPhysicalColumn().getQualifiedLabel(); } else { result[i] = inputColumn.getName(); } } return result; }
@SuppressWarnings("unchecked") @Override public <E> E getValueInternal(final InputColumn<E> column) { if (!column.isPhysicalColumn()) { return null; } final Column physicalColumn = column.getPhysicalColumn(); Object value = _row.getValue(physicalColumn); value = convertValue(value); return (E) value; }
public static Icon getColumnIcon(final InputColumn<?> column, final int iconSize) { if (column.isPhysicalColumn()) { return getColumnIcon(column.getPhysicalColumn(), iconSize); } return _imageManager.getImageIcon(MODEL_COLUMN, IconUtils.ICON_SIZE_SMALL); }
private InputColumn<?> findImportedInputColumn(final InputColumn<?> originalInputColumn, final Map<ComponentJob, ComponentBuilder> componentBuilders, final SourceColumnFinder sourceColumnFinder) { if (originalInputColumn.isPhysicalColumn()) { final Column physicalColumn = originalInputColumn.getPhysicalColumn(); return _builder.getSourceColumnByName(physicalColumn.getQualifiedLabel());
if (requiredInput != null) { for (final InputColumn<?> inputColumn : requiredInput) { if (!inputColumn.isPhysicalColumn()) { if (!(inputColumn instanceof ExpressionBasedInputColumn)) { if (!availableVirtualColumns.contains(inputColumn)) {
@Override public boolean containsInputColumn(final InputColumn<?> inputColumn) { if (!inputColumn.isPhysicalColumn()) { return false; } final Column physicalColumn = inputColumn.getPhysicalColumn(); final List<SelectItem> selectItems = _row.getSelectItems(); for (final SelectItem selectItem : selectItems) { if (selectItem.getColumn() != null && selectItem.getAggregateFunction() == null) { final Column column = selectItem.getColumn(); if (physicalColumn.equals(column)) { return true; } } } return false; }
@Override public InputRow call(final Tuple2<Object[], Long> tuple) throws Exception { final Object[] values = tuple._1; final Long rowNumber = tuple._2; final MockInputRow inputRow = new MockInputRow(rowNumber.intValue()); final List<InputColumn<?>> sourceColumns = _sparkJobContext.getAnalysisJob().getSourceColumns(); for (final InputColumn<?> sourceColumn : sourceColumns) { assert sourceColumn.isPhysicalColumn(); final int columnIndex = sourceColumn.getPhysicalColumn().getColumnNumber(); final Object value = values[columnIndex]; inputRow.put(sourceColumn, value); } return inputRow; }
if (o1.isPhysicalColumn() && o2.isPhysicalColumn()) { final Column physicalColumn1 = o1.getPhysicalColumn(); final Column physicalColumn2 = o2.getPhysicalColumn(); if (o1.isPhysicalColumn() && o2.isVirtualColumn()) { return -1; } else {
@Override public void actionPerformed(final ActionEvent e) { List<Column> columns = _columns; if (_columns == null) { final List<Column> cols = new ArrayList<>(); for (final InputColumn<?> col : _inputColumns) { if (col.isPhysicalColumn()) { cols.add(col.getPhysicalColumn()); } } columns = cols; } if (columns.isEmpty()) { throw new IllegalStateException("No columns found - could not determine which columns to query"); } try (DatastoreConnection con = _datastore.openConnection()) { final DataContext dc = con.getDataContext(); final Query q = dc.query().from(columns.get(0).getTable()).select(columns).toQuery(); final DataSetWindow window = new DataSetWindow(q, dc, PAGE_SIZE, _windowContext); window.open(); } } }
@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); } }
/** * Gets all available {@link InputColumn}s of a particular type to map to a * particular {@link ComponentBuilder} * * @param componentBuilder * @param dataType * @return */ public List<InputColumn<?>> getAvailableInputColumns(final ComponentBuilder componentBuilder, final Class<?> dataType) { List<InputColumn<?>> result = getAvailableInputColumns(dataType); final SourceColumnFinder finder = new SourceColumnFinder(); finder.addSources(this); result = CollectionUtils.filter(result, inputColumn -> { if (inputColumn.isPhysicalColumn()) { return true; } final InputColumnSourceJob origin = finder.findInputColumnSource(inputColumn); if (origin == null) { return true; } if (origin == componentBuilder) { // exclude columns from the component itself return false; } final Set<Object> sourceComponents = finder.findAllSourceJobs(origin); return !sourceComponents.contains(componentBuilder); }); return result; }
/** * Gets the key to use in the capture state file. If there is not a * captureStateIdentifier available, we want to avoid using a hardcoded key, * since the same file may be used for multiple purposes, even multiple * filters of the same type. Of course this is not desired configuration, * but may be more convenient for lazy users! * * @return */ private String getPropertyKey() { if (StringUtils.isNullOrEmpty(captureStateIdentifier)) { if (lastModifiedColumn.isPhysicalColumn()) { final Table table = lastModifiedColumn.getPhysicalColumn().getTable(); if (table != null && !StringUtils.isNullOrEmpty(table.getName())) { return table.getName() + "." + lastModifiedColumn.getName() + ".GreatestLastModifiedValue"; } } return lastModifiedColumn.getName() + ".GreatestLastModifiedValue"; } return captureStateIdentifier.trim() + ".GreatestLastModifiedValue"; }
private void updateComponents() { boolean hasPhysicalColumns = false; for (final InputColumn<?> column : _columns.keySet()) { if (column.isPhysicalColumn()) { hasPhysicalColumns = true; break; model.setValueAt(dataTypeString, i, 1); if (column.isPhysicalColumn() && _editable) { final DCPanel buttonPanel = new DCPanel(); buttonPanel.setLayout(new GridBagLayout());
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(); } }
if (inputColumn.isPhysicalColumn()) { final Table table = inputColumn.getPhysicalColumn().getTable(); if (table != null) { if (inputColumn.isPhysicalColumn()) { final Table table = inputColumn.getPhysicalColumn().getTable(); if (table != null) {