@Override public List<KeyValue> getKeyValues() { final SubAwardDocument doc = (SubAwardDocument) getDocument(); final StringBuilder fundingValues = new StringBuilder(); final Long subawardID = doc.getSubAward().getSubAwardId(); final List<KeyValue> keyValues = new ArrayList<>(); final Collection<SubAwardFundingSource> fundingSource = getBusinessObjectService() .findMatching( SubAwardFundingSource.class, Collections.singletonMap("subAwardId", subawardID)); for (SubAwardFundingSource subAwardFunding : fundingSource) { fundingValues.append(subAwardFunding.getAward().getAwardNumber()); keyValues.add( new ConcreteKeyValue( subAwardFunding.getSubAwardFundingSourceId().toString(), "Award:" + subAwardFunding.getAward().getAwardNumber())); } if (fundingValues.length() == 0) { keyValues.add( 0, new ConcreteKeyValue("", "No Funding Source has been added to this Subaward")); } return keyValues; }