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; }