001package org.kuali.ole.describe.keyvalue;
002
003import org.kuali.ole.describe.bo.OleElectronicLocationAndAccessRelationship;
004import org.kuali.rice.core.api.util.ConcreteKeyValue;
005import org.kuali.rice.core.api.util.KeyValue;
006import org.kuali.rice.krad.keyvalues.KeyValuesBase;
007import org.kuali.rice.krad.service.KRADServiceLocator;
008
009import java.util.ArrayList;
010import java.util.Collection;
011import java.util.List;
012
013/**
014 * Relationship used to render the values for Relationship dropdown control.
015 */
016public class Relationship extends KeyValuesBase {
017    /**
018     * This method returns the List of ConcreteKeyValue,
019     * ConcreteKeyValue has two arguments elaRelationshipCode and
020     * elaRelationshipName.
021     *
022     * @return List<KeyValue>
023     */
024    @Override
025    public List<KeyValue> getKeyValues() {
026        List<KeyValue> options = new ArrayList<KeyValue>();
027        Collection<OleElectronicLocationAndAccessRelationship> oleElectronicLocationAndAccessRelationships =
028                KRADServiceLocator.getBusinessObjectService().findAll(OleElectronicLocationAndAccessRelationship.class);
029        options.add(new ConcreteKeyValue("", ""));
030        for (OleElectronicLocationAndAccessRelationship type : oleElectronicLocationAndAccessRelationships) {
031            options.add(new ConcreteKeyValue(type.getElaRelationshipCode(), type.getElaRelationshipName()));
032        }
033        return options;
034    }
035}