Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

PlantUML Macro
object "hallvard: Person" as hallvard {
}
object "marit: Person" as marit {
}
object "jens: Person" as jens {
}

 

marit.addChild(jens)

hallvard.addChild(jens)

PlantUML Macro
object "hallvard: Person" as hallvard {
}
object "marit: Person" as marit {
}
object "jens: Person" as jens {
}
marit -> jens: children
jens -> marit: mother
hallvard -> jens: children
jens -> hallvard: father 

Establish links with addChild.

(Same effect as below)

PlantUML Macro
object "hallvard: Person" as hallvard {
}
object "marit: Person" as marit {
}
object "jens: Person" as jens {
}

 

jens.setMother(marit)

jens.setFather(hallvard)

PlantUML Macro
object "hallvard: Person" as hallvard {
}
object "marit: Person" as marit {
}
object "jens: Person" as jens {
}
marit -> jens: children
jens -> marit: mother
hallvard -> jens: children
jens -> hallvard: father 

Establish links with setMother og setFather.

(Same effekt as above)

PlantUML Macro
object "hallvard: Person" as hallvard {
}
object "marit: Person" as marit {
}
object "jens: Person" as jens {
}
marit -> jens: children
jens -> marit: mother
hallvard -> jens: children
jens -> hallvard: father

 

marit.removeChild(jens)

hallvard.removeChild(jens)


PlantUML Macro
object "hallvard: Person" as hallvard {
}
object "marit: Person" as marit {
}
object "jens: Person" as jens {
}

 

 

Removal of links with removeChild.

(Same effect as below)

PlantUML Macro
object "hallvard: Person" as hallvard {
}
object "marit: Person" as marit {
}
object "jens: Person" as jens {
}
marit -> jens: children
jens -> marit: mother
hallvard -> jens: children
jens -> hallvard: father 

 

jens.setMother(null)

jens.setFather(null)

PlantUML Macro
object "hallvard: Person" as hallvard {
}
object "marit: Person" as marit {
}
object "jens: Person" as jens {
}

Removal of links with setMother og setFather.

(Same effekt as above)

PlantUML Macro
object "hallvard: Person" as hallvard {
}
object "marit: Person" as marit {
}
object "jens: Person" as jens {
}
object "torkel: Person" as torkel {
}
object "jorunn: Person" as jorunn {
}
marit -> jens: children
jens -> marit: mother
hallvard -> jens: children
jens -> hallvard: father 

jens.setFather(torkel)

jens.setMother(jorunn)

PlantUML Macro
object "hallvard: Person" as hallvard {
}
object "marit: Person" as marit {
}
object "jens: Person" as jens {
}
object "torkel: Person" as torkel {
}
object "jorunn: Person" as jorunn {
}
jorunn -> jens: children
jens -> jorunn: mother
torkel -> jens: children
jens -> torkel: father 
Remove and establish links with setMother og setFather, i.e. "adoption".

The task is split in two parts, the first handles the children- and mother/father roles in isolation without considering consistency, while the other must ensure consistency.

...

Use the Exercise panel, open the Person.ex file (tests > objectstructures Person.ex) in the panel before you start the start programming.

Part 1

  • Implement the addChild and removeChild methods so the getChildCount and getChild methods work as expected. These methods only handle the children role.
  • Implement the setMother and setFather methods so the getMother and getFather methods work as expected. These methods only handle the mother/father roles.

...