001/*
002 * To change this template, choose Tools | Templates
003 * and open the template in the editor.
004 */
005package org.kuali.rice.krms.impl.repository.mock;
006
007import java.util.HashMap;
008import java.util.LinkedHashSet;
009import java.util.Map;
010import java.util.Set;
011import org.kuali.rice.krms.api.repository.term.TermRepositoryService;
012import org.kuali.rice.krms.api.repository.term.TermResolverDefinition;
013import org.kuali.rice.krms.api.repository.term.TermSpecificationDefinition;
014
015/**
016 *
017 * @author nwright
018 */
019public 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}