BOStudent.java
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 setStudentNocom.almamater.types.core.StudentNumber pStudentNothrows 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 setFirstNamecom.almamater.types.core.PersonName pFirstNamethrows 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 setSecondNamecom.almamater.types.core.PersonName pSecondNamethrows 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 setFamilyNamecom.almamater.types.core.PersonName pFamilyNamethrows 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 setDateOfBirthcom.almamater.types.core.DateField pDateOfBirththrows 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 addCourseBOCourse pCoursethrows BOException;
131 
132    /** Removes existing instance of BOCourse from this entity
133     * Note that this method requires editable object. */
134    public void removeCourseBOCourse pCoursethrows BOException;
135 }