Skip navigation links

Package com.orchestranetworks.addon.daqa.cleansing

Provides classes and interfaces required for cleansing operation.

See: Description

Package com.orchestranetworks.addon.daqa.cleansing Description

Provides classes and interfaces required for cleansing operation.

Cleansing operation

To create a cleansing operation, its definition and view class must be defined.

Definition class:

        public final class TestCleansingOperationDefinition implements CleansingOperationDefinition
        {
                public UserMessage getName()
                {
                        return UserMessage.createInfo("Test Cleansing operation");
                }
        
                public UserMessage getDescription()
                {
                        return null;
                }
        
                public List <ParameterDefinition> getInputParameters()
                {
                        return null;
                }
        
                public boolean isMatchingActive()
                {
                        return false;
                }
                public UserMessage validateCleansingOperationInputParameters(
                List <InputParameter> inputParameters)
                {
                        return null;
                }
                public CleansingOperationView getOperationView()
                {
                        return new TestCleansingOperationView();
                }
        }

View class:

        public final class TestCleansingOperationView extends CleansingOperationView
        {
                public void displayView() throws DaqaException
                {
                        ServiceContext serviceContext = this.getServiceContext();
                        UIServiceComponentWriter writer = serviceContext.getUIComponentWriter();
                        writer.add("Draw all UI items of the Cleansing operation view here.");
                }
        
                public CleansingReport executeOperation(CleansingExecutionEnvironment environment)
                        throws DaqaException
                {
                        //Provide the execution of the Cleansing operation.
                        BigDataValues bigDataValues = new BigDataValues();
                        bigDataValues.add(
                                CleansingReportPaths._BigDataCleansingReport._CleansingProcedureFields_NumberOfRecordsToFix,
                                Integer.valueOf(1000));
                        bigDataValues.add(
                                CleansingReportPaths._BigDataCleansingReport._CleansingProcedureFields_NumberOfFixedRecords,
                                Integer.valueOf(100));
        
                        CleansingReport cleansingReport = new CleansingReport();
                        cleansingReport.setExecutionDate(new GregorianCalendar().getTime());
                        cleansingReport.setBigDataValues(bigDataValues);
                        return cleansingReport;
                }
        }

Cleansing procedure

To create a cleansing procedure, its definition and implementation class must be defined.

Definition class:

        public final class TestCleansingProcedureDefinition extends CleansingProcedureDefinition
        {
                public String getCode()
                {
                        return "Test-CP";
                }
        
                public UserMessage getName()
                {
                        return UserMessage.createInfo("Test Cleansing procedure");
                }
        
                public UserMessage getDescription()
                {
                        return null;
                }
        
                public DECType getDECType()
                {
                        return DECType.FIELD;
                }
        
                public boolean canBeUsedInProfilingProcedure()
                {
                        return false;
                }
        
                public List<ParameterDefinition> getInputParameters()
                {
                        List<ParameterDefinition> inputs = new ArrayList<ParameterDefinition>();
                        List<String> defaultEmptyValues = new ArrayList<String>();
                        defaultEmptyValues.add("");
                        defaultEmptyValues.add("null");
                         inputs.add(new ParameterDefinition(
                "valueAsEmpty",
                SchemaTypeName.XS_STRING,
                UserMessage.createInfo("Values considered as empty"),
                UserMessage.createInfo("Values considered as empty"),
                new ListConstraint(1, Integer.MAX_VALUE, defaultEmptyValues)));
                        return Collections.unmodifiableList(inputs);
                }
        
                public boolean canBeUsedForManyTables()
                {
                        return false;
                }
        
                public boolean canBeUsedForManyFields()
                {
                        return false;
                }
        
                public List<CleansingOperationDefinition> getCleansingOperations()
                {
                        //Register all operations for the Cleansing procedure here.
                        //One Cleansing procedures can have 0 or many Cleansing operations.
                        List<CleansingOperationDefinition> operations = new ArrayList<CleansingOperationDefinition>();
                        operations.add(new TestCleansingOperationDefinition());
                        return operations;
                }
        
                public CleansingStatisticsProcedure getCleansingProcedureImplementation()
                {
                        return new TestCleansingProcedureImplementation();
                }
        }

Implementation class:

        public final class TestCleansingProcedureImplementation extends CleansingStatisticsProcedure
        {
                public List<CleansingReport> calculate(CleansingExecutionContext context)
                {
                        if (context.getExecutionMode().isProcedureExecutionMode())
                        {
                                List<CleansingReport> cleansingReports = new ArrayList<CleansingReport>();
                                CleansingReport cleansingReport = new CleansingReport();
                                BigDataValues bigDataValues = new BigDataValues();
                                bigDataValues.add(
                                        CleansingReportPaths._BigDataCleansingReport._CleansingReportGenericFields_Dataspace,
                                        context.getExecutionEnvironment().getHome().getKey().format());
                                bigDataValues.add(
                                        CleansingReportPaths._BigDataCleansingReport._CleansingReportGenericFields_Dataset,
                                        context.getExecutionEnvironment().getDataset().getAdaptationName().getStringName());
                                bigDataValues.add(
                                        CleansingReportPaths._BigDataCleansingReport._CleansingReportGenericFields_TablePath,
                                        context.getExecutionEnvironment().getTable().getTablePath().format());
                                bigDataValues.add(
                                        CleansingReportPaths._BigDataCleansingReport._CleansingProcedureFields_NumberOfRecordsToFix,
                                        Integer.valueOf(1000));
                                cleansingReport.setBigDataValues(bigDataValues);
                                cleansingReports.add(cleansingReport);
                                return cleansingReports;
                        }
                        else
                        //case: Profiling mode
                        {
                                List<CleansingReport> cleansingReports = new ArrayList<CleansingReport>();
                                CleansingReport cleansingReport = new CleansingReport();
                                BigDataValues bigDataValues = new BigDataValues();
                                bigDataValues.add(
                                        CleansingReportPaths._BigDataProfilingReport._CleansingReportGenericFields_Dataspace,
                                        context.getExecutionEnvironment().getHome().getKey().format());
                                bigDataValues.add(
                                        CleansingReportPaths._BigDataProfilingReport._CleansingReportGenericFields_Dataset,
                                        context.getExecutionEnvironment().getDataset().getAdaptationName().getStringName());
                                bigDataValues.add(
                                        CleansingReportPaths._BigDataProfilingReport._CleansingReportGenericFields_TablePath,
                                        context.getExecutionEnvironment().getTable().getTablePath().format());
                                bigDataValues.add(
                                        CleansingReportPaths._BigDataProfilingReport._ProfilingFields_NumberOfRecordsToFix,
                                        Integer.valueOf(1000));
                                cleansingReport.setBigDataValues(bigDataValues);
                                cleansingReports.add(cleansingReport);
                                return cleansingReports;
                        }
                }
        }

Finally, the cleansing procedure must be registered with the add-on in order to be available in the configuration:

        CleansingProcedureDefinitionCatalog.add(new TestCleansingProcedureDefinition());
Skip navigation links

Add-ons Version 4.5.9.

Copyright TIBCO Software Inc. 2001-2022. All rights reserved.
All third party product and company names and third party marks mentioned in this document are the property of their respective owners and are mentioned for identification.