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 java.util.List; 023import org.kuali.rice.krms.api.repository.type.KrmsTypeRepositoryService; 024import org.kuali.rice.krms.api.repository.typerelation.RelationshipType; 025import org.kuali.rice.krms.api.repository.typerelation.TypeTypeRelation; 026 027/** 028 * 029 * @author nwright 030 */ 031public class KrmsTypeRelationLoader { 032 033 private KrmsTypeRepositoryService krmsTypeRepositoryService = null; 034 035 public KrmsTypeRepositoryService getKrmsTypeRepositoryService() { 036 return krmsTypeRepositoryService; 037 } 038 039 public void setKrmsTypeRepositoryService(KrmsTypeRepositoryService krmsTypeRepositoryService) { 040 this.krmsTypeRepositoryService = krmsTypeRepositoryService; 041 } 042 043 public void loadTypeRelation(String id, String fromTypeId, String toTypeId, String relType, Integer sequenceNumber) { 044 RelationshipType relationshipType = RelationshipType.USAGE_ALLOWED; 045 if (!relType.equals("A")) { 046 relationshipType = RelationshipType.UNKNOWN; 047 } 048 TypeTypeRelation.Builder bldr = TypeTypeRelation.Builder.create(fromTypeId, relationshipType, sequenceNumber, toTypeId); 049 bldr.setId(id); 050 bldr.setActive(true); 051 TypeTypeRelation existing = this.findExisting(bldr); 052 if (existing == null) { 053 this.getKrmsTypeRepositoryService().createTypeTypeRelation(bldr.build()); 054 } else { 055 // consider comparing and only update if different! 056 bldr.setVersionNumber(existing.getVersionNumber()); 057 this.getKrmsTypeRepositoryService().updateTypeTypeRelation(bldr.build()); 058 } 059 } 060 061 private TypeTypeRelation findExisting(TypeTypeRelation.Builder bldr) { 062 List<TypeTypeRelation> list = this.getKrmsTypeRepositoryService().findTypeTypeRelationsByFromType(bldr.getFromTypeId()); 063 for (TypeTypeRelation rel : list) { 064 if (bldr.getToTypeId().equals(rel.getToTypeId())) { 065 return rel; 066 } 067 } 068 return null; 069 } 070 071 public void load() { 072 // agendas for contexts 073 loadTypeRelation("10000", "10000", "10002", "A", 1); 074 loadTypeRelation("10001", "10000", "10003", "A", 6); 075 loadTypeRelation("10010", "10001", "10014", "A", 1); 076 loadTypeRelation("10011", "10001", "10015", "A", 2); 077 loadTypeRelation("10009", "10001", "10013", "A", 3); 078// rules for agendas 079 loadTypeRelation("10006", "10002", "10010", "A", 2); 080 loadTypeRelation("10003", "10002", "10006", "A", 3); 081 loadTypeRelation("10005", "10002", "10008", "A", 4); 082 loadTypeRelation("10002", "10002", "10005", "A", 5); 083 loadTypeRelation("10008", "10003", "10012", "A", 7); 084 loadTypeRelation("10007", "10003", "10011", "A", 8); 085 loadTypeRelation("10012", "10004", "10016", "A", 2); 086// propositions for rules 087 loadTypeRelation("10030", "10005", "10021", "A", 1); 088 loadTypeRelation("10057", "10005", "10032", "A", 1); 089 loadTypeRelation("10026", "10005", "10020", "A", 2); 090 loadTypeRelation("10033", "10005", "10022", "A", 3); 091 loadTypeRelation("10067", "10005", "10037", "A", 5); 092 loadTypeRelation("10055", "10006", "10031", "A", 0); 093 loadTypeRelation("10054", "10006", "10030", "A", 1); 094 loadTypeRelation("10036", "10006", "10024", "A", 2); 095 loadTypeRelation("10035", "10006", "10023", "A", 3); 096 loadTypeRelation("10014", "10008", "10017", "A", 1); 097 loadTypeRelation("10059", "10009", "10033", "A", 2); 098 loadTypeRelation("10065", "10009", "10036", "A", 3); 099 loadTypeRelation("10056", "10010", "10031", "A", 0); 100 loadTypeRelation("10015", "10010", "10017", "A", 1); 101 loadTypeRelation("10114", "10010", "10040", "A", 1); 102 loadTypeRelation("10116", "10010", "10052", "A", 1); 103 loadTypeRelation("10113", "10010", "10054", "A", 1); 104 loadTypeRelation("10115", "10010", "10055", "A", 1); 105 loadTypeRelation("10019", "10010", "10018", "A", 2); 106 loadTypeRelation("10023", "10010", "10019", "A", 3); 107 loadTypeRelation("10038", "10010", "10025", "A", 6); 108 loadTypeRelation("10045", "10010", "10027", "A", 7); 109 loadTypeRelation("10049", "10010", "10028", "A", 8); 110 loadTypeRelation("10042", "10010", "10026", "A", 9); 111 loadTypeRelation("10060", "10010", "10033", "A", 11); 112 loadTypeRelation("10066", "10010", "10036", "A", 12); 113 loadTypeRelation("10062", "10010", "10034", "A", 13); 114 loadTypeRelation("10064", "10010", "10035", "A", 14); 115 loadTypeRelation("10070", "10010", "10038", "A", 15); 116 loadTypeRelation("10108", "10010", "10074", "A", 15); 117 loadTypeRelation("10111", "10010", "10075", "A", 15); 118 loadTypeRelation("10053", "10011", "10029", "A", 1); 119 loadTypeRelation("10058", "10012", "10032", "A", 1); 120 loadTypeRelation("10027", "10012", "10020", "A", 2); 121 loadTypeRelation("10039", "10013", "10025", "A", 4); 122 loadTypeRelation("10072", "10013", "10039", "A", 5); 123 loadTypeRelation("10024", "10013", "10019", "A", 10); 124 loadTypeRelation("10020", "10013", "10018", "A", 11); 125 loadTypeRelation("10031", "10013", "10021", "A", 12); 126 loadTypeRelation("10046", "10013", "10027", "A", 13); 127 loadTypeRelation("10050", "10013", "10028", "A", 14); 128 loadTypeRelation("10016", "10013", "10017", "A", 16); 129 loadTypeRelation("10073", "10013", "10040", "A", 18); 130 loadTypeRelation("10040", "10014", "10025", "A", 5); 131 loadTypeRelation("10071", "10014", "10038", "A", 6); 132 loadTypeRelation("10109", "10014", "10074", "A", 6); 133 loadTypeRelation("10112", "10014", "10075", "A", 6); 134 loadTypeRelation("10025", "10014", "10019", "A", 9); 135 loadTypeRelation("10028", "10014", "10020", "A", 10); 136 loadTypeRelation("10021", "10014", "10018", "A", 11); 137 loadTypeRelation("10032", "10014", "10021", "A", 12); 138 loadTypeRelation("10034", "10014", "10022", "A", 13); 139 loadTypeRelation("10068", "10014", "10037", "A", 15); 140 loadTypeRelation("10047", "10014", "10027", "A", 16); 141 loadTypeRelation("10051", "10014", "10028", "A", 17); 142 loadTypeRelation("10043", "10014", "10026", "A", 18); 143 loadTypeRelation("10017", "10014", "10017", "A", 19); 144 loadTypeRelation("10052", "10015", "10028", "A", 5); 145 loadTypeRelation("10074", "10015", "10040", "A", 6); 146 loadTypeRelation("10075", "10015", "10041", "A", 7); 147 loadTypeRelation("10076", "10016", "10042", "A", 2); 148 loadTypeRelation("10077", "10016", "10043", "A", 2); 149 loadTypeRelation("10078", "10016", "10044", "A", 2); 150 loadTypeRelation("10079", "10016", "10045", "A", 2); 151 loadTypeRelation("10080", "10016", "10046", "A", 2); 152 loadTypeRelation("10081", "10016", "10047", "A", 2); 153 loadTypeRelation("10084", "10016", "10050", "A", 2); 154 loadTypeRelation("10085", "10016", "10051", "A", 2); 155 loadTypeRelation("10086", "10016", "10052", "A", 2); 156 loadTypeRelation("10087", "10016", "10053", "A", 2); 157 loadTypeRelation("10088", "10016", "10054", "A", 2); 158 loadTypeRelation("10089", "10016", "10055", "A", 2); 159 loadTypeRelation("10090", "10016", "10056", "A", 2); 160 loadTypeRelation("10091", "10016", "10057", "A", 2); 161 loadTypeRelation("10092", "10016", "10058", "A", 2); 162 loadTypeRelation("10093", "10016", "10059", "A", 2); 163 loadTypeRelation("10094", "10016", "10060", "A", 2); 164 loadTypeRelation("10095", "10016", "10061", "A", 2); 165 loadTypeRelation("10096", "10016", "10062", "A", 2); 166 loadTypeRelation("10098", "10016", "10064", "A", 2); 167 loadTypeRelation("10099", "10016", "10065", "A", 2); 168 loadTypeRelation("10100", "10016", "10066", "A", 2); 169 loadTypeRelation("10101", "10016", "10067", "A", 2); 170 loadTypeRelation("10102", "10016", "10068", "A", 2); 171 loadTypeRelation("10103", "10016", "10069", "A", 2); 172 loadTypeRelation("10105", "10016", "10071", "A", 2); 173 loadTypeRelation("10106", "10016", "10072", "A", 2); 174// parameters for propositions 175 loadTypeRelation("10019-A-10100", "10019", "10100", "A", 1); 176 loadTypeRelation("10019-A-10102", "10019", "10102", "A", 2); 177 loadTypeRelation("10019-A-10101", "10019", "10101", "A", 3); 178 // TERM PARAMETER 179 loadTypeRelation("10100-A-10104", "10100", "10104", "A", 1); 180 } 181}