00001
00025 package org.objectweb.jonas_ejb.genic;
00026
00027 import org.objectweb.jonas_ejb.deployment.api.EjbRelationshipRoleDesc;
00028 import org.objectweb.jonas_ejb.deployment.api.EntityCmp2Desc;
00029 import org.objectweb.jonas_ejb.lib.BeanNaming;
00030
00031
00039 public class VcCMRField {
00040
00044 private String name;
00048 private String uFLName;
00052 private String typeName;
00056 private EjbRelationshipRoleDesc rsr;
00060 private EjbRelationshipRoleDesc rsr2;
00064 private byte relationType = -1;
00069 private String genClassName = null;
00073 private EntityCmp2Desc element = null;
00074
00080 public VcCMRField(EjbRelationshipRoleDesc rsr) throws GenICException {
00081 this.rsr = rsr;
00082 name = rsr.getCmrFieldName();
00083 uFLName = upperFL(name);
00084 element = rsr.getTargetBean();
00085 typeName = rsr.getCmrFieldType().getName();
00086 if (rsr.isTargetMultiple()) {
00087 if (java.util.Collection.class.equals(rsr.getCmrFieldType())) {
00088
00089 genClassName = "org.objectweb.jonas_ejb.container.jorm.Set";
00090 } else if (java.util.Set.class.equals(rsr.getCmrFieldType())) {
00091 genClassName = "org.objectweb.jonas_ejb.container.jorm.Set";
00092 } else {
00093 throw new GenICException("Unauthorized multivalued relation type:" + rsr.getCmrFieldType());
00094 }
00095 }
00096 rsr2 = rsr.getOppositeRelationshipRole();
00097 relationType = rsr.getRelationType();
00098 }
00099
00103 public String getName() {
00104 return name;
00105 }
00106
00112 public String getTypeName() {
00113 return typeName;
00114 }
00115
00120 public String getUFLName() {
00121 return uFLName;
00122 }
00123
00127 public EjbRelationshipRoleDesc getRsr() {
00128 return rsr;
00129 }
00130
00134 public String getOppositeUFLCMRName() {
00135 return upperFL(rsr2.getCmrFieldName());
00136 }
00137
00142 public String getHelperClassName() {
00143 return "JOnAS" + rsr.getSourceBeanName() + "CoherenceHelper";
00144 }
00145
00150 public String getHelperFQClassName() {
00151 String pn = BeanNaming.getPackageName(rsr2.getTargetBean().getFullDerivedBeanName());
00152 if (pn != null && pn.length() > 0) {
00153 return pn + "." + getHelperClassName();
00154 } else {
00155 return getHelperClassName();
00156 }
00157 }
00158
00163 public String getOppositeHelperClassName() {
00164 return "JOnAS" + rsr2.getSourceBeanName() + "CoherenceHelper";
00165 }
00166
00171 public String getOppositeHelperFQClassName() {
00172 String pn = BeanNaming.getPackageName(rsr.getTargetBean().getFullDerivedBeanName());
00173 if (pn != null && pn.length() > 0) {
00174 return pn + "." + getOppositeHelperClassName();
00175 } else {
00176 return getOppositeHelperClassName();
00177 }
00178 }
00179
00185 public String getGenClassName() {
00186 return genClassName;
00187 }
00188
00192 public EntityCmp2Desc getElement() {
00193 return element;
00194 }
00195
00201 public String upperFL(String word) {
00202 return Character.toUpperCase(word.charAt(0)) + word.substring(1);
00203 }
00204
00208 public boolean isOOu() {
00209 return relationType == EjbRelationshipRoleDesc.OOU;
00210 }
00211
00215 public boolean isOOb() {
00216 return relationType == EjbRelationshipRoleDesc.OOB;
00217 }
00218
00222 public boolean isOMu() {
00223 return relationType == EjbRelationshipRoleDesc.OMU;
00224 }
00225
00229 public boolean isMOu() {
00230 return relationType == EjbRelationshipRoleDesc.MOU;
00231 }
00232
00236 public boolean isMOb() {
00237 return relationType == EjbRelationshipRoleDesc.MOB;
00238 }
00239
00243 public boolean isOMb() {
00244 return relationType == EjbRelationshipRoleDesc.OMB;
00245 }
00246
00250 public boolean isMMu() {
00251 return relationType == EjbRelationshipRoleDesc.MMU;
00252 }
00253
00257 public boolean isMMb() {
00258 return relationType == EjbRelationshipRoleDesc.MMB;
00259 }
00260
00264 public String toString() {
00265 StringBuffer ret = new StringBuffer();
00266 ret.append("\n Name = " + getName());
00267 ret.append("\n TypeName = " + getTypeName());
00268 ret.append("\n UFLName = " + getUFLName());
00269 ret.append("\n OppositeUFLCMRName = " + getOppositeUFLCMRName());
00270 ret.append("\n HelperClassName = " + getHelperClassName());
00271 ret.append("\n HelperFQClassName = " + getHelperFQClassName());
00272 ret.append("\n OppositeHelperClassName = " + getOppositeHelperClassName());
00273 ret.append("\n OppositeHelperFQClassName = " + getOppositeHelperFQClassName());
00274 ret.append("\n GenClassName = " + getGenClassName());
00275 ret.append("\n isOOu = " + isOOu());
00276 ret.append("\n isOOb = " + isOOb());
00277 ret.append("\n isOMu = " + isOMu());
00278 ret.append("\n isOMb = " + isOMb());
00279 ret.append("\n isMOb = " + isMOb());
00280 ret.append("\n isMNu = " + isMMu());
00281 ret.append("\n isMNb = " + isMMb());
00282 return (ret.toString());
00283 }
00284 }