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.22.

Copyright 2001-2025. Cloud Software Group, Inc. 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.