Clover Coverage Report - Kuali Student 1.2-M4-SNAPSHOT (Aggregated)
Coverage timestamp: Wed Jul 20 2011 11:14:35 EDT
../../../../../../img/srcFileCovDistChart0.png 41% of files have more coverage
18   104   9   3
6   51   0.5   6
6     1.5  
1    
 
  CocOrganizationQualifierResolver       Line # 50 18 0% 9 30 0% 0.0
 
No Tests
 
1    /**
2    *
3    */
4    package org.kuali.student.lum.workflow.qualifierresolver;
5   
6    import java.util.ArrayList;
7    import java.util.List;
8   
9    import org.apache.commons.lang.StringUtils;
10    import org.kuali.rice.kew.engine.RouteContext;
11    import org.kuali.rice.kew.engine.node.RouteNodeUtils;
12    import org.kuali.rice.kim.bo.types.dto.AttributeSet;
13    import org.kuali.student.common.search.dto.SearchResultRow;
14   
15    /**
16    * A QualifierResolver class that will use configuration elements from the Route Node xml configuration to get a list of
17    * organizations related to the organization(s) that are set in the document content xml for a particular document
18    * instance.
19    *
20    * <p>
21    * A sample of the Route Node configuration:
22    * <p>
23    *
24    * <pre>
25    * {@code
26    * <role name="Document Organization Review">
27    * <activationType>P</activationType>
28    * <qualifierResolverClass>org.kuali.student.lum.workflow.qualifierresolver.CocOrganizationQualifierResolver</qualifierResolverClass>
29    * <useNonDerivedRoles>true</useNonDerivedRoles>
30    * <organizationIdQualifierKey>orgId</organizationIdQualifierKey>
31    * <organizationIdDocumentContentKey>orgId</organizationIdDocumentContentKey>
32    * </role>
33    * }
34    * </pre>
35    *
36    * <p>
37    * A sample of the Document Content xml expected by default:
38    * <p>
39    *
40    * <pre>
41    * {@code
42    * <info>
43    * <orgId>1234</orgId>
44    * <orgId>5678</orgId>
45    * </info>
46    * }
47    * </pre>
48    *
49    */
 
50    public class CocOrganizationQualifierResolver extends AbstractOrganizationServiceQualifierResolver {
51    private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(CocOrganizationQualifierResolver.class);
52   
53    protected static final String ROUTE_NODE_XML_ORG_ID_QUALIFIER_KEY = "organizationIdQualifierKey";
54    protected static final String ROUTE_NODE_XML_USE_NON_DERIVED_ROLES = "useNonDerivedRoles";
55   
56    public static final String KUALI_ORG_TYPE_CURRICULUM_PARENT = "kuali.org.CurriculumParent";
57    public static final String KUALI_ORG_HIERARCHY_CURRICULUM = "kuali.org.hierarchy.Curriculum";
58    public static final String KUALI_ORG_COC = "kuali.org.COC";
59   
60    /**
61    * @see org.kuali.rice.kew.role.QualifierResolver#resolve(org.kuali.rice.kew.engine.RouteContext)
62    */
 
63  0 toggle @Override
64    public List<AttributeSet> resolve(RouteContext context) {
65  0 List<AttributeSet> attributeSets = new ArrayList<AttributeSet>();
66  0 String orgIdKey = getNodeSpecificOrganizationIdAttributeSetKey(context);
67  0 for (String orgId : getOrganizationIdsFromDocumentContent(context)) {
68  0 List<SearchResultRow> results = relatedOrgsFromOrgId(orgId, getOrganizationRelationTypeCode(), getRelatedOrganizationTypeCode());
69  0 attributeSets.addAll(attributeSetFromSearchResult(results, orgIdKey));
70    }
71  0 return attributeSets;
72    }
73   
 
74  0 toggle public String getNodeSpecificOrganizationIdAttributeSetKey(RouteContext context) {
75  0 String organizationIdFieldKey = RouteNodeUtils.getValueOfCustomProperty(context.getNodeInstance().getRouteNode(), ROUTE_NODE_XML_ORG_ID_QUALIFIER_KEY);
76  0 if (StringUtils.isBlank(organizationIdFieldKey)) {
77  0 if (usesNonDerivedOrganizationRoles(context)) {
78  0 throw new RuntimeException("Cannot find required XML element '" + ROUTE_NODE_XML_ORG_ID_QUALIFIER_KEY + "' on the Route Node XML configuration.");
79    }
80    }
81  0 return organizationIdFieldKey;
82    }
83   
 
84  0 toggle public Boolean usesNonDerivedOrganizationRoles(RouteContext context) {
85  0 String useNonDerivedOrganizationRoles = RouteNodeUtils.getValueOfCustomProperty(context.getNodeInstance().getRouteNode(), ROUTE_NODE_XML_USE_NON_DERIVED_ROLES);
86  0 if (StringUtils.isNotBlank(useNonDerivedOrganizationRoles)) {
87  0 return Boolean.valueOf(useNonDerivedOrganizationRoles);
88    }
89  0 return true;
90    }
91   
 
92  0 toggle protected String getOrganizationHierarchyTypeCode() {
93  0 return KUALI_ORG_HIERARCHY_CURRICULUM;
94    }
95   
 
96  0 toggle protected String getOrganizationRelationTypeCode() {
97  0 return KUALI_ORG_TYPE_CURRICULUM_PARENT;
98    }
99   
 
100  0 toggle protected String getRelatedOrganizationTypeCode() {
101  0 return KUALI_ORG_COC;
102    }
103   
104    }