Interface FieldMatchList

All Known Implementing Classes:
SimpleFieldMatchList

public interface FieldMatchList
A class that supports the FieldMatchList interface will allow the specification of a match operation between records in two different negotiation positions. Furthermore, it specifies what parts of the original records are included in the reported match in the event that a match takes place. By default, an input record is not included in the report because some fields are proprietary, for example, fields that represent the price flexibility of one of the parties. However, fields can be specifically added to the report.
  • Nested Class Summary

    Nested Classes 
    Modifier and Type Interface Description
    static class  FieldMatchList.MATCHACTION
    The MATCHACTION enumeration lists the possible actions as a consequence of a successful match between record fields.
  • Method Summary

    Modifier and Type Method Description
    void addComparison​(java.lang.String resultName, EncryptedFieldTable tbl, boolean required, FieldMatchList.MATCHACTION report, java.lang.String tagNameA, java.lang.String fieldA, java.lang.String tagNameB, java.lang.String fieldB)
    Add to match list a comparison between fields in two records in two documents.
    void addInclude​(java.lang.String tagName, java.lang.String fieldName, java.lang.String resultName)
    Add a field from the input records that will be included in the match report (basis) when a match occurs.
  • Method Details

    • addComparison

      void addComparison​(java.lang.String resultName, EncryptedFieldTable tbl, boolean required, FieldMatchList.MATCHACTION report, java.lang.String tagNameA, java.lang.String fieldA, java.lang.String tagNameB, java.lang.String fieldB) throws ConfigurationError
      Add to match list a comparison between fields in two records in two documents. The comparison looks for an equality between field values or an overlap between real value ranges or a real and a real range, or an overlap between lists, or list membership. Where a field name is required, a qualified name is used. Logically, this qualified name begins with the record name in which the field is found. As our convention, we supply the record name as a separate parameter. The remainder of the field name is supplied by a second parameter.

      Comparison occur between records in two documents. The parameters in this method name two records in different documents. The order of the records in the method invocation is not important because the matcher will try to match records in both directions. For example, to match record A with record B in documents 1 and 2 the matcher will first look for A in document 1 and B in document 2. Next it will reverse the roles and look for A in document 2 and B in document 1.

      The order in which the list is constructed can be an optimization hint to the matcher. The first comparisons should have the least probability of success thereby reducing the total number of comparisons. However, subclasses may implement the comparison in an manner.

      Parameters:
      resultName - a name to refer to this match specification, optionally a name in the EncryptedFieldTable for use in a result record in the basis for agreement.
      tbl - the encrypted field table that describes the documents
      required - true if these fields must match in order for the records to match
      report - specifies how the result of the comparison is reported in the result
      tagNameA - the XML tag that identifies the first record in the comparison
      fieldA - the field in the first record for the comparison
      tagNameB - the XML tag that identifies the first record in the comparison
      fieldB - the field in the first record for the comparison
      Throws:
      ConfigurationError
    • addInclude

      void addInclude​(java.lang.String tagName, java.lang.String fieldName, java.lang.String resultName)
      Add a field from the input records that will be included in the match report (basis) when a match occurs. A field must be included or it is omitted from the report by default. An included field is copied in its entirety even if it has substructure. Thus, fields that are not available for comparison because they are structure may by copied for the report, if a match is found.

      The purpose of the field match list is primarily the specification of how to match fields in records within documents. However, a document may have, in addition to records, various administrative fields located at the level 1 of the document. It does not make sense to match these, but it may be desirable to copy them to the result of a match. The list of included fields can be extended to handle these administative fields quite easily. For these fields, specify the name of the field as the tagName and provide an empty string for both the fieldName and the resultName.

      Parameters:
      tagName - the name of the record where the field is found
      fieldName - the name of the field
      resultName - the name of the field when it is copied to the basis