001/** 002 * Copyright 2004-2014 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 */ 016package org.kuali.student.contract.model; 017 018import java.util.ArrayList; 019import java.util.List; 020 021/** 022 * 023 * @author nwright 024 */ 025public class OrchestrationObjectField { 026 027 private OrchestrationObject parent; 028 private String name; 029 private String type; 030 031 public enum FieldTypeCategory { 032 033 PRIMITIVE, 034 MAPPED_STRING, 035 DYNAMIC_ATTRIBUTE, 036 COMPLEX, 037 COMPLEX_INLINE, 038 LIST_OF_PRIMITIVE, 039 LIST_OF_MAPPED_STRING, 040 LIST_OF_COMPLEX, 041 LIST_OF_COMPLEX_INLINE; 042 } 043 044 public OrchestrationObject getParent() { 045 return parent; 046 } 047 048 public void setParent(OrchestrationObject parent) { 049 this.parent = parent; 050 } 051 052 public void setName(String name) { 053 this.name = name; 054 } 055 056 public String getName() { 057 return name; 058 } 059 060 public String getPropertyName() { 061 return name.substring(0, 1).toLowerCase() + name.substring(1); 062 } 063 064 public String getProperName() { 065 return name.substring(0, 1).toUpperCase() + name.substring(1); 066 } 067 068 public void setType(String type) { 069 this.type = type; 070 } 071 072 public String getType() { 073 return type; 074 } 075 private FieldTypeCategory fieldTypeCategory; 076 077 public FieldTypeCategory getFieldTypeCategory() { 078 return fieldTypeCategory; 079 } 080 081 public void setFieldTypeCategory( 082 FieldTypeCategory fieldTypeCategory) { 083 this.fieldTypeCategory = fieldTypeCategory; 084 } 085 private OrchestrationObject inlineObject; 086 087 public OrchestrationObject getInlineObject() { 088 return inlineObject; 089 } 090 091 public void setInlineObject(OrchestrationObject inlineObject) { 092 this.inlineObject = inlineObject; 093 } 094 private List<TypeStateConstraint> constraints; 095 096 public List<TypeStateConstraint> getConstraints() { 097 if (constraints == null) { 098 constraints = new ArrayList(); 099 } 100 return constraints; 101 } 102 103 public void setConstraints(List<TypeStateConstraint> constraints) { 104 this.constraints = constraints; 105 } 106 private String defaultValue; 107 108 public String getDefaultValue() { 109 return defaultValue; 110 } 111 112 public void setDefaultValue(String defaultValue) { 113 this.defaultValue = defaultValue; 114 } 115 private String defaultValuePath; 116 117 public String getDefaultValuePath() { 118 return defaultValuePath; 119 } 120 121 public void setDefaultValuePath(String defaultValuePath) { 122 this.defaultValuePath = defaultValuePath; 123 } 124 125 public String getFullyQualifiedName() { 126 //TODO: Get grand parent 127 StringBuffer buf = new StringBuffer(); 128 buf.append(getParent().getName()); 129 buf.append("."); 130 buf.append(getProperName()); 131 return buf.toString(); 132 } 133 134 public enum WriteAccess { 135 136 ALWAYS, NEVER, ON_CREATE; 137 } 138 private WriteAccess writeAccess; 139 140 public WriteAccess getWriteAccess() { 141 return writeAccess; 142 } 143 144 public void setWriteAccess(WriteAccess writeAccess) { 145 this.writeAccess = writeAccess; 146 } 147 private String lookup; 148 149 public String getLookup() { 150 return lookup; 151 } 152 153 public void setLookup(String lookup) { 154 this.lookup = lookup; 155 } 156 private List<String> additionalLookups; 157 158 public List<String> getAdditionalLookups() { 159 return additionalLookups; 160 } 161 162 public void setAdditionalLookups(List<String> additionalLookups) { 163 this.additionalLookups = additionalLookups; 164 } 165 private String lookupContextPath; 166 167 public String getLookupContextPath() { 168 return lookupContextPath; 169 } 170 171 public void setLookupContextPath(String lookupContextPath) { 172 this.lookupContextPath = lookupContextPath; 173 } 174 private Integer maxRecursions; 175 176 public Integer getMaxRecursions() { 177 return maxRecursions; 178 } 179 180 public void setMaxRecursions(Integer maxRecursions) { 181 this.maxRecursions = maxRecursions; 182 } 183}