001/** 002 * Copyright 2005-2016 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.type.KrmsTypeDefinition; 024import org.kuali.rice.krms.api.repository.type.KrmsTypeRepositoryService; 025 026/** 027 * 028 * @author nwright 029 */ 030public class KrmsTypeLoader { 031 032 private KrmsTypeRepositoryService krmsTypeRepositoryService = null; 033 034 public KrmsTypeRepositoryService getKrmsTypeRepositoryService() { 035 return krmsTypeRepositoryService; 036 } 037 038 public void setKrmsTypeRepositoryService(KrmsTypeRepositoryService krmsTypeRepositoryService) { 039 this.krmsTypeRepositoryService = krmsTypeRepositoryService; 040 } 041 042 public void loadType(String id, String name, String nameSpace, String serviceName) { 043 KrmsTypeDefinition.Builder bldr = KrmsTypeDefinition.Builder.create(name, nameSpace); 044 bldr.setId(id); 045 bldr.setActive(true); 046 bldr.setServiceName(serviceName); 047 KrmsTypeDefinition existing = this.findExisting(bldr); 048 if (existing == null) { 049 this.getKrmsTypeRepositoryService().createKrmsType(bldr.build()); 050 } else { 051 // consider comparing and only update if different! 052 bldr.setVersionNumber(existing.getVersionNumber()); 053 this.getKrmsTypeRepositoryService().updateKrmsType(bldr.build()); 054 } 055 } 056 057 private KrmsTypeDefinition findExisting(KrmsTypeDefinition.Builder bldr) { 058 if (bldr.getId() != null) { 059 try { 060 return this.getKrmsTypeRepositoryService().getTypeById(bldr.getId()); 061 } catch (RiceIllegalArgumentException ex) { 062 return null; 063 } 064 } 065 return this.getKrmsTypeRepositoryService().getTypeByName(bldr.getNamespace(), bldr.getName()); 066 } 067 068 public void load() { 069 // Contexts 070 loadType("10000", "kuali.krms.context.type.course", "KS-SYS", "contextTypeService"); 071 loadType("10001", "kuali.krms.context.type.program", "KS-SYS", "contextTypeService"); 072 loadType("10078", "kuali.krms.context.type.course.offering", "KS-SYS", "contextTypeService"); 073// Agendas 074 loadType("10002", "kuali.krms.agenda.type.course.enrollmentEligibility", "KS-SYS", "agendaTypeService"); 075 loadType("10003", "kuali.krms.agenda.type.course.creditConstraints", "KS-SYS", "agendaTypeService"); 076 loadType("10004", "kuali.krms.agenda.type.schedule.eligibility", "KS-SYS", "agendaTypeService"); 077// Rules 078 loadType("10005", "kuali.krms.rule.type.course.academicReadiness.antireq", "KS-SYS", "ruleTypeService"); 079 loadType("10006", "kuali.krms.rule.type.course.academicReadiness.coreq", "KS-SYS", "ruleTypeService"); 080 loadType("10008", "kuali.krms.rule.type.course.recommendedPreparation", "KS-SYS", "ruleTypeService"); 081 loadType("10009", "kuali.krms.rule.type.course.academicReadiness.studentEligibility", "KS-SYS", "ruleTypeService"); 082 loadType("10010", "kuali.krms.rule.type.course.academicReadiness.studentEligibilityPrereq", "KS-SYS", "ruleTypeService"); 083 loadType("10011", "kuali.krms.rule.type.course.credit.repeatable", "KS-SYS", "ruleTypeService"); 084 loadType("10012", "kuali.krms.rule.type.course.credit.restriction", "KS-SYS", "ruleTypeService"); 085 loadType("10013", "kuali.krms.rule.type.program.completion", "KS-SYS", "ruleTypeService"); 086 loadType("10014", "kuali.krms.rule.type.program.entrance", "KS-SYS", "ruleTypeService"); 087 loadType("10015", "kuali.krms.rule.type.program.satisfactoryProgress", "KS-SYS", "ruleTypeService"); 088 loadType("10016", "kuali.krms.rule.type.schedule.eligibility", "KS-SYS", "ruleTypeService"); 089// Propositions 090 loadType("10017", "kuali.krms.proposition.type.success.compl.course", "KS-SYS", "simplePropositionTypeService"); 091 loadType("10018", "kuali.krms.proposition.type.success.course.courseset.completed.all", "KS-SYS", "simplePropositionTypeService"); 092 loadType("10019", "kuali.krms.proposition.type.success.course.courseset.completed.nof", "KS-SYS", "simplePropositionTypeService"); 093 loadType("10020", "kuali.krms.proposition.type.course.courseset.completed.none", "KS-SYS", "simplePropositionTypeService"); 094 loadType("10021", "kuali.krms.proposition.type.course.courseset.credits.completed.nof", "KS-SYS", "simplePropositionTypeService"); 095 loadType("10022", "kuali.krms.proposition.type.course.courseset.credits.completed.none", "KS-SYS", "simplePropositionTypeService"); 096 loadType("10023", "kuali.krms.proposition.type.course.courseset.enrolled.all", "KS-SYS", "simplePropositionTypeService"); 097 loadType("10024", "kuali.krms.proposition.type.course.courseset.enrolled.nof", "KS-SYS", "simplePropositionTypeService"); 098 loadType("10025", "kuali.krms.proposition.type.course.courseset.gpa.min", "KS-SYS", "simplePropositionTypeService"); 099 loadType("10026", "kuali.krms.proposition.type.course.courseset.grade.max", "KS-SYS", "simplePropositionTypeService"); 100 loadType("10027", "kuali.krms.proposition.type.course.courseset.grade.min", "KS-SYS", "simplePropositionTypeService"); 101 loadType("10028", "kuali.krms.proposition.type.course.courseset.nof.grade.min", "KS-SYS", "simplePropositionTypeService"); 102 loadType("10029", "kuali.krms.proposition.type.course.credits.repeat.max", "KS-SYS", "simplePropositionTypeService"); 103 loadType("10030", "kuali.krms.proposition.type.course.enrolled", "KS-SYS", "simplePropositionTypeService"); 104 loadType("10031", "kuali.krms.proposition.type.freeform.text", "KS-SYS", "simplePropositionTypeService"); 105 loadType("10032", "kuali.krms.proposition.type.course.notcompleted", "KS-SYS", "simplePropositionTypeService"); 106 loadType("10033", "kuali.krms.proposition.type.admitted.to.program.campus", "KS-SYS", "simplePropositionTypeService"); 107 loadType("10034", "kuali.krms.proposition.type.permission.instructor.required", "KS-SYS", "simplePropositionTypeService"); 108 loadType("10035", "kuali.krms.proposition.type.permission.admin.org", "KS-SYS", "simplePropositionTypeService"); 109 loadType("10036", "kuali.krms.proposition.type.notadmitted.to.program", "KS-SYS", "simplePropositionTypeService"); 110 loadType("10037", "kuali.krms.proposition.type.course.test.score.max", "KS-SYS", "simplePropositionTypeService"); 111 loadType("10038", "kuali.krms.proposition.type.course.test.score.min", "KS-SYS", "simplePropositionTypeService"); 112 loadType("10039", "kuali.krms.proposition.type.credits.earned.min", "KS-SYS", "simplePropositionTypeService"); 113 loadType("10040", "kuali.krms.proposition.type.cumulative.gpa.min", "KS-SYS", "simplePropositionTypeService"); 114 loadType("10041", "kuali.krms.proposition.type.duration.cumulative.gpa.min", "KS-SYS", "simplePropositionTypeService"); 115 loadType("10042", "kuali.krms.proposition.type.drop.min.credit.hours.due.to.attribute", "KS-SYS", "simplePropositionTypeService"); 116 loadType("10043", "kuali.krms.proposition.type.drop.min.credit.hours", "KS-SYS", "simplePropositionTypeService"); 117 loadType("10044", "kuali.krms.proposition.type.exceeds.minutes.overlap.allowed", "KS-SYS", "simplePropositionTypeService"); 118 loadType("10045", "kuali.krms.proposition.type.time.conflict.start.end", "KS-SYS", "simplePropositionTypeService"); 119 loadType("10046", "kuali.krms.proposition.type.max.limit.courses.for.program", "KS-SYS", "simplePropositionTypeService"); 120 loadType("10047", "kuali.krms.proposition.type.max.limit.credits.for.program", "KS-SYS", "simplePropositionTypeService"); 121 loadType("10050", "kuali.krms.proposition.type.max.limit.courses.for.campus.duration", "KS-SYS", "simplePropositionTypeService"); 122 loadType("10051", "kuali.krms.proposition.type.max.limit.credits.for.campus.duration", "KS-SYS", "simplePropositionTypeService"); 123 loadType("10052", "kuali.krms.proposition.type.admitted.to.program", "KS-SYS", "simplePropositionTypeService"); 124 loadType("10053", "kuali.krms.proposition.type.course.courseset.completed.nof", "KS-SYS", "simplePropositionTypeService"); 125 loadType("10054", "kuali.krms.proposition.type.success.credit.courseset.completed.nof", "KS-SYS", "simplePropositionTypeService"); 126 loadType("10055", "kuali.krms.proposition.type.success.credits.courseset.completed.nof.org", "KS-SYS", "simplePropositionTypeService"); 127 loadType("10056", "kuali.krms.proposition.type.cant.add.to.activity.offering.due.to.state", "KS-SYS", "simplePropositionTypeService"); 128 loadType("10057", "kuali.krms.proposition.type.no.repeat.course", "KS-SYS", "simplePropositionTypeService"); 129 loadType("10058", "kuali.krms.proposition.type.no.repeat.courses", "KS-SYS", "simplePropositionTypeService"); 130 loadType("10059", "kuali.krms.proposition.type.avail.seat", "KS-SYS", "simplePropositionTypeService"); 131 loadType("10060", "kuali.krms.proposition.type.success.compl.course.as.of.term", "KS-SYS", "simplePropositionTypeService"); 132 loadType("10061", "kuali.krms.proposition.type.success.compl.prior.to.term", "KS-SYS", "simplePropositionTypeService"); 133 loadType("10062", "kuali.krms.proposition.type.success.compl.course.between.terms", "KS-SYS", "simplePropositionTypeService"); 134 loadType("10064", "kuali.krms.proposition.type.notadmitted.to.program.in.class.standing", "KS-SYS", "simplePropositionTypeService"); 135 loadType("10065", "kuali.krms.proposition.type.admitted.to.program.org", "KS-SYS", "simplePropositionTypeService"); 136 loadType("10066", "kuali.krms.proposition.type.in.class.standing", "KS-SYS", "simplePropositionTypeService"); 137 loadType("10067", "kuali.krms.proposition.type.greater.than.class.standing", "KS-SYS", "simplePropositionTypeService"); 138 loadType("10068", "kuali.krms.proposition.type.less.than.class.standing", "KS-SYS", "simplePropositionTypeService"); 139 loadType("10069", "kuali.krms.proposition.type.notin.class.standing", "KS-SYS", "simplePropositionTypeService"); 140 loadType("10071", "kuali.krms.proposition.type.course.courseset.enrolled", "KS-SYS", "simplePropositionTypeService"); 141 loadType("10072", "kuali.krms.proposition.type.no.repeat.course.nof", "KS-SYS", "simplePropositionTypeService"); 142 loadType("10074", "kuali.krms.proposition.type.test.score.between.values", "KS-SYS", "simplePropositionTypeService"); 143 loadType("10075", "kuali.krms.proposition.type.test.score", "KS-SYS", "simplePropositionTypeService"); 144 loadType("10076", "kuali.krms.proposition.type.compound.and", "KS-SYS", "compoundPropositionTypeService"); 145 loadType("10077", "kuali.krms.proposition.type.compound.or", "KS-SYS", "compoundPropositionTypeService"); 146// Parameters 147 loadType("10100", "kuali.krms.proposition.parameter.type.term.number.of.completed.courses", "KS-SYS", "termPropositionParameterTypeService"); 148 loadType("10101", "kuali.krms.proposition.parameter.type.operator.less.than.or.equal.to", "KS-SYS", "operatorPropositionParameterTypeService"); 149 loadType("10102", "kuali.krms.proposition.parameter.type.constant.value.n", "KS-SYS", "constantPropositionParameterTypeService"); 150 // term parameters 151 loadType("10103", "kuali.term.parameter.type.course.clu.id", "KS-SYS", "termParameterTypeService"); 152 loadType("10104", "kuali.term.parameter.type.course.cluSet.id", "KS-SYS", "termParameterTypeService"); 153 loadType("10105", "kuali.term.parameter.type.free.text", "KS-SYS", "termParameterTypeService"); 154 loadType("10106", "kuali.term.parameter.type.grade.id", "KS-SYS", "termParameterTypeService"); 155 loadType("10107", "kuali.term.parameter.type.org.id", "KS-SYS", "termParameterTypeService"); 156 loadType("10108", "kuali.term.parameter.type.program.cluSet.id", "KS-SYS", "termParameterTypeService"); 157 } 158}