Sample Implementation

Here is a sample implementation of the Evidence2Compare interface

//____________________________________________________________
/**
 * Return details that will comprise the XML blob 
 * used to populate the evidence comparison screen 
 * inside the Evidence Broker.
 *
 * @param key Identifies an evidence entity
 * @return Evidence entity details
 */
public EvidenceComparisonDtls getComparisonData(EvidenceCaseKey 
  key) throws AppException, InformationalException {

  EvidenceComparisonDtls evidenceComparisonDtls = 
    new EvidenceComparisonDtls();

  SampleSportingActivityKey sampleSportingActivityKey = 
    new SampleSportingActivityKey();
  sampleSportingActivityKey.sportingActivityID = 
    key.evidenceKey.evidenceID;

  SampleViewSportingActivityDtls readDtls =
    readSampleSportingActivityEvidence(
      sampleSportingActivityKey);

  EvidenceDescriptorKey evidenceKey = 
    new EvidenceDescriptorKey();
  evidenceKey.evidenceDescriptorID = 
    readDtls.evidenceDescriptorID;

  EvidenceDescriptorDtls evidenceDtls =
    EvidenceControllerFactory.newInstance()
      .readEvidenceDescriptorDtls(evidenceKey);

  evidenceComparisonDtls.descriptor.assign(evidenceDtls);

  evidenceComparisonDtls.descriptor.updatedBy = 
    readDtls.updatedBy;
  evidenceComparisonDtls.descriptor.updatedDateTime = 
    readDtls.updatedDateTime;

  ResourceBundle domainTypes =
   ResourceBundle.getBundle(
    SampleSportingGrantConst.kSampleSportingActivityDomainsFile,
      new Locale(TransactionInfo.getProgramLocale())); 

  ResourceBundle labels =
   ResourceBundle.getBundle(
    SampleSportingGrantConst.kSampleSportingActivityLabelsFile,
      new Locale(TransactionInfo.getProgramLocale()));          

  Object[] valueObjects = {
            readDtls.clientDtls.name
          , readDtls.sportingActivityType
          , readDtls.sportingAwardType
          , readDtls.paymentAmount
          , readDtls.startDate
          , readDtls.endDate
          , readDtls.comments
          };

  EvidenceComparisonHelper helper = 
    new EvidenceComparisonHelper();

  // populate the return struct one attribute at a time
  for (int i = 0; 
    i < SampleSportingGrantConst.kSampleSportingActivityNames
        .length
    && i < valueObjects.length; i++) {

    EvidenceAttributeDtls attribute = 
      new EvidenceAttributeDtls();

    try {
     attribute.domain = 
      domainTypes.getString(
       SampleSportingGrantConst.kSampleSportingActivityNames[i]);
    } catch (MissingResourceException mrException) {
      // missing domain causes widget to fail
      // insert SVR_STRING by default
      attribute.domain = CuramConst.kDomainSVR_STRING;
    }

    try {
      attribute.label = 
       labels.getString(
       SampleSportingGrantConst.kSampleSportingActivityNames[i]);
    } catch (MissingResourceException mrException) {
      // labels are blank by default
      attribute.label = CuramConst.gkEmpty;
    }
    attribute.value = 
      helper.objectToString(valueObjects[i]);
    evidenceComparisonDtls.details.addRef(attribute);      
  }    

  return evidenceComparisonDtls;    
}