001    /*
002     * To change this template, choose Tools | Templates
003     * and open the template in the editor.
004     */
005    package org.kuali.rice.krms.impl.repository.mock;
006    
007    import java.util.HashMap;
008    import java.util.LinkedHashSet;
009    import java.util.Map;
010    import java.util.Set;
011    import org.kuali.rice.krms.api.repository.term.TermRepositoryService;
012    import org.kuali.rice.krms.api.repository.term.TermResolverDefinition;
013    import org.kuali.rice.krms.api.repository.term.TermSpecificationDefinition;
014    
015    /**
016     *
017     * @author nwright
018     */
019    public class KrmsTermResolverLoader {
020    
021        private TermRepositoryService termRepositoryService = null;
022    
023        public TermRepositoryService getTermRepositoryService() {
024            return termRepositoryService;
025        }
026    
027        public void setTermRepositoryService(TermRepositoryService termRepositoryService) {
028            this.termRepositoryService = termRepositoryService;
029        }
030    
031        public void loadTermResolver(String id,
032                String namespace,
033                String name,
034                String typeId,
035                String outputId,
036                String prereqId1,
037                String prereqId2,
038                String prereqId3) {
039            TermSpecificationDefinition.Builder output =
040                    TermSpecificationDefinition.Builder.create(this.getTermRepositoryService().getTermSpecificationById(outputId));
041            Set<TermSpecificationDefinition.Builder> prerequisites =
042                    new LinkedHashSet<TermSpecificationDefinition.Builder>();
043            if (prereqId1 != null && !prereqId1.isEmpty()) {
044                prerequisites.add(TermSpecificationDefinition.Builder.create(this.getTermRepositoryService().getTermSpecificationById(prereqId1)));
045            }
046            if (prereqId2 != null && !prereqId2.isEmpty()) {
047                prerequisites.add(TermSpecificationDefinition.Builder.create(this.getTermRepositoryService().getTermSpecificationById(prereqId2)));
048            }
049            if (prereqId3 != null && !prereqId3.isEmpty()) {
050                prerequisites.add(TermSpecificationDefinition.Builder.create(this.getTermRepositoryService().getTermSpecificationById(prereqId3)));
051            }
052            Map<String, String> attributes = new HashMap<String, String>();
053            // TODO: findout what parameter names are used for!
054            Set<String> parameterNames = new LinkedHashSet<String>();
055    //        create(String id, 
056    //        String namespaceCode, 
057    //                String name, 
058    //                String typeId,
059    //                TermSpecificationDefinition.Builder output, 
060    //                Set<TermSpecificationDefinition.Builder> prerequisites, 
061    //                Map<String, String> attributes,
062    //                Set<String> parameterNames)
063            TermResolverDefinition.Builder bldr = TermResolverDefinition.Builder.create(id,
064                    namespace,
065                    name,
066                    typeId,
067                    output,
068                    prerequisites,
069                    attributes,
070                    parameterNames);
071            bldr.setActive(true);
072            this.getTermRepositoryService().createTermResolver(bldr.build());
073        }
074        
075        public void load(){
076            loadTermResolver("10000", "KS-SYS", "CompletedCourse", "10000", "10000", "", "", "");
077            loadTermResolver("10001", "KS-SYS", "CompletedCourses", "10000", "10001", "", "", "");
078            loadTermResolver("10002", "KS-SYS", "NumberOfCompletedCourses", "10000", "10002", "", "", "");
079            loadTermResolver("10003", "KS-SYS", "NumberOfCreditsFromCompletedCourses", "10000", "10003", "", "", "");
080            loadTermResolver("10004", "KS-SYS", "EnrolledCourses", "10000", "10004", "", "", "");
081            loadTermResolver("10005", "KS-SYS", "GPAForCourses", "10000", "10005", "", "", "");
082            loadTermResolver("10006", "KS-SYS", "GradeTypeForCourses", "10000", "10006", "", "", "");
083            loadTermResolver("10007", "KS-SYS", "NumberOfCredits", "10000", "10007", "", "", "");
084            loadTermResolver("10008", "KS-SYS", "NumberOfCreditsFromOrganization", "10000", "10008", "", "", "");
085            loadTermResolver("10009", "KS-SYS", "AdminOrganizationPermissionRequired", "10000", "10009", "", "", "");
086            loadTermResolver("10010", "KS-SYS", "ScoreOnTest", "10000", "10010", "", "", "");
087            loadTermResolver("10011", "KS-SYS", "AdmittedToProgram", "10000", "10011", "", "", "");
088            loadTermResolver("10012", "KS-SYS", "AdmittedToProgramLimitCoursesInOrgForDuration", "10000", "10012", "", "", "");
089            loadTermResolver("10013", "KS-SYS", "FreeFormText", "10000", "10013", "", "", "");
090        }
091    
092    
093    }