Interface ConfigDataMergeProcessor

  • All Known Implementing Classes:
    ConfigDataMergeProcessorImpl

    public interface ConfigDataMergeProcessor
    This class is able to merge two UI States for CPQ.
    This is required, because the CPQ UI usually renders only the part (UiGroupData) the user is currently working on. hence when the controller receives the update request from the UI, the data is incomplete, There is the need to fetch the the actual complete state and merge the updates from the UI into it, so that a complete and fully updated configuration state is available for further processing.
    Especially for big configurations, with a lot of cstics, this process is much faster than rendering the full state and sending it back along with the updated values.
    • Method Detail

      • completeInput

        void completeInput​(ConfigurationData targetConfigData)
        Fetches the actual configuration sate from the underlying layers and uses it to complete the given partial configuration state to build a complete and fully update state. So after the method call the given configuration will contain all values and each value will be updated to the most recent user input.
        Parameters:
        targetConfigData - partial configuration to complete
      • mergeConfigurationData

        void mergeConfigurationData​(ConfigurationData source,
                                    ConfigurationData target)
        Merges the source configuration into the target configuration. User input in the target configuration has the highest priority, so that it will be kept. The corresponding values of the source configuration are considered out dated and will be discarded.
        Parameters:
        source - source configuration, missing data in the target configuration will be read from here
        target - target configuration, any values present will be kept, only missing data is read from source configuration