www.pudn.com > Java_UML_library.rar > BorrowerInformation.java


// 
//  Unified Library Application 
//  Case study in Unified Modeling Language Toolkit 
// 
//  BorrowerInformation.java: information about a borrower. 
//  A borrower can be a person or another library. A borrower 
//  can have loans and reservations. 
// 
//  Copyright (c) 1998 John Wiley & Sons, Inc. All rights reserved. 
//  Reproduction or translations of this work beyond that permitted 
//  in Section 117 of the 1976 United States Copyright Act without 
//  the express written permission of the copyright owner is unlawful. 
//  Requests for further information should be addressed to Permissions 
//  Department, John Wiley & Sons, Inc. The purchaser may make back-up 
//  copies for his/her own use only and not for distribution or resale. 
//  The Publisher assumes no responsibility for errors, omissions, or 
//  damages, caused by the use of these programs of from the use of the 
//  information contained herein. 
 
package bo; 
import util.ObjId; 
import db.*; 
import java.io.*; 
import java.util.*; 
public class BorrowerInformation extends Persistent 
{ 
    private String lastname; 
    private String firstname; 
    private String address; 
    private String city; 
    private String zip; 
    private String state; 
    private Vector loans = new Vector(); 
    private Vector reservations = new Vector(); 
    public BorrowerInformation() 
    { 
    } 
    public BorrowerInformation(String ln, String fn, String a, String c, String z, String s) 
    { 
        lastname = ln; 
        firstname = fn; 
        address = a; 
        city = c; 
        zip = z; 
        state = s; 
    } 
    public static BorrowerInformation getBorrowerInformation(ObjId id) 
    { 
        return (BorrowerInformation) Persistent.getObject(id); 
    } 
        public static BorrowerInformation findOnLastName(String lastname) 
    { 
        BorrowerInformation i = (BorrowerInformation) iterate("bo.BorrowerInformation",true); 
        while (i != null) 
        { 
            if (i.getLastName().toUpperCase().equals(lastname.toUpperCase())) 
            { 
                return i; 
            } 
            else 
                i = (BorrowerInformation) iterate("bo.BorrowerInformation",false); 
        } 
        return null; 
    } 
    public static BorrowerInformation iterateBorrower(boolean init) 
    { 
        return (BorrowerInformation) iterate("bo.BorrowerInformation",init); 
    } 
    public String getLastName() { return lastname; } 
    public String getFirstName() { return firstname; } 
    public String getAddress() { return address; } 
    public String getCity() { return city; } 
    public String getZip() { return zip; } 
    public String getState() { return state; } 
    public void setLastName(String ln) { lastname = ln; } 
    public void setFirstName(String fn) { firstname = fn; } 
    public void setAddress(String a) { address = a; } 
    public void setCity(String c) { city = c; } 
    public void setZip(String z) { zip = z; } 
    public void setState(String s) { state = s; } 
    public void addLoan(ObjId loan) 
    { 
        loans.addElement(loan); 
    } 
    public void removeLoan(ObjId loan) 
    { 
        loans.removeElement(loan); 
    } 
    public Loan getLoan(int index) 
    { 
        if (index < loans.size()) 
        { 
            ObjId id = (ObjId) loans.elementAt(index); 
            return (Loan) Persistent.getObject(id); 
        } 
        else 
            return null; 
    } 
    public int getNoLoans() 
    { 
        return loans.size(); 
    } 
    public void addReservation(ObjId reservation) 
    { 
        reservations.addElement(reservation); 
    } 
    public void removeReservation(ObjId reservation) 
    { 
        reservations.removeElement(reservation); 
    } 
    public Reservation getReservation(int index) 
    { 
        if (index < reservations.size()) 
        { 
            ObjId id = (ObjId) reservations.elementAt(index); 
            return (Reservation) Persistent.getObject(id); 
        } 
        else 
            return null; 
    } 
    public int getNoReservations() 
    { 
        return reservations.size(); 
    } 
    public void write(RandomAccessFile out) 
        throws IOException 
    { 
        out.writeUTF(lastname); 
        out.writeUTF(firstname); 
        out.writeUTF(address); 
        out.writeUTF(city); 
        out.writeUTF(zip); 
        out.writeUTF(state); 
        out.writeInt(loans.size()); 
        for (int i = 0; i < loans.size(); i++) 
        { 
            ObjId id = (ObjId) loans.elementAt(i); 
            id.write(out); 
        } 
        out.writeInt(reservations.size()); 
        for (int i = 0; i < reservations.size(); i++) 
        { 
            ObjId id = (ObjId) reservations.elementAt(i); 
            id.write(out); 
        } 
    } 
    public void read(RandomAccessFile in) 
        throws IOException 
    { 
        lastname = in.readUTF(); 
        firstname = in.readUTF(); 
        address = in.readUTF(); 
        city = in.readUTF(); 
        zip = in.readUTF(); 
        state = in.readUTF(); 
        int nrLoans = in.readInt(); 
        loans.removeAllElements(); 
        for (int i = 0; i < nrLoans; i++) 
        { 
            ObjId id = new ObjId(); 
            id.read(in); 
            loans.addElement(id); 
        } 
        int nrReservations = in.readInt(); 
        reservations.removeAllElements(); 
        for (int i = 0; i < nrReservations; i++) 
        { 
            ObjId id = new ObjId(); 
            id.read(in); 
            reservations.addElement(id); 
        } 
    } 
 
}