private ColumnSpec getColumnSpecFromField( ValueMetaInterface inputValueMeta, ValueMetaInterface insertValueMeta, ValueMetaInterface targetValueMeta) { logBasic( "Mapping input field " + inputValueMeta.getName() + " (" + inputValueMeta.getTypeDesc() + ")" + " to target column " + insertValueMeta.getName() + " (" + targetValueMeta.getOriginalColumnTypeName() + ") "); String targetColumnTypeName = targetValueMeta.getOriginalColumnTypeName(); if (targetColumnTypeName.equals("INTEGER") || targetColumnTypeName.equals("BIGINT")) { return new ColumnSpec(ColumnSpec.ConstantWidthType.INTEGER_64); } else if (targetColumnTypeName.equals("BOOLEAN")) { return new ColumnSpec(ColumnSpec.ConstantWidthType.BOOLEAN); } else if (targetColumnTypeName.equals("FLOAT") || targetColumnTypeName.equals("DOUBLE PRECISION")) { return new ColumnSpec(ColumnSpec.ConstantWidthType.FLOAT); } else if (targetColumnTypeName.equals("CHAR")) { return new ColumnSpec(ColumnSpec.UserDefinedWidthType.CHAR, targetValueMeta.getLength()); } else if (targetColumnTypeName.equals("VARCHAR")) { return new ColumnSpec(ColumnSpec.VariableWidthType.VARCHAR); } else if (targetColumnTypeName.equals("DATE")) { return new ColumnSpec(ColumnSpec.ConstantWidthType.DATE); } else if (targetColumnTypeName.equals("TIME")) { return new ColumnSpec(ColumnSpec.ConstantWidthType.TIME); } else if (targetColumnTypeName.equals("TIMETZ")) { return new ColumnSpec(ColumnSpec.ConstantWidthType.TIMETZ); } else if (targetColumnTypeName.equals("TIMESTAMP")) { return new ColumnSpec(ColumnSpec.ConstantWidthType.TIMESTAMP); } else if (targetColumnTypeName.equals("TIMESTAMPTZ")) { return new ColumnSpec(ColumnSpec.ConstantWidthType.TIMESTAMPTZ); } else if (targetColumnTypeName.equals("INTERVAL") || targetColumnTypeName.equals("INTERVAL DAY TO SECOND")) { return new ColumnSpec(ColumnSpec.ConstantWidthType.INTERVAL); } else if (targetColumnTypeName.equals("BINARY")) { return new ColumnSpec(ColumnSpec.VariableWidthType.VARBINARY); } else if (targetColumnTypeName.equals("VARBINARY")) { return new ColumnSpec(ColumnSpec.VariableWidthType.VARBINARY); } else if (targetColumnTypeName.equals("NUMERIC")) { return new ColumnSpec(ColumnSpec.ConstantWidthType.NUMERIC); } throw new IllegalArgumentException( "Column type " + targetColumnTypeName + " not supported."); // $NON-NLS-1$ }
/** Copy information from the meta-data input to the dialog fields. */ public void getData() { int i; for (i = 0; i < input.size(); i++) { TableItem item = wFields.table.getItem(i); ValueMetaInterface v = input.getValueMeta(i); int idx = 1; if (v.getName() != null) { item.setText(idx++, v.getName()); } item.setText(idx++, v.getTypeDesc()); item.setText(idx++, v.getLength() < 0 ? "-" : "" + v.getLength()); item.setText(idx++, v.getPrecision() < 0 ? "-" : "" + v.getPrecision()); item.setText(idx++, Const.NVL(v.getOrigin(), "")); item.setText(idx++, ValueMeta.getStorageTypeCode(v.getStorageType())); item.setText(idx++, Const.NVL(v.getConversionMask(), "")); item.setText(idx++, Const.NVL(v.getCurrencySymbol(), "")); item.setText(idx++, Const.NVL(v.getDecimalSymbol(), "")); item.setText(idx++, Const.NVL(v.getGroupingSymbol(), "")); item.setText(idx++, ValueMeta.getTrimTypeDesc(v.getTrimType())); item.setText(idx++, Const.NVL(v.getComments(), "")); } wFields.optWidth(true); }
private void populateTableWithIncomingFields() { if (m_incomingFieldsProducer != null) { RowMetaInterface incomingRowMeta = m_incomingFieldsProducer.getIncomingFields(); Table table = m_fieldsView.table; if (incomingRowMeta != null) { Set<String> existingRowAliases = new HashSet<String>(); for (int i = 0; i < table.getItemCount(); i++) { TableItem tableItem = table.getItem(i); String alias = tableItem.getText(1); if (!Const.isEmpty(alias)) { existingRowAliases.add(alias); } } int choice = 0; if (existingRowAliases.size() > 0) { // Ask what we should do with existing mapping data MessageDialog md = new MessageDialog( m_shell, Messages.getString("MappingDialog.GetFieldsChoice.Title"), null, Messages.getString( "MappingDialog.GetFieldsChoice.Message", "" + existingRowAliases.size(), "" + incomingRowMeta.size()), MessageDialog.WARNING, new String[] { Messages.getString("MappingDialog.AddNew"), Messages.getString("MappingOutputDialog.Add"), Messages.getString("MappingOutputDialog.ClearAndAdd"), Messages.getString("MappingOutputDialog.Cancel"), }, 0); MessageDialog.setDefaultImage(GUIResource.getInstance().getImageSpoon()); int idx = md.open(); choice = idx & 0xFF; } if (choice == 3 || choice == 255 /* 255 = escape pressed */) { return; // Cancel } if (choice == 2) { m_fieldsView.clearAll(); } for (int i = 0; i < incomingRowMeta.size(); i++) { ValueMetaInterface vm = incomingRowMeta.getValueMeta(i); boolean addIt = true; if (choice == 0) { // only add if its not already in the table if (existingRowAliases.contains(vm.getName())) { addIt = false; } } if (addIt) { TableItem item = new TableItem(m_fieldsView.table, SWT.NONE); item.setText(1, vm.getName()); item.setText(2, "N"); if (m_familyCI.getComboValues()[0].length() > 0) { // use existing first column family name as the default item.setText(3, m_familyCI.getComboValues()[0]); } else { // default item.setText(3, DEFAULT_FAMILY); } item.setText(4, vm.getName()); item.setText(5, vm.getTypeDesc()); if (vm.getType() == ValueMetaInterface.TYPE_INTEGER) { item.setText(5, "Long"); } if (vm.getType() == ValueMetaInterface.TYPE_NUMBER) { item.setText(5, "Double"); } if (vm.getStorageType() == ValueMetaInterface.STORAGE_TYPE_INDEXED) { Object[] indexValus = vm.getIndex(); String indexValsS = HBaseValueMeta.objectIndexValuesToString(indexValus); item.setText(6, indexValsS); } } } m_fieldsView.removeEmptyRows(); m_fieldsView.setRowNums(); m_fieldsView.optWidth(true); } } }