Coding Assignment
SeaPortproject/CargoShip.java
SeaPortproject/CargoShip.java
/*
Shreeya Bhetwal
project 1
CMSC 335
*/
import
java
.
util
.
Scanner
;
public
class
CargoShip
extends
Ship
{
double
cargoValue
;
double
cargoVolume
;
double
cargoWeight
;
public
CargoShip
(
Scanner
sc
)
{
super
(
sc
);
cargoWeight
=
sc
.
nextDouble
();
cargoVolume
=
sc
.
nextDouble
();
cargoValue
=
sc
.
nextDouble
();
}
public
double
getCargoValue
()
{
return
cargoValue
;
}
public
void
setCargoValue
(
double
cargoValue
)
{
this
.
cargoValue
=
cargoValue
;
}
public
double
getCargoVolume
()
{
return
cargoVolume
;
}
public
void
setCargoVolume
(
double
cargoVolume
)
{
this
.
cargoVolume
=
cargoVolume
;
}
public
double
getCargoWeight
()
{
return
cargoWeight
;
}
public
void
setCargoWeight
(
double
cargoWeight
)
{
this
.
cargoWeight
=
cargoWeight
;
}
@
Override
public
String
toString
()
{
return
"Cargo Ship: "
+
name
+
" "
+
index
;
}
}
SeaPortproject/Dock.java
SeaPortproject/Dock.java
/*
Shreeya Bhetwal
project 1
CMSC 335
*/
import
java
.
util
.
Scanner
;
public
class
Dock
extends
Thing
{
Ship
ship
;
public
Dock
(
Scanner
sc
)
{
super
(
sc
);
}
public
Ship
getShip
()
{
return
ship
;
}
public
void
setShip
(
Ship
ship
)
{
this
.
ship
=
ship
;
}
public
String
toString
()
{
return
"Dock: "
+
super
.
toString
()
+
"\n Ship: "
+
ship
.
toString
();
}
}
SeaPortproject/input.txt
// File: aSPaa.txt // Data file for SeaPort projects // Date: Sat Jul 09 22:51:16 EDT 2016 // parameters: 1 1 5 5 1 5 // ports, docks, pships, cships, jobs, persons // port name index parent(null) // port <string> <int> <int> port Lanshan 10000 0 // dock name index parent(port) // dock <string> <int> <int> dock Pier_4 20004 10000 30004 5 dock Pier_0 20000 10000 30000 dock Pier_1 20001 10000 30001 dock Pier_3 20003 10000 30003 dock Pier_2 20002 10000 30002 // pship name index parent(dock/port) weight length width draft numPassengers numRooms numOccupied // pship <string> <int> <int> <double> <double> <double> <double> <int> <int> <int> pship Gallinules 30000 20000 125.99 234.70 60.67 37.14 746 246 246 pship Remora 30001 20001 126.38 358.27 74.12 31.54 3768 979 979 pship Absentmindedness 30004 20004 86.74 450.43 33.13 41.67 2143 920 920 pship Preanesthetic 30003 20003 149.85 483.92 125.71 31.21 166 409 83 pship Shoetrees 30002 20002 134.41 156.96 120.31 35.20 1673 633 633 // cship name index parent(dock/port) weight length width draft cargoWeight cargoVolume cargoValue // cship <string> <int> <int> <double> <double> <double> <double> <double> <double> <double> cship Erosional 40001 10000 200.80 242.33 38.31 23.49 172.73 188.54 235.57 cship Kielbasas 40000 10000 120.85 362.55 96.82 19.09 33.08 188.31 261.57 cship Generics 40002 10000 79.90 234.26 73.18 15.71 125.27 179.00 729.95 cship Barcelona 40003 10000 219.92 443.54 104.44 34.16 86.69 139.89 813.72 cship Toluene 40004 10000 189.12 448.99 73.97 37.67 88.90 175.03 1002.63 // person name index parent skill // person <string> <int> <int> <string> person Sara 50000 10000 electrician person Duane 50002 10000 inspector person Betsy 50004 10000 cleaner person Archie 50003 10000 captain person Thomas 50001 10000 clerk
SeaPortproject/Job.java
SeaPortproject/Job.java
/*
Shreeya Bhetwal
project 1
CMSC 335
*/
import
java
.
util
.
ArrayList
;
import
java
.
util
.
Scanner
;
public
class
Job
extends
Thing
{
double
duration
;
ArrayList
<
String
>
requirements
;
public
Job
(
Scanner
sc
)
{
super
(
sc
);
}
public
double
getDuration
()
{
return
duration
;
}
public
void
setDuration
(
double
duration
)
{
this
.
duration
=
duration
;
}
public
ArrayList
<
String
>
getRequirements
()
{
return
requirements
;
}
public
void
setRequirements
(
ArrayList
<
String
>
requirements
)
{
this
.
requirements
=
requirements
;
}
}
SeaPortproject/PassengerShip.java
SeaPortproject/PassengerShip.java
/*
Shreeya Bhetwal
project 1
CMSC 335
*/
import
java
.
util
.
Scanner
;
public
class
PassengerShip
extends
Ship
{
int
numberOfOccupiedRooms
;
int
numberOfPassengers
;
int
numberOfRooms
;
public
PassengerShip
(
Scanner
sc
)
{
super
(
sc
);
if
(
sc
.
hasNextInt
())
numberOfPassengers
=
sc
.
nextInt
();
if
(
sc
.
hasNextInt
())
numberOfRooms
=
sc
.
nextInt
();
if
(
sc
.
hasNextInt
())
numberOfOccupiedRooms
=
sc
.
nextInt
();
}
// end Scanner constructor
public
int
getNumberOfOccupiedRooms
()
{
return
numberOfOccupiedRooms
;
}
public
void
setNumberOfOccupiedRooms
(
int
numberOfOccupiedRooms
)
{
this
.
numberOfOccupiedRooms
=
numberOfOccupiedRooms
;
}
public
int
getNumberOfPassengers
()
{
return
numberOfPassengers
;
}
public
void
setNumberOfPassengers
(
int
numberOfPassengers
)
{
this
.
numberOfPassengers
=
numberOfPassengers
;
}
public
int
getNumberOfRooms
()
{
return
numberOfRooms
;
}
public
void
setNumberOfRooms
(
int
numberOfRooms
)
{
this
.
numberOfRooms
=
numberOfRooms
;
}
public
String
toString
()
{
String
st
=
"Passenger ship: "
+
super
.
toString
();
if
(
jobs
.
size
()
==
0
)
return
st
;
for
(
Job
mj
:
jobs
)
st
+=
"\n - "
+
mj
;
return
st
;
}
// end method toString
}
SeaPortproject/Person.java
SeaPortproject/Person.java
/*
Shreeya Bhetwal
project 1
CMSC 335
*/
import
java
.
util
.
Scanner
;
public
class
Person
extends
Thing
{
String
skills
;
public
Person
(
Scanner
sc
)
{
super
(
sc
);
skills
=
sc
.
next
();
}
public
String
getSkills
()
{
return
skills
;
}
public
void
setSkills
(
String
skills
)
{
this
.
skills
=
skills
;
}
@
Override
public
String
toString
()
{
return
"Person: "
+
name
+
" "
+
index
+
" "
+
skills
;
}
}
SeaPortproject/PortTime.java
SeaPortproject/PortTime.java
/*
Shreeya Bhetwal
project 1
CMSC 335
*/
public
class
PortTime
{
int
time
;
public
PortTime
(
int
time
)
{
this
.
time
=
time
;
}
public
int
getTime
()
{
return
time
;
}
public
void
setTime
(
int
time
)
{
this
.
time
=
time
;
}
}
SeaPortproject/Project1Report_ShreeyaBhetwal.docx
Shreeya Bhetwal
Project1
Shreeya Bhetwal
Project 1
Design
In Design, Complete project can be divided into 10 classes. A SeaPortProgram class is a main class which will provide the GUI interface which will manipulate the data. A Complete GUI interface has include Read File and Display option in which user can read any file and display that data whenever it’s require.
User Guide
Open the project in the IDE of your choice. The home screen will show the GUI with appropriate buttons and a text field. The lower part of the GUI is where the results will be displayed.
You will first need to choose the appropriate file. In this instance, we will chose the following text file: input.txt. This will load the file into the program. Additionally, you may create your own txt file by using the format that is provided. You are now ready to interact with the GUI. You can choose the option to display the cave.
Test Plan
Test 1 (Open the file correctly)
Expected output: the screen will ask for the file.
Actual output: Here is the screen shot when the file is chosen:
Test 2 (Perform Read)
Expected output: Data will be shown.
Actual output: Here’s the screen shot after the file is chosen:
Comments
In this Project we need to focus on how we can make out code more usable. For instance, this project has 4 phase. So, we need make our GUI expandable.
Lessons Learned
I have learned about following things:
How to use Arraylist
How to use File chooser
What are the benefit to use class in java project.
Improvements Possible
There are lots for improvements we can made are following:
GUI can be improved.
Job class can be implement
We can use Multi-threading so the operation will be perform parallel.
image1.png
image2.png
SeaPortproject/SeaPort.java
SeaPortproject/SeaPort.java
/*
Shreeya Bhetwal
project 1
CMSC 335
*/
import
java
.
util
.
ArrayList
;
import
java
.
util
.
Scanner
;
public
class
SeaPort
extends
Thing
{
ArrayList
<
Dock
>
docks
;
ArrayList
<
Ship
>
ships
;
ArrayList
<
Ship
>
que
;
ArrayList
<
Person
>
persons
;
public
SeaPort
(
Scanner
sc
)
{
super
(
sc
);
docks
=
new
ArrayList
<>
();
ships
=
new
ArrayList
<>
();
que
=
new
ArrayList
<>
();
persons
=
new
ArrayList
<>
();
}
public
ArrayList
<
Dock
>
getDocks
()
{
return
docks
;
}
public
void
setDocks
(
ArrayList
<
Dock
>
docks
)
{
this
.
docks
=
docks
;
}
public
ArrayList
<
Ship
>
getShips
()
{
return
ships
;
}
public
void
setShips
(
ArrayList
<
Ship
>
ships
)
{
this
.
ships
=
ships
;
}
public
ArrayList
<
Ship
>
getQue
()
{
return
que
;
}
public
void
setQue
(
ArrayList
<
Ship
>
que
)
{
this
.
que
=
que
;
}
public
ArrayList
<
Person
>
getPersons
()
{
return
persons
;
}
public
void
setPersons
(
ArrayList
<
Person
>
persons
)
{
this
.
persons
=
persons
;
}
public
String
toString
()
{
String
st
=
"\n\nSeaPort: "
+
super
.
toString
();
for
(
Dock
md
:
docks
)
st
+=
"\n"
+
md
;
st
+=
"\n\n --- List of all ships in que:"
;
for
(
Ship
ms
:
que
)
st
+=
"\n > "
+
ms
;
st
+=
"\n\n --- List of all ships:"
;
for
(
Ship
ms
:
ships
)
st
+=
"\n > "
+
ms
;
st
+=
"\n\n --- List of all persons:"
;
for
(
Person
mp
:
persons
)
st
+=
"\n > "
+
mp
;
return
st
;
}
// end method toString
}
SeaPortproject/SeaPortProgram.java
SeaPortproject/SeaPortProgram.java
/*
Shreeya Bhetwal
project 1
CMSC 335
*/
import
java
.
io
.
BufferedReader
;
import
java
.
io
.
File
;
import
java
.
io
.
FileReader
;
import
java
.
util
.
Scanner
;
import
javax
.
swing
.
JFileChooser
;
import
javax
.
swing
.
JOptionPane
;
public
class
SeaPortProgram
extends
javax
.
swing
.
JFrame
{
World
world
=
new
World
(
null
);
/**
* Creates new form SeaPortProgram
*/
public
SeaPortProgram
()
{
JFileChooser
jf
=
new
JFileChooser
(
"."
);
jf
.
showOpenDialog
(
null
);
jf
.
setVisible
(
true
);
File
f
=
jf
.
getSelectedFile
();
if
(
f
!=
null
)
{
initComponents
();
readFile
(
f
);
}
else
{
JOptionPane
.
showMessageDialog
(
null
,
"Error: You didn't choose a file."
,
"Error"
,
1
);
}
}
public
void
readFile
(
File
f
)
{
try
{
BufferedReader
input
=
new
BufferedReader
(
new
FileReader
(
f
));
while
(
input
.
ready
())
{
String
str
=
input
.
readLine
().
trim
();
Scanner
sc
=
new
Scanner
(
str
);
if
(
!
str
.
startsWith
(
"//"
))
{
String
type
=
""
;
if
(
sc
.
hasNext
())
{
type
=
sc
.
next
();
}
if
(
type
.
equalsIgnoreCase
(
"port"
))
{
world
.
assignPort
(
new
SeaPort
(
sc
));
}
else
if
(
type
.
equalsIgnoreCase
(
"dock"
))
{
world
.
assignDock
(
new
Dock
(
sc
));
}
else
if
(
type
.
equalsIgnoreCase
(
"ship"
))
{
world
.
assignShip
(
new
Ship
(
sc
));
}
else
if
(
type
.
equalsIgnoreCase
(
"pship"
))
{
world
.
assignShip
(
new
PassengerShip
(
sc
));
}
else
if
(
type
.
equalsIgnoreCase
(
"cship"
))
{
world
.
assignShip
(
new
CargoShip
(
sc
));
}
else
if
(
type
.
equalsIgnoreCase
(
"person"
))
{
world
.
assignPerson
(
new
Person
(
sc
));
}
}
}
output
.
setText
(
world
.
toString
());
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
e
+
"-----"
);
}
}
@
SuppressWarnings
(
"unchecked"
)
private
void
initComponents
()
{
buttonGroup1
=
new
javax
.
swing
.
ButtonGroup
();
jScrollPane1
=
new
javax
.
swing
.
JScrollPane
();
output
=
new
javax
.
swing
.
JTextArea
();
searchText
=
new
javax
.
swing
.
JTextField
();
jButton1
=
new
javax
.
swing
.
JButton
();
name
=
new
javax
.
swing
.
JRadioButton
();
index
=
new
javax
.
swing
.
JRadioButton
();
skills
=
new
javax
.
swing
.
JRadioButton
();
setDefaultCloseOperation
(
javax
.
swing
.
WindowConstants
.
EXIT_ON_CLOSE
);
output
.
setColumns
(
20
);
output
.
setRows
(
5
);
jScrollPane1
.
setViewportView
(
output
);
jButton1
.
setText
(
"Search"
);
buttonGroup1
.
add
(
name
);
name
.
setText
(
"Name"
);
buttonGroup1
.
add
(
index
);
index
.
setText
(
"Index"
);
buttonGroup1
.
add
(
skills
);
skills
.
setText
(
"Skill"
);
javax
.
swing
.
GroupLayout
layout
=
new
javax
.
swing
.
GroupLayout
(
getContentPane
());
getContentPane
().
setLayout
(
layout
);
layout
.
setHorizontalGroup
(
layout
.
createParallelGroup
(
javax
.
swing
.
GroupLayout
.
Alignment
.
LEADING
)
.
addGroup
(
layout
.
createSequentialGroup
()
.
addContainerGap
()
.
addGroup
(
layout
.
createParallelGroup
(
javax
.
swing
.
GroupLayout
.
Alignment
.
LEADING
)
.
addComponent
(
jScrollPane1
)
.
addGroup
(
layout
.
createSequentialGroup
()
.
addGroup
(
layout
.
createParallelGroup
(
javax
.
swing
.
GroupLayout
.
Alignment
.
LEADING
)
.
addGroup
(
layout
.
createSequentialGroup
()
.
addGap
(
6
,
6
,
6
)
.
addComponent
(
name
)
.
addPreferredGap
(
javax
.
swing
.
LayoutStyle
.
ComponentPlacement
.
RELATED
,
230
,
Short
.
MAX_VALUE
)
.
addComponent
(
index
)
.
addGap
(
167
,
167
,
167
)
.
addComponent
(
skills
))
.
addComponent
(
searchText
))
.
addPreferredGap
(
javax
.
swing
.
LayoutStyle
.
ComponentPlacement
.
UNRELATED
)
.
addComponent
(
jButton1
)
.
addGap
(
25
,
25
,
25
))))
);
layout
.
setVerticalGroup
(
layout
.
createParallelGroup
(
javax
.
swing
.
GroupLayout
.
Alignment
.
LEADING
)
.
addGroup
(
javax
.
swing
.
GroupLayout
.
Alignment
.
TRAILING
,
layout
.
createSequentialGroup
()
.
addContainerGap
()
.
addGroup
(
layout
.
createParallelGroup
(
javax
.
swing
.
GroupLayout
.
Alignment
.
BASELINE
)
.
addComponent
(
searchText
,
javax
.
swing
.
GroupLayout
.
PREFERRED_SIZE
,
javax
.
swing
.
GroupLayout
.
DEFAULT_SIZE
,
javax
.
swing
.
GroupLayout
.
PREFERRED_SIZE
)
.
addComponent
(
jButton1
))
.
addPreferredGap
(
javax
.
swing
.
LayoutStyle
.
ComponentPlacement
.
RELATED
,
javax
.
swing
.
GroupLayout
.
DEFAULT_SIZE
,
Short
.
MAX_VALUE
)
.
addGroup
(
layout
.
createParallelGroup
(
javax
.
swing
.
GroupLayout
.
Alignment
.
BASELINE
)
.
addComponent
(
name
)
.
addComponent
(
index
)
.
addComponent
(
skills
))
.
addPreferredGap
(
javax
.
swing
.
LayoutStyle
.
ComponentPlacement
.
RELATED
)
.
addComponent
(
jScrollPane1
,
javax
.
swing
.
GroupLayout
.
PREFERRED_SIZE
,
344
,
javax
.
swing
.
GroupLayout
.
PREFERRED_SIZE
)
.
addContainerGap
())
);
pack
();
}
public
static
void
main
(
String
args
[])
{
try
{
for
(
javax
.
swing
.
UIManager
.
LookAndFeelInfo
info
:
javax
.
swing
.
UIManager
.
getInstalledLookAndFeels
())
{
if
(
"Windows"
.
equals
(
info
.
getName
()))
{
javax
.
swing
.
UIManager
.
setLookAndFeel
(
info
.
getClassName
());
break
;
}
}
}
catch
(
ClassNotFoundException
ex
)
{
java
.
util
.
logging
.
Logger
.
getLogger
(
SeaPortProgram
.
class
.
getName
()).
log
(
java
.
util
.
logging
.
Level
.
SEVERE
,
null
,
ex
);
}
catch
(
InstantiationException
ex
)
{
java
.
util
.
logging
.
Logger
.
getLogger
(
SeaPortProgram
.
class
.
getName
()).
log
(
java
.
util
.
logging
.
Level
.
SEVERE
,
null
,
ex
);
}
catch
(
IllegalAccessException
ex
)
{
java
.
util
.
logging
.
Logger
.
getLogger
(
SeaPortProgram
.
class
.
getName
()).
log
(
java
.
util
.
logging
.
Level
.
SEVERE
,
null
,
ex
);
}
catch
(
javax
.
swing
.
UnsupportedLookAndFeelException
ex
)
{
java
.
util
.
logging
.
Logger
.
getLogger
(
SeaPortProgram
.
class
.
getName
()).
log
(
java
.
util
.
logging
.
Level
.
SEVERE
,
null
,
ex
);
}
/* Create and display the form */
java
.
awt
.
EventQueue
.
invokeLater
(
new
Runnable
()
{
public
void
run
()
{
new
SeaPortProgram
().
setVisible
(
true
);
}
});
}
// Variables declaration
private
javax
.
swing
.
ButtonGroup
buttonGroup1
;
private
javax
.
swing
.
JRadioButton
index
;
private
javax
.
swing
.
JButton
jButton1
;
private
javax
.
swing
.
JScrollPane
jScrollPane1
;
private
javax
.
swing
.
JRadioButton
name
;
private
javax
.
swing
.
JTextArea
output
;
private
javax
.
swing
.
JTextField
searchText
;
private
javax
.
swing
.
JRadioButton
skills
;
// End of variables declaration
}
SeaPortproject/Ship.java
SeaPortproject/Ship.java
/*
Shreeya Bhetwal
project 1
CMSC 335
*/
import
java
.
util
.
ArrayList
;
import
java
.
util
.
Scanner
;
public
class
Ship
extends
Thing
{
PortTime
arrivalTime
,
dockTime
;
double
draft
,
length
,
weight
,
width
;
ArrayList
<
Job
>
jobs
;
public
Ship
(
Scanner
sc
)
{
super
(
sc
);
weight
=
sc
.
nextDouble
();
length
=
sc
.
nextDouble
();
width
=
sc
.
nextDouble
();
draft
=
sc
.
nextDouble
();
jobs
=
new
ArrayList
<>
();
}
public
PortTime
getArrivalTime
()
{
return
arrivalTime
;
}
public
void
setArrivalTime
(
PortTime
arrivalTime
)
{
this
.
arrivalTime
=
arrivalTime
;
}
public
PortTime
getDockTime
()
{
return
dockTime
;
}
public
void
setDockTime
(
PortTime
dockTime
)
{
this
.
dockTime
=
dockTime
;
}
public
double
getDraft
()
{
return
draft
;
}
public
void
setDraft
(
double
draft
)
{
this
.
draft
=
draft
;
}
public
double
getLength
()
{
return
length
;
}
public
void
setLength
(
double
length
)
{
this
.
length
=
length
;
}
public
double
getWeight
()
{
return
weight
;
}
public
void
setWeight
(
double
weight
)
{
this
.
weight
=
weight
;
}
public
double
getWidth
()
{
return
width
;
}
public
void
setWidth
(
double
width
)
{
this
.
width
=
width
;
}
public
ArrayList
<
Job
>
getJobs
()
{
return
jobs
;
}
public
void
setJobs
(
ArrayList
<
Job
>
jobs
)
{
this
.
jobs
=
jobs
;
}
}
SeaPortproject/Thing.java
SeaPortproject/Thing.java
/*
Shreeya Bhetwal
project 1
CMSC 335
*/
import
java
.
util
.
Scanner
;
public
class
Thing
implements
Comparable
<
Thing
>
{
String
name
;
int
index
;
int
parent
;
public
Thing
(
Scanner
sc
)
{
if
(
sc
!=
null
)
{
name
=
sc
.
next
();
index
=
sc
.
nextInt
();
parent
=
sc
.
nextInt
();
}
}
public
int
getIndex
()
{
return
index
;
}
public
String
getName
()
{
return
name
;
}
public
int
getParent
()
{
return
parent
;
}
@
Override
public
int
compareTo
(
Thing
o
)
{
if
(
this
.
index
>
o
.
index
)
return
1
;
else
if
(
this
.
index
==
o
.
index
)
return
0
;
else
return
-
1
;
}
@
Override
public
String
toString
()
{
return
name
+
" "
+
index
;
}
}
SeaPortproject/World.java
SeaPortproject/World.java
/*
Shreeya Bhetwal
project 1
CMSC 335
*/
import
java
.
util
.
ArrayList
;
import
java
.
util
.
Scanner
;
public
class
World
extends
Thing
{
ArrayList
<
SeaPort
>
ports
;
PortTime
time
;
public
World
(
Scanner
sc
)
{
super
(
sc
);
ports
=
new
ArrayList
<>
();
}
public
ArrayList
<
SeaPort
>
getPorts
()
{
return
ports
;
}
public
void
setPorts
(
ArrayList
<
SeaPort
>
ports
)
{
this
.
ports
=
ports
;
}
public
PortTime
getTime
()
{
return
time
;
}
public
void
setTime
(
PortTime
time
)
{
this
.
time
=
time
;
}
Ship
getShipByIndex
(
int
x
)
{
for
(
SeaPort
msp
:
ports
)
for
(
Ship
ms
:
msp
.
ships
)
if
(
ms
.
index
==
x
)
return
ms
;
return
null
;
}
// end getShipByIndex
Dock
getDockByIndex
(
int
x
)
{
for
(
SeaPort
msp
:
ports
)
for
(
Dock
ms
:
msp
.
docks
)
if
(
ms
.
index
==
x
)
return
ms
;
return
null
;
}
// end getDockByIndex
SeaPort
getSeaPortByIndex
(
int
x
)
{
for
(
SeaPort
msp
:
ports
)
if
(
msp
.
index
==
x
)
return
msp
;
return
null
;
}
void
assignShip
(
Ship
ms
)
{
Dock
md
=
getDockByIndex
(
ms
.
parent
);
if
(
md
==
null
)
{
SeaPort
p
=
getSeaPortByIndex
(
ms
.
parent
);
if
(
p
!=
null
)
{
p
.
ships
.
add
(
ms
);
p
.
que
.
add
(
ms
);
}
return
;
}
else
{
md
.
ship
=
ms
;
getSeaPortByIndex
(
md
.
parent
).
ships
.
add
(
ms
);
}
}
// end method assignShip
void
assignPerson
(
Person
p
)
{
for
(
SeaPort
sp
:
ports
)
{
if
(
sp
.
getIndex
()
==
p
.
getParent
())
{
sp
.
persons
.
add
(
p
);
}
}
}
// end assignPerson
void
assignDock
(
Dock
d
)
{
for
(
SeaPort
sp
:
ports
)
{
if
(
sp
.
getIndex
()
==
d
.
getParent
())
{
sp
.
docks
.
add
(
d
);
}
}
}
//end assignDock
void
assignPort
(
SeaPort
p
)
{
ports
.
add
(
p
);
}
public
String
toString
()
{
String
str
=
""
;
for
(
SeaPort
s
:
ports
)
{
str
+=
s
.
toString
()
+
"\n"
;
}
return
str
;
}
}