This is an automated email from the ASF dual-hosted git repository. nadment pushed a commit to branch 3120_META_STRUCTURE in repository https://gitbox.apache.org/repos/asf/hop.git
commit 9ebf6ac9e7117887801622949259e8d8e61da74e Author: Nicolas Adment <[email protected]> AuthorDate: Mon Jul 31 22:05:25 2023 +0200 Add mask information to the Metadata Structure of Stream transform #3120 --- .../metastructure/TransformMetaStructure.java | 4 ++ .../TransformMetaStructureDialog.java | 70 +++++++++++++++++++++- .../metastructure/TransformMetaStructureMeta.java | 31 +++++++++- .../messages/messages_de_DE.properties | 1 - .../messages/messages_en_US.properties | 4 +- 5 files changed, 105 insertions(+), 5 deletions(-) diff --git a/plugins/transforms/metastructure/src/main/java/org/apache/hop/pipeline/transforms/metastructure/TransformMetaStructure.java b/plugins/transforms/metastructure/src/main/java/org/apache/hop/pipeline/transforms/metastructure/TransformMetaStructure.java index cf66e18f75..14f7a298c9 100644 --- a/plugins/transforms/metastructure/src/main/java/org/apache/hop/pipeline/transforms/metastructure/TransformMetaStructure.java +++ b/plugins/transforms/metastructure/src/main/java/org/apache/hop/pipeline/transforms/metastructure/TransformMetaStructure.java @@ -123,6 +123,10 @@ public class TransformMetaStructure vPrecision.convertDataCompatible(vPrecision, Long.valueOf(v.getPrecision()))); } + if (meta.isIncludeMaskField()) { + outputRow = RowDataUtil.addValueData(outputRow, pos++, v.getConversionMask()); + } + if (meta.isIncludeOriginField()) { outputRow = RowDataUtil.addValueData(outputRow, pos++, v.getOrigin()); } diff --git a/plugins/transforms/metastructure/src/main/java/org/apache/hop/pipeline/transforms/metastructure/TransformMetaStructureDialog.java b/plugins/transforms/metastructure/src/main/java/org/apache/hop/pipeline/transforms/metastructure/TransformMetaStructureDialog.java index b56e475a12..c1d49eed8c 100644 --- a/plugins/transforms/metastructure/src/main/java/org/apache/hop/pipeline/transforms/metastructure/TransformMetaStructureDialog.java +++ b/plugins/transforms/metastructure/src/main/java/org/apache/hop/pipeline/transforms/metastructure/TransformMetaStructureDialog.java @@ -52,6 +52,7 @@ public class TransformMetaStructureDialog extends BaseTransformDialog implements private Button wIncludeComments; private Button wIncludeLength; private Button wIncludePrecision; + private Button wIncludeMask; private Button wIncludeOrigin; private TextVar wRowCountField; @@ -61,6 +62,7 @@ public class TransformMetaStructureDialog extends BaseTransformDialog implements private TextVar wTypeField; private TextVar wLengthField; private TextVar wPrecisionField; + private TextVar wMaskField; private TextVar wOriginField; public TransformMetaStructureDialog( @@ -92,8 +94,7 @@ public class TransformMetaStructureDialog extends BaseTransformDialog implements // TransformName line wlTransformName = new Label(shell, SWT.RIGHT); - wlTransformName.setText( - BaseMessages.getString(PKG, "TransformMetaStructureDialog.TransformName.Label")); + wlTransformName.setText(BaseMessages.getString("System.Label.TransformName")); PropsUi.setLook(wlTransformName); fdlTransformName = new FormData(); fdlTransformName.left = new FormAttachment(0, 0); @@ -392,6 +393,62 @@ public class TransformMetaStructureDialog extends BaseTransformDialog implements wTypeField.setLayoutData(fdTypeField); wTypeField.setEnabled(true); + // Include Mask field + Label wlIncludeMask = new Label(shell, SWT.RIGHT); + wlIncludeMask.setText( + BaseMessages.getString(PKG, "TransformMetaStructureDialog.includeMask.Label")); + PropsUi.setLook(wlIncludeMask); + FormData fdlIncludeMask = new FormData(); + fdlIncludeMask.left = new FormAttachment(0, 0); + fdlIncludeMask.top = new FormAttachment(wlTypeField, margin); + fdlIncludeMask.right = new FormAttachment(middle, -margin); + wlIncludeMask.setLayoutData(fdlIncludeMask); + wIncludeMask = new Button(shell, SWT.CHECK); + PropsUi.setLook(wIncludeOrigin); + FormData fdIncludeMask = new FormData(); + fdIncludeMask.left = new FormAttachment(middle, 0); + fdIncludeMask.top = new FormAttachment(wlIncludeMask, 0, SWT.CENTER); + fdIncludeMask.right = new FormAttachment(100, 0); + wIncludeMask.setLayoutData(fdIncludeMask); + + wIncludeMask.addSelectionListener( + new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent e) { + input.setChanged(); + + if (wIncludeMask.getSelection()) { + wMaskField.setEnabled(true); + // Default to field name by using translations + wMaskField.setText( + BaseMessages.getString(PKG, "TransformMetaStructureMeta.MaskName")); + } else { + wMaskField.setEnabled(false); + } + } + }); + + // Mask Field + Label wlMaskField = new Label(shell, SWT.RIGHT); + wlMaskField.setText( + BaseMessages.getString(PKG, "TransformMetaStructureMeta.MaskField.Label")); + PropsUi.setLook(wlMaskField); + FormData fdlMaskField = new FormData(); + fdlMaskField.left = new FormAttachment(0, 0); + fdlMaskField.right = new FormAttachment(middle, -margin); + fdlMaskField.top = new FormAttachment(wlIncludeMask, 2 * margin); + wlMaskField.setLayoutData(fdlMaskField); + + wMaskField = new TextVar(variables, shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER); + PropsUi.setLook(wMaskField); + wMaskField.addModifyListener(lsMod); + FormData fdMaskField = new FormData(); + fdMaskField.left = new FormAttachment(middle, 0); + fdMaskField.top = new FormAttachment(wlMaskField, 0, SWT.CENTER); + fdMaskField.right = new FormAttachment(100, -margin); + wMaskField.setLayoutData(fdMaskField); + wMaskField.setEnabled(true); + // Include Length field Label wlIncludeLength = new Label(shell, SWT.RIGHT); wlIncludeLength.setText( @@ -612,6 +669,13 @@ public class TransformMetaStructureDialog extends BaseTransformDialog implements wTypeField.setText(input.getTypeFieldname()); } + if (input.isIncludeMaskField()) { + wMaskField.setText(input.getMaskFieldname()); + } + + wMaskField.setEnabled(input.isIncludeMaskField()); + wIncludeMask.setSelection(input.isIncludeMaskField()); + wTypeField.setEnabled(input.isIncludeTypeField()); wIncludeType.setSelection(input.isIncludeTypeField()); @@ -669,6 +733,8 @@ public class TransformMetaStructureDialog extends BaseTransformDialog implements tfoi.setCommentsFieldname(wCommentsField.getText()); tfoi.setIncludeTypeField(wIncludeType.getSelection()); tfoi.setTypeFieldname(wTypeField.getText()); + tfoi.setIncludeMaskField(wIncludeMask.getSelection()); + tfoi.setMaskFieldname(wMaskField.getText()); tfoi.setIncludePrecisionField(wIncludePrecision.getSelection()); tfoi.setPrecisionFieldname(wPrecisionField.getText()); tfoi.setIncludeLengthField(wIncludeLength.getSelection()); diff --git a/plugins/transforms/metastructure/src/main/java/org/apache/hop/pipeline/transforms/metastructure/TransformMetaStructureMeta.java b/plugins/transforms/metastructure/src/main/java/org/apache/hop/pipeline/transforms/metastructure/TransformMetaStructureMeta.java index b0c5861bc9..36f4fa68b4 100644 --- a/plugins/transforms/metastructure/src/main/java/org/apache/hop/pipeline/transforms/metastructure/TransformMetaStructureMeta.java +++ b/plugins/transforms/metastructure/src/main/java/org/apache/hop/pipeline/transforms/metastructure/TransformMetaStructureMeta.java @@ -74,9 +74,14 @@ public class TransformMetaStructureMeta extends BaseTransformMeta<TransformMetaS @HopMetadataProperty(defaultBoolean = true) private boolean includePrecisionField; - + @HopMetadataProperty private String precisionFieldname; + @HopMetadataProperty(defaultBoolean = true) + private boolean includeMaskField; + + @HopMetadataProperty private String maskFieldname; + @HopMetadataProperty(defaultBoolean = true) private boolean includeOriginField; @@ -100,6 +105,8 @@ public class TransformMetaStructureMeta extends BaseTransformMeta<TransformMetaS lengthFieldname = BaseMessages.getString(PKG, "TransformMetaStructureMeta.LengthName"); includePrecisionField = true; precisionFieldname = BaseMessages.getString(PKG, "TransformMetaStructureMeta.PrecisionName"); + includeMaskField = true; + maskFieldname = BaseMessages.getString(PKG, "TransformMetaStructureMeta.MaskName"); includeOriginField = true; originFieldname = BaseMessages.getString(PKG, "TransformMetaStructureMeta.OriginName"); } @@ -175,6 +182,12 @@ public class TransformMetaStructureMeta extends BaseTransformMeta<TransformMetaS precisionFieldValue.setOrigin(name); inputRowMeta.addValueMeta(precisionFieldValue); } + // Mask + if (includeMaskField) { + IValueMeta maskFieldValue = new ValueMetaString(maskFieldname); + maskFieldValue.setOrigin(name); + inputRowMeta.addValueMeta(maskFieldValue); + } // Origin if (includeOriginField) { IValueMeta originFieldValue = new ValueMetaString(originFieldname); @@ -254,6 +267,14 @@ public class TransformMetaStructureMeta extends BaseTransformMeta<TransformMetaS this.precisionFieldname = precisionFieldname; } + public String getMaskFieldname() { + return maskFieldname; + } + + public void setMaskFieldname(String name) { + this.maskFieldname = name; + } + public String getOriginFieldname() { return originFieldname; } @@ -310,6 +331,14 @@ public class TransformMetaStructureMeta extends BaseTransformMeta<TransformMetaS this.includePrecisionField = includePrecisionField; } + public boolean isIncludeMaskField() { + return includeMaskField; + } + + public void setIncludeMaskField(boolean include) { + this.includeMaskField = include; + } + public boolean isIncludeOriginField() { return includeOriginField; } diff --git a/plugins/transforms/metastructure/src/main/resources/org/apache/hop/pipeline/transforms/metastructure/messages/messages_de_DE.properties b/plugins/transforms/metastructure/src/main/resources/org/apache/hop/pipeline/transforms/metastructure/messages/messages_de_DE.properties index 2e7612fce3..f0b4b9b686 100644 --- a/plugins/transforms/metastructure/src/main/resources/org/apache/hop/pipeline/transforms/metastructure/messages/messages_de_DE.properties +++ b/plugins/transforms/metastructure/src/main/resources/org/apache/hop/pipeline/transforms/metastructure/messages/messages_de_DE.properties @@ -19,7 +19,6 @@ # TransformMetaStructure.Transform.Name=Metadaten des eingehenden stream TransformMetaStructure.Transform.Description=Liest die Metadaten des eingehenden Streams aus. -TransformMetaStructureDialog.TransformName.Label=Schrittname TransformMetaStructureDialog.Shell.Title=Metadaten Struktur TransformMetaStructureDialog.outputRowcount.Label=Zeilenanzahl ausgeben? TransformMetaStructureMeta.PositionName=Position diff --git a/plugins/transforms/metastructure/src/main/resources/org/apache/hop/pipeline/transforms/metastructure/messages/messages_en_US.properties b/plugins/transforms/metastructure/src/main/resources/org/apache/hop/pipeline/transforms/metastructure/messages/messages_en_US.properties index a66e9e6021..8f6027b323 100644 --- a/plugins/transforms/metastructure/src/main/resources/org/apache/hop/pipeline/transforms/metastructure/messages/messages_en_US.properties +++ b/plugins/transforms/metastructure/src/main/resources/org/apache/hop/pipeline/transforms/metastructure/messages/messages_en_US.properties @@ -18,7 +18,6 @@ TransformMetaStructure.Transform.Name=Metadata structure of stream TransformMetaStructure.Transform.Description=Produces the metadata of the input fields of this transform as output -TransformMetaStructureDialog.TransformName.Label=Step name TransformMetaStructureDialog.Shell.Title=Metadata structure of stream TransformMetaStructureDialog.outputRowcount.Label=Output row count? TransformMetaStructureDialog.RowcountField.Label=Field for row count @@ -26,6 +25,7 @@ TransformMetaStructureMeta.PositionName=Position TransformMetaStructureMeta.FieldName=Fieldname TransformMetaStructureMeta.CommentsName=Comments TransformMetaStructureMeta.TypeName=Type +TransformMetaStructureMeta.MaskName=Mask TransformMetaStructureMeta.LengthName=Length TransformMetaStructureMeta.PrecisionName=Precision TransformMetaStructureMeta.OriginName=Origin @@ -34,6 +34,7 @@ TransformMetaStructureMeta.PositionField.Label=Field for position TransformMetaStructureMeta.FieldnameField.Label=Field for field name TransformMetaStructureMeta.CommentsField.Label=Field for comments TransformMetaStructureMeta.TypeField.Label=Field for type +TransformMetaStructureMeta.MaskField.Label=Field for mask TransformMetaStructureMeta.LengthField.Label=Field for length TransformMetaStructureMeta.PrecisionField.Label=Field for precision TransformMetaStructureMeta.OriginField.Label=Field for origin @@ -41,6 +42,7 @@ TransformMetaStructureDialog.includePosition.Label=Include position field? TransformMetaStructureDialog.includeFieldname.Label=Include field name field? TransformMetaStructureDialog.includeComments.Label=Include comment field? TransformMetaStructureDialog.includeType.Label=Include type field? +TransformMetaStructureDialog.includeMask.Label=Include mask field? TransformMetaStructureDialog.includeLength.Label=Include length field? TransformMetaStructureDialog.includePrecision.Label=Include precision field? TransformMetaStructureDialog.includeOrigin.Label=Include origin field?
