Coverage Report - org.kuali.rice.kim.api.common.delegate.Delegate
 
Classes in this File Line Coverage Branch Coverage Complexity
Delegate
93%
46/49
N/A
1.283
Delegate$1
N/A
N/A
1.283
Delegate$Builder
93%
77/82
75%
15/20
1.283
Delegate$Constants
50%
1/2
N/A
1.283
Delegate$Elements
0%
0/1
N/A
1.283
 
 1  
 /*
 2  
  * Copyright 2006-2011 The Kuali Foundation
 3  
  * Licensed under the Educational Community License, Version 2.0 (the "License");
 4  
  * you may not use this file except in compliance with the License.
 5  
  * You may obtain a copy of the License at
 6  
  *
 7  
  * http://www.opensource.org/licenses/ecl2.php
 8  
  *
 9  
  * Unless required by applicable law or agreed to in writing, software
 10  
  * distributed under the License is distributed on an "AS IS" BASIS,
 11  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 12  
  * See the License for the specific language governing permissions and
 13  
  * limitations under the License.
 14  
  */
 15  
 package org.kuali.rice.kim.api.common.delegate;
 16  
 
 17  
 import org.apache.commons.lang.StringUtils;
 18  
 import org.apache.commons.lang.builder.EqualsBuilder;
 19  
 import org.apache.commons.lang.builder.HashCodeBuilder;
 20  
 import org.apache.commons.lang.builder.ToStringBuilder;
 21  
 import org.kuali.rice.core.api.CoreConstants;
 22  
 import org.kuali.rice.core.api.mo.ModelBuilder;
 23  
 import org.kuali.rice.core.api.mo.ModelObjectComplete;
 24  
 import org.kuali.rice.core.api.mo.common.active.InactivatableFromToUtils;
 25  
 import org.kuali.rice.core.util.AttributeSet;
 26  
 import org.kuali.rice.core.util.jaxb.SqlTimestampAdapter;
 27  
 import org.w3c.dom.Element;
 28  
 
 29  
 import javax.xml.bind.annotation.XmlAccessType;
 30  
 import javax.xml.bind.annotation.XmlAccessorType;
 31  
 import javax.xml.bind.annotation.XmlAnyElement;
 32  
 import javax.xml.bind.annotation.XmlElement;
 33  
 import javax.xml.bind.annotation.XmlRootElement;
 34  
 import javax.xml.bind.annotation.XmlType;
 35  
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 36  
 import java.sql.Timestamp;
 37  
 import java.util.Collection;
 38  
 
 39  
 /**
 40  
  * An immutable and JAXB annotated DTO of a DelegateContract
 41  
  */
 42  
 @XmlRootElement(name = Delegate.Constants.ROOT_ELEMENT_NAME)
 43  
 @XmlAccessorType(XmlAccessType.NONE)
 44  
 @XmlType(name = Delegate.Constants.TYPE_NAME, propOrder = {
 45  
         Delegate.Elements.DELEGATION_ID,
 46  
         Delegate.Elements.DELEGATION_TYPE_CODE,
 47  
         Delegate.Elements.MEMBER_ID,
 48  
         Delegate.Elements.MEMBER_TYPE_CODE,
 49  
         Delegate.Elements.QUALIFIER,
 50  
         Delegate.Elements.ROLE_MEMBER_ID,
 51  
         Delegate.Elements.ROLE_ID,
 52  
         Delegate.Elements.DELEGATION_MEMBER_ID,
 53  
         Delegate.Elements.MEMBER_NAME,
 54  
         Delegate.Elements.MEMBER_NAMESPACE_CODE,
 55  
         CoreConstants.CommonElements.ACTIVE_FROM_DATE,
 56  
         CoreConstants.CommonElements.ACTIVE_TO_DATE,
 57  
         CoreConstants.CommonElements.VERSION_NUMBER,
 58  
         CoreConstants.CommonElements.FUTURE_ELEMENTS
 59  
 })
 60  10
 public final class Delegate implements DelegateContract, ModelObjectComplete {
 61  
 
 62  
     private static final long serialVersionUID = 1L;
 63  
 
 64  
     @XmlElement(name = Elements.DELEGATION_ID, required = true)
 65  
     private final String delegationId;
 66  
 
 67  
     @XmlElement(name = Elements.DELEGATION_TYPE_CODE, required = true)
 68  
     private final String delegationTypeCode;
 69  
 
 70  
     @XmlElement(name = Elements.MEMBER_ID, required = true)
 71  
     private final String memberId;
 72  
 
 73  
     @XmlElement(name = Elements.MEMBER_TYPE_CODE, required = true)
 74  
     private final String memberTypeCode;
 75  
 
 76  
     @XmlElement(name = Elements.QUALIFIER, required = true)
 77  
     private final AttributeSet qualifier;
 78  
 
 79  
     @XmlElement(name = Elements.ROLE_MEMBER_ID, required = true)
 80  
     private final String roleMemberId;
 81  
 
 82  
     @XmlElement(name = Elements.ROLE_ID)
 83  
     private final String roleId;
 84  
 
 85  
     @XmlElement(name = Elements.DELEGATION_MEMBER_ID)
 86  
     private final String delegationMemberId;
 87  
 
 88  
     @XmlElement(name = Elements.MEMBER_NAME)
 89  
     private final String memberName;
 90  
 
 91  
     @XmlElement(name = Elements.MEMBER_NAMESPACE_CODE)
 92  
     private final String memberNamespaceCode;
 93  
 
 94  
     @XmlElement(name =  CoreConstants.CommonElements.ACTIVE_FROM_DATE)
 95  
     @XmlJavaTypeAdapter(SqlTimestampAdapter.class)
 96  
     private final Timestamp activeFromDate;
 97  
 
 98  
     @XmlElement(name =  CoreConstants.CommonElements.ACTIVE_TO_DATE)
 99  
     @XmlJavaTypeAdapter(SqlTimestampAdapter.class)
 100  
         private final Timestamp activeToDate;
 101  
 
 102  
     @XmlElement(name = CoreConstants.CommonElements.VERSION_NUMBER)
 103  
     private final Long versionNumber;
 104  
 
 105  19
     @SuppressWarnings("unused")
 106  
     @XmlAnyElement
 107  
     private final Collection<Element> _futureElements = null;
 108  
 
 109  
 
 110  
     @SuppressWarnings("unused")
 111  9
     private Delegate() {
 112  9
         delegationId = null;
 113  9
         delegationTypeCode = null;
 114  9
         memberId = null;
 115  9
         memberTypeCode = null;
 116  9
         qualifier = null;
 117  9
         roleMemberId = null;
 118  9
         roleId = null;
 119  9
         delegationMemberId = null;
 120  9
         memberName = null;
 121  9
         memberNamespaceCode = null;
 122  9
         activeFromDate = null;
 123  9
         activeToDate = null;
 124  9
         versionNumber = null;
 125  9
     }
 126  
 
 127  10
     private Delegate(Builder b) {
 128  10
         delegationId = b.getDelegationId();
 129  10
         delegationTypeCode = b.getDelegationTypeCode();
 130  10
         memberId = b.getMemberId();
 131  10
         memberTypeCode = b.getMemberTypeCode();
 132  10
         qualifier = b.getQualifier();
 133  10
         roleMemberId = b.getRoleMemberId();
 134  10
         roleId = b.getRoleId();
 135  10
         delegationMemberId = b.getDelegationMemberId();
 136  10
         memberName = b.getMemberName();
 137  10
         memberNamespaceCode = b.getMemberNamespaceCode();
 138  10
         activeFromDate = b.getActiveFromDate();
 139  10
         activeToDate = b.getActiveToDate();
 140  10
         versionNumber = b.getVersionNumber();
 141  10
     }
 142  
 
 143  
     public String getDelegationTypeCode() {
 144  2
         return this.delegationTypeCode;
 145  
     }
 146  
 
 147  
     public String getMemberTypeCode() {
 148  2
         return this.memberTypeCode;
 149  
     }
 150  
 
 151  
     public String getMemberId() {
 152  2
         return this.memberId;
 153  
     }
 154  
 
 155  
     public AttributeSet getQualifier() {
 156  2
         return this.qualifier;
 157  
     }
 158  
 
 159  
     public String getDelegationId() {
 160  2
         return this.delegationId;
 161  
     }
 162  
 
 163  
     public String getRoleMemberId() {
 164  2
         return this.roleMemberId;
 165  
     }
 166  
 
 167  
     public String getMemberName() {
 168  1
         return this.memberName;
 169  
     }
 170  
 
 171  
     public String getMemberNamespaceCode() {
 172  1
         return this.memberNamespaceCode;
 173  
     }
 174  
 
 175  
     public String getDelegationMemberId() {
 176  1
         return this.delegationMemberId;
 177  
     }
 178  
 
 179  
     public String getRoleId() {
 180  1
         return this.roleId;
 181  
     }
 182  
 
 183  
     @Override
 184  
     public Timestamp getActiveFromDate() {
 185  1
         return activeFromDate;
 186  
     }
 187  
 
 188  
     @Override
 189  
     public Timestamp getActiveToDate() {
 190  1
         return activeToDate;
 191  
     }
 192  
 
 193  
     @Override
 194  
     public boolean isActive(Timestamp activeAsOfDate) {
 195  0
         return InactivatableFromToUtils.isActive(activeFromDate, activeToDate, activeAsOfDate);
 196  
     }
 197  
 
 198  
     public Long getVersionNumber() {
 199  1
         return this.versionNumber;
 200  
     }
 201  
 
 202  
     @Override
 203  
     public int hashCode() {
 204  0
         return HashCodeBuilder.reflectionHashCode(this, Constants.HASH_CODE_EQUALS_EXCLUDE);
 205  
     }
 206  
 
 207  
     @Override
 208  
     public boolean equals(Object obj) {
 209  6
         return EqualsBuilder.reflectionEquals(obj, this, Constants.HASH_CODE_EQUALS_EXCLUDE);
 210  
     }
 211  
 
 212  
     @Override
 213  
     public String toString() {
 214  0
         return ToStringBuilder.reflectionToString(this);
 215  
     }
 216  
 
 217  3
     public static final class Builder implements DelegateContract, ModelBuilder, ModelObjectComplete {
 218  
 
 219  
         private String delegationId;
 220  
         private String delegationTypeCode;
 221  
         private String memberId;
 222  
         private String memberTypeCode;
 223  
         private AttributeSet qualifier;
 224  
         private String roleMemberId;
 225  
         private String roleId;
 226  
         private String delegationMemberId;
 227  
         private String memberName;
 228  
         private String memberNamespaceCode;
 229  
         private Timestamp activeFromDate;
 230  
             private Timestamp activeToDate;
 231  
         private Long versionNumber;
 232  
 
 233  16
         private Builder() {
 234  16
         }
 235  
 
 236  
         public static Builder create(DelegateContract delegateContract) {
 237  1
             Builder b = new Builder();
 238  1
             b.setDelegationId(delegateContract.getDelegationId());
 239  1
             b.setDelegationTypeCode(delegateContract.getDelegationTypeCode());
 240  1
             b.setMemberId(delegateContract.getMemberId());
 241  1
             b.setMemberTypeCode(delegateContract.getMemberTypeCode());
 242  1
             b.setQualifier(delegateContract.getQualifier());
 243  1
             b.setRoleMemberId(delegateContract.getRoleMemberId());
 244  1
             b.setRoleId(delegateContract.getRoleId());
 245  1
             b.setDelegationMemberId(delegateContract.getDelegationMemberId());
 246  1
             b.setMemberName(delegateContract.getMemberName());
 247  1
             b.setMemberNamespaceCode(delegateContract.getMemberNamespaceCode());
 248  1
             b.setActiveFromDate(delegateContract.getActiveFromDate());
 249  1
             b.setActiveToDate(delegateContract.getActiveToDate());
 250  1
             b.setVersionNumber(delegateContract.getVersionNumber());
 251  
 
 252  1
             return b;
 253  
         }
 254  
 
 255  
         public static Builder create(String delegationId, String delegationTypeCode, String memberId,
 256  
                                      String memberTypeCode, String roleMemberId, AttributeSet qualifier) {
 257  15
             Builder b = new Builder();
 258  
 
 259  15
             b.setDelegationId(delegationId);
 260  15
             b.setDelegationTypeCode(delegationTypeCode);
 261  15
             b.setMemberId(memberId);
 262  15
             b.setMemberTypeCode(memberTypeCode);
 263  15
             b.setRoleMemberId(roleMemberId);
 264  15
             b.setQualifier(qualifier);
 265  
 
 266  15
             return b;
 267  
         }
 268  
 
 269  
         public Delegate build() {
 270  10
             return new Delegate(this);
 271  
         }
 272  
 
 273  
         public String getDelegationId() {
 274  10
             return delegationId;
 275  
         }
 276  
 
 277  
         public String getDelegationTypeCode() {
 278  10
             return delegationTypeCode;
 279  
         }
 280  
 
 281  
         public String getMemberId() {
 282  10
             return memberId;
 283  
         }
 284  
 
 285  
         public String getMemberTypeCode() {
 286  10
             return memberTypeCode;
 287  
         }
 288  
 
 289  
         public AttributeSet getQualifier() {
 290  10
             return qualifier;
 291  
         }
 292  
 
 293  
         public String getRoleMemberId() {
 294  10
             return roleMemberId;
 295  
         }
 296  
 
 297  
         public String getRoleId() {
 298  10
             return roleId;
 299  
         }
 300  
 
 301  
         public String getDelegationMemberId() {
 302  10
             return delegationMemberId;
 303  
         }
 304  
 
 305  
         public String getMemberName() {
 306  10
             return memberName;
 307  
         }
 308  
 
 309  
         public String getMemberNamespaceCode() {
 310  10
             return memberNamespaceCode;
 311  
         }
 312  
 
 313  
         public void setDelegationTypeCode(String delegationTypeCode) {
 314  18
             if (StringUtils.isBlank(delegationTypeCode)) {
 315  2
                 throw new IllegalArgumentException("delegationTypeCode cannot be blank or null");
 316  
             }
 317  16
             this.delegationTypeCode = delegationTypeCode;
 318  16
         }
 319  
 
 320  
         public void setMemberId(String memberId) {
 321  18
             if (StringUtils.isBlank(memberId)) {
 322  2
                 throw new IllegalArgumentException("memberId cannot be blank or null");
 323  
             }
 324  16
             this.memberId = memberId;
 325  16
         }
 326  
 
 327  
         public void setMemberTypeCode(String memberTypeCode) {
 328  18
             if (StringUtils.isBlank(memberTypeCode)) {
 329  2
                 throw new IllegalArgumentException("memberTypeCode cannot be blank or null");
 330  
             }
 331  16
             this.memberTypeCode = memberTypeCode;
 332  16
         }
 333  
 
 334  
         public void setQualifier(AttributeSet qualifier) {
 335  16
             if (qualifier == null) {
 336  0
                 this.qualifier = new AttributeSet();
 337  
             }
 338  16
             this.qualifier = qualifier;
 339  16
         }
 340  
 
 341  
         public void setDelegationId(String delegationId) {
 342  18
             if (StringUtils.isBlank(delegationId)) {
 343  2
                 throw new IllegalArgumentException("delegationId cannot be blank or null");
 344  
             }
 345  16
             this.delegationId = delegationId;
 346  16
         }
 347  
 
 348  
         public void setRoleMemberId(String roleMemberId) {
 349  18
             if (StringUtils.isBlank(roleMemberId)) {
 350  2
                 throw new IllegalArgumentException("roleMemberId cannot be blank or null");
 351  
             }
 352  16
             this.roleMemberId = roleMemberId;
 353  16
         }
 354  
 
 355  
         @SuppressWarnings("unused")
 356  
         public void setMemberName(String memberName) {
 357  1
             this.memberName = memberName;
 358  1
         }
 359  
 
 360  
         @SuppressWarnings("unused")
 361  
         public void setMemberNamespaceCode(String memberNamespaceCode) {
 362  1
             this.memberNamespaceCode = memberNamespaceCode;
 363  1
         }
 364  
 
 365  
         @SuppressWarnings("unused")
 366  
         public void setDelegationMemberId(String delegationMemberId) {
 367  1
             this.delegationMemberId = delegationMemberId;
 368  1
         }
 369  
 
 370  
         public void setRoleId(String roleId) {
 371  1
             this.roleId = roleId;
 372  1
         }
 373  
 
 374  
         public Timestamp getActiveFromDate() {
 375  10
             return activeFromDate != null ? new Timestamp(activeFromDate.getTime()) : null;
 376  
         }
 377  
 
 378  
         public void setActiveFromDate(Timestamp activeFromDate) {
 379  1
             this.activeFromDate = activeFromDate != null ? new Timestamp(activeFromDate.getTime()) : null;
 380  1
         }
 381  
 
 382  
         public Timestamp getActiveToDate() {
 383  10
             return activeToDate != null ? new Timestamp(activeToDate.getTime()) : null;
 384  
         }
 385  
 
 386  
         public void setActiveToDate(Timestamp activeToDate) {
 387  1
             this.activeToDate = activeFromDate != null ?  new Timestamp(activeToDate.getTime()) : null;
 388  1
         }
 389  
 
 390  
         @Override
 391  
         public boolean isActive(Timestamp activeAsOfDate) {
 392  0
             return InactivatableFromToUtils.isActive(activeFromDate, activeToDate, activeAsOfDate);
 393  
         }
 394  
 
 395  
         public Long getVersionNumber() {
 396  10
             return versionNumber;
 397  
         }
 398  
 
 399  
         public void setVersionNumber(Long versionNumber) {
 400  1
             this.versionNumber = versionNumber;
 401  1
         }
 402  
 
 403  
         @Override
 404  
         public int hashCode() {
 405  0
             return HashCodeBuilder.reflectionHashCode(this, Constants.HASH_CODE_EQUALS_EXCLUDE);
 406  
         }
 407  
 
 408  
         @Override
 409  
         public boolean equals(Object obj) {
 410  0
             return EqualsBuilder.reflectionEquals(obj, this, Constants.HASH_CODE_EQUALS_EXCLUDE);
 411  
         }
 412  
 
 413  
         @Override
 414  
         public String toString() {
 415  0
             return ToStringBuilder.reflectionToString(this);
 416  
         }
 417  
     }
 418  
 
 419  
     /**
 420  
      * A private class which exposes constants which define the XML element names to use
 421  
      * when this object is marshalled to XML.
 422  
      */
 423  0
     static class Elements {
 424  
         final static String DELEGATION_ID = "delegationId";
 425  
         final static String DELEGATION_TYPE_CODE = "delegationTypeCode";
 426  
         final static String MEMBER_ID = "memberId";
 427  
         final static String MEMBER_TYPE_CODE = "memberTypeCode";
 428  
         final static String QUALIFIER = "qualifier";
 429  
         final static String ROLE_MEMBER_ID = "roleMemberId";
 430  
         final static String ROLE_ID = "roleId";
 431  
         final static String DELEGATION_MEMBER_ID = "delegationMemberId";
 432  
         final static String MEMBER_NAME = "memberName";
 433  
         final static String MEMBER_NAMESPACE_CODE = "memberNamespaceCode";
 434  
     }
 435  
 
 436  
     /**
 437  
      * Defines some internal constants used on this class.
 438  
      */
 439  0
     static class Constants {
 440  
         final static String ROOT_ELEMENT_NAME = "delegate";
 441  
         final static String TYPE_NAME = "DelegateType";
 442  1
         final static String[] HASH_CODE_EQUALS_EXCLUDE = {CoreConstants.CommonElements.FUTURE_ELEMENTS};
 443  
     }
 444  
 }