001 //
002 // This file is generated by MetaBoss Ver 1.4.0001 at Thu Dec 15 22:36:21 EST 2005
003 // MetaBoss is Copyright 2000-2005 © Softaris Pty.Ltd. All Rights Reserved.
004 // Content of this file is Copyright 2000-2005 © Softaris Pty. Ltd. All Rights Reserved.
005 // This content is licensed under Open Source Gnu Public License (GPL)
006 // Full terms and conditions of GPL can be found found at www.gnu.org
007 //
008 package com.almamater.crs.domains.courses;
009
010 import com.metaboss.enterprise.bo.BOObject;
011 import com.metaboss.enterprise.bo.BOException;
012
013 /** The person enrolled in the university to learn things
014 * <p>This object represents the Enterprise/systems[CRS]/domains[Courses]/entities[Student] entity.
015 * Note that this entity is not owned by any other entity. Creation
016 * of instances must be done via {@link com.almamater.crs.domains.courses.BODomain BODomain} domain object</p>
017 * <p><b>This entity has folowing attributes:</b>
018 * <table border="1">
019 * <tr><th>Attribute Name</th><th>Attribute Type</th><th>Attribute Description</th></tr>
020 * <tr><td>InstanceId</td><td>{@link com.almamater.crs.types.system.courses.StudentInstanceId StudentInstanceId}</td><td>Unique entity instance identifier. No other entity of this type has the same instance id.</td></tr>
021 * <tr><td>VersionId</td><td>{@link com.almamater.crs.types.system.courses.StudentVersionId StudentVersionId}</td><td>Unique entity version identifier. Each update to the instance of the entity will advance version id of the instance.</td></tr>
022 * <tr><td>StudentNo</td><td>{@link com.almamater.types.core.StudentNumber StudentNumber}</td><td>The number uniquely identifying the student</td></tr>
023 * <tr><td>FirstName</td><td>{@link com.almamater.types.core.PersonName PersonName}</td><td>Student's first name</td></tr>
024 * <tr><td>SecondName</td><td>{@link com.almamater.types.core.PersonName PersonName}</td><td>Student's middle name</td></tr>
025 * <tr><td>FamilyName</td><td>{@link com.almamater.types.core.PersonName PersonName}</td><td>Student's family name</td></tr>
026 * <tr><td>DateOfBirth</td><td>{@link com.almamater.types.core.DateField DateField}</td><td>Student's date of birth</td></tr>
027 * </table>
028 * <p><b>This entity has following references:</b>
029 * <table border="1">
030 * <tr><th>Association Role Name</th><th>Role Type</th><th>Association Description</th><th>Role Description</th></tr>
031 * <tr><td>StudentEnrollsIntoCourse.Course</td><td>{@link com.almamater.crs.domains.courses.BOCourseCollection BOCourseCollection}</td><td>Students are enrolled in Courses</td><td>Courses which the Student is enrolled into</td></tr>
032 * </table>
033 */
034 public interface BOStudent extends BOObject
035 {
036 /** Getter for the domain object this entity belongs to */
037 public BODomain getDomain() throws BOException;
038
039 /** Makes this instance editable.
040 * Can only be called on instance representing an existing entity and only during transaction.
041 * Note that this method will fully read an entity from the database (if this has not occurred before).
042 * This is done so the original version of teh data we are updating is "locked" for the duration of the current transaction.
043 * @exception BOException look at exception's type and message for the specific error description */
044 public void beginEdit() throws BOException;
045
046 /** Reloads the contents of this instance.
047 * Can only be called on instance representing an existing entity when it is readonly or even when it is being edited.
048 * Note that this method will always fully read the entity record from the database which
049 * may potentially cause the change of data (eg. when newer version have been loaded from the database)
050 * or even loss of unsaved changes (eg. when last saved version have been loaded from the database over the unsaved changes).
051 * @exception BOException look at exception's type and message for the specific error description */
052 public void reload() throws BOException;
053
054 /** Deletes this instance.
055 * Can only be called on instance representing an existing entity and only during transaction.
056 * @exception BOException look at exception's type and message for the specific error description */
057 public void delete() throws BOException;
058
059 /** Getter for the InstanceId attribute. Attribute description is: <i>Unique entity instance identifier. No other entity of this type has the same instance id.</i> */
060 public com.almamater.crs.types.system.courses.StudentInstanceId getStudentInstanceId() throws BOException;
061
062 /** Getter for the VersionId attribute. Attribute description is: <i>Unique entity version identifier. Each update to the instance of the entity will advance version id of the instance.</i> */
063 public com.almamater.crs.types.system.courses.StudentVersionId getStudentVersionId() throws BOException;
064
065 /** Getter for the StudentNo attribute.
066 * <p>Attribute description is: <i>The number uniquely identifying the student</i></p>
067 * <p>This method will return new proposed value if the object is being edited or newly created.</p>
068 * @return the value of the StudentNo attribute. */
069 public com.almamater.types.core.StudentNumber getStudentNo() throws BOException;
070
071 /** Setter for the StudentNo attribute.
072 * <p>Attribute description is: <i>The number uniquely identifying the student</i></p>
073 * <p>This method can only be called during transaction.</p>
074 * @param pStudentNo the proposed value of the StudentNo attribute. */
075 public void setStudentNo( com.almamater.types.core.StudentNumber pStudentNo) throws BOException;
076
077 /** Getter for the FirstName attribute.
078 * <p>Attribute description is: <i>Student's first name</i></p>
079 * <p>This method will return new proposed value if the object is being edited or newly created.</p>
080 * @return the value of the FirstName attribute. */
081 public com.almamater.types.core.PersonName getFirstName() throws BOException;
082
083 /** Setter for the FirstName attribute.
084 * <p>Attribute description is: <i>Student's first name</i></p>
085 * <p>This method can only be called during transaction.</p>
086 * @param pFirstName the proposed value of the FirstName attribute. */
087 public void setFirstName( com.almamater.types.core.PersonName pFirstName) throws BOException;
088
089 /** Getter for the SecondName attribute.
090 * <p>Attribute description is: <i>Student's middle name</i></p>
091 * <p>This method will return new proposed value if the object is being edited or newly created.</p>
092 * @return the value of the SecondName attribute. */
093 public com.almamater.types.core.PersonName getSecondName() throws BOException;
094
095 /** Setter for the SecondName attribute.
096 * <p>Attribute description is: <i>Student's middle name</i></p>
097 * <p>This method can only be called during transaction.</p>
098 * @param pSecondName the proposed value of the SecondName attribute. */
099 public void setSecondName( com.almamater.types.core.PersonName pSecondName) throws BOException;
100
101 /** Getter for the FamilyName attribute.
102 * <p>Attribute description is: <i>Student's family name</i></p>
103 * <p>This method will return new proposed value if the object is being edited or newly created.</p>
104 * @return the value of the FamilyName attribute. */
105 public com.almamater.types.core.PersonName getFamilyName() throws BOException;
106
107 /** Setter for the FamilyName attribute.
108 * <p>Attribute description is: <i>Student's family name</i></p>
109 * <p>This method can only be called during transaction.</p>
110 * @param pFamilyName the proposed value of the FamilyName attribute. */
111 public void setFamilyName( com.almamater.types.core.PersonName pFamilyName) throws BOException;
112
113 /** Getter for the DateOfBirth attribute.
114 * <p>Attribute description is: <i>Student's date of birth</i></p>
115 * <p>This method will return new proposed value if the object is being edited or newly created.</p>
116 * @return the value of the DateOfBirth attribute. */
117 public com.almamater.types.core.DateField getDateOfBirth() throws BOException;
118
119 /** Setter for the DateOfBirth attribute.
120 * <p>Attribute description is: <i>Student's date of birth</i></p>
121 * <p>This method can only be called during transaction.</p>
122 * @param pDateOfBirth the proposed value of the DateOfBirth attribute. */
123 public void setDateOfBirth( com.almamater.types.core.DateField pDateOfBirth) throws BOException;
124
125 /** Returns collection, which represents all Courses */
126 public BOCourseCollection getCourses() throws BOException;
127
128 /** Adds existing instance of BOCourse to this entity
129 * Note that this method requires editable object. */
130 public void addCourse( BOCourse pCourse) throws BOException;
131
132 /** Removes existing instance of BOCourse from this entity
133 * Note that this method requires editable object. */
134 public void removeCourse( BOCourse pCourse) throws BOException;
135 }
|