View Javadoc

1   /**
2    * Copyright 2010 The Kuali Foundation 
3    * 
4    * Licensed under the Educational Community License, Version 2.0 (the
5    * "License"); you may not use this file except in compliance with the
6    * License. You may obtain a copy of the License at
7    *
8    * http://www.osedu.org/licenses/ECL-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
13   * implied. See the License for the specific language governing
14   * permissions and limitations under the License.
15   */
16  
17  package org.kuali.student.r2.common.infc;
18  
19  /**
20   * Common service pattern for entities. This interface is applied to
21   * entites that are identified by an Id.
22   * 
23   * @author nwright
24   */
25  public interface HasId 
26      extends HasPrimaryKey {
27  
28      /**
29       * The system assigned unique id to identify this Object.
30       * Could be implemented as as sequence number or as a UUID.
31       *
32       * Attempts to set this value on creates should result in a ReadOnlyException being thrown
33       *
34       * An Id:<ul>
35       *     <li>An id is used when the actual value is unimportant and
36       *     can therefore be a large hex value for example</li>
37       *     <li>An id value might be 23b9ca9bd203df902</li>
38       *     <li>An Id is never intended to be used directly by an end
39       *         user.</li>
40       *     <li>Ids are assumed to be of different values in different
41       *         KS implementations<li>
42       *     <li>Id values are generated by the service
43       *         implementations</li>
44       *     <li>Id values are never expected to be used in
45       *         Configuration or Application code</li>
46       * </ul>
47       * 
48       * @name Unique Id
49       * @readOnly
50       * @required on updates
51       */
52      public String getId();
53  }