116 lines
2.5 KiB
Java
116 lines
2.5 KiB
Java
import java.util.Scanner;
|
|
import java.util.NoSuchElementException;
|
|
|
|
/**
|
|
* Superclass of items / assets stored in a Library.
|
|
*
|
|
* @author George Wilkinson
|
|
* @version 4.1
|
|
*/
|
|
public abstract class LibraryItem
|
|
{
|
|
// instance variables
|
|
private String title;
|
|
private String itemCode;
|
|
private int cost;
|
|
private int timesBorrowed;
|
|
private boolean onLoan;
|
|
|
|
/*
|
|
* Field Accessor Start
|
|
*/
|
|
public String getTitle()
|
|
{
|
|
return title;
|
|
}
|
|
|
|
public String getItemCode()
|
|
{
|
|
return itemCode;
|
|
}
|
|
|
|
public int getCost()
|
|
{
|
|
return cost;
|
|
}
|
|
|
|
public int getTimesBorrowed()
|
|
{
|
|
return timesBorrowed;
|
|
}
|
|
|
|
public boolean getOnLoan()
|
|
{
|
|
return onLoan;
|
|
}
|
|
|
|
/*
|
|
* Field Accessor End
|
|
*
|
|
* Field Mutator Start
|
|
*/
|
|
|
|
public void setTitle( String title )
|
|
{
|
|
this.title = title;
|
|
}
|
|
|
|
public void setItemCode( String itemCode )
|
|
{
|
|
this.itemCode = itemCode;
|
|
}
|
|
|
|
public void setCost( int cost )
|
|
{
|
|
this.cost = cost;
|
|
}
|
|
|
|
public void setTimesBorrowed( int timesBorrowed )
|
|
{
|
|
this.timesBorrowed = timesBorrowed;
|
|
}
|
|
|
|
public void setOnLoan( boolean onLoan )
|
|
{
|
|
this.onLoan = onLoan;
|
|
}
|
|
|
|
/*
|
|
* Field Mutator End
|
|
*/
|
|
|
|
/**
|
|
* Forms field variables in a desired format, prints
|
|
* to the PrintWriter, and flush to the file.
|
|
* Takes Parameter
|
|
* PrintWriter @writer
|
|
*/
|
|
public void printDetails()
|
|
{
|
|
System.out.println("Item Code: " + itemCode +
|
|
"\nTitle: " + title +
|
|
"\nCost: £" + ( ( float )( cost ) )/100 + // Convert cost in pence to £pounds.pence to be more readable.
|
|
"\nBorrowed " + getTimesBorrowed() + " times." );
|
|
if( getOnLoan() )
|
|
System.out.println( "On Loan");
|
|
else
|
|
System.out.println( "Available to Loan");
|
|
}
|
|
|
|
/**
|
|
* Populate the fields with details from the scanner
|
|
* Takes Parameters
|
|
* Scanner @detailScanner
|
|
*/
|
|
public void readItemData( Scanner detailScanner ) {
|
|
|
|
if ( detailScanner != null ) {
|
|
this.title = detailScanner.next().trim();
|
|
this.itemCode = detailScanner.next().trim();
|
|
this.cost = Integer.parseInt( detailScanner.next().trim() );
|
|
this.timesBorrowed = Integer.parseInt( detailScanner.next().trim() );
|
|
this.onLoan = Boolean.parseBoolean( detailScanner.next().trim() );
|
|
}
|
|
}
|
|
}
|