001/** 002 * Copyright 2005-2017 The Kuali Foundation 003 * 004 * Licensed under the Educational Community License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/ecl2.php 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016/* 017 * To change this template, choose Tools | Templates 018 * and open the template in the editor. 019 */ 020package org.kuali.rice.krms.impl.repository.mock; 021 022import org.kuali.rice.core.api.exception.RiceIllegalArgumentException; 023import org.kuali.rice.krms.api.repository.term.TermRepositoryService; 024import org.kuali.rice.krms.api.repository.term.TermSpecificationDefinition; 025 026/** 027 * 028 * @author nwright 029 */ 030public class KrmsTermSpecificationLoader { 031 032 private TermRepositoryService termRepositoryService = null; 033 034 public TermRepositoryService getTermRepositoryService() { 035 return termRepositoryService; 036 } 037 038 public void setTermRepositoryService(TermRepositoryService termRepositoryService) { 039 this.termRepositoryService = termRepositoryService; 040 } 041 042 public void loadTermSpec(String id, String name, String type, String description, String namespace) { 043 TermSpecificationDefinition.Builder bldr = TermSpecificationDefinition.Builder.create(id, name, namespace, type); 044 bldr.setDescription(description); 045 bldr.setId(id); 046 bldr.setActive(true); 047 TermSpecificationDefinition existing = this.findExisting(bldr); 048 if (existing == null) { 049 this.getTermRepositoryService().createTermSpecification(bldr.build()); 050 } else { 051 bldr.setVersionNumber(existing.getVersionNumber()); 052 this.getTermRepositoryService().updateTermSpecification(bldr.build()); 053 } 054 } 055 056 private TermSpecificationDefinition findExisting(TermSpecificationDefinition.Builder bldr) { 057 if (bldr.getId() != null) { 058 try { 059 return this.getTermRepositoryService().getTermSpecificationById(bldr.getId()); 060 } catch (RiceIllegalArgumentException ex) { 061 return null; 062 } 063 } 064 return this.getTermRepositoryService().getTermSpecificationByNameAndNamespace(bldr.getName(), bldr.getNamespace()); 065 } 066 067 public void load() { 068 loadTermSpec("10000", "CompletedCourse", "java.lang.Boolean", "Completed course", "KS-SYS"); 069 loadTermSpec("10001", "CompletedCourses", "java.lang.Boolean", "Completed courses", "KS-SYS"); 070 loadTermSpec("10002", "NumberOfCompletedCourses", "java.lang.Integer", " Number of completed courses", "KS-SYS"); 071 loadTermSpec("10003", "NumberOfCreditsFromCompletedCourses", "java.lang.Integer", "Number of credits from completed courses", "KS-SYS"); 072 loadTermSpec("10004", "EnrolledCourses", "java.lang.Integer", "Enrolled courses", "KS-SYS"); 073 loadTermSpec("10005", "GPAForCourses", "java.lang.Integer", "GPA for courses", "KS-SYS"); 074 loadTermSpec("10006", "GradeTypeForCourses", "java.lang.Integer", "Grade type for courses", "KS-SYS"); 075 loadTermSpec("10007", "NumberOfCredits", "java.lang.Integer", "Number of credits", "KS-SYS"); 076 loadTermSpec("10008", "NumberOfCreditsFromOrganization", "java.lang.Integer", "Number of credits from organization", "KS-SYS"); 077 loadTermSpec("10009", "AdminOrganizationPermissionRequired", "java.lang.Boolean", "Admin organization permission required", "KS-SYS"); 078 loadTermSpec("10010", "ScoreOnTest", "java.lang.Integer", "Score on test", "KS-SYS"); 079 loadTermSpec("10011", "AdmittedToProgram", "java.lang.Boolean", "Admitted to program", "KS-SYS"); 080 loadTermSpec("10012", "AdmittedToProgramLimitCoursesInOrgForDuration", "java.lang.Integer", "Admitted to program limit courses in organization for duration", "KS-SYS"); 081 loadTermSpec("10013", "FreeFormText", "java.lang.Boolean", "Free Form Text", "KS-SYS"); 082 } 083}