Übungsblatt MDD

Benutzeravatar
monperrus
Windoof-User
Windoof-User
Beiträge: 38
Registriert: 18. Feb 2009 10:51

Übungsblatt MDD

Beitrag von monperrus »

Hi Eugen,

Wie sieht die checkStaticSemantics Methode von den einzelnen Klassen aus?
For instance, the pseudocode of Reference.checkStaticSemantics could be:

Code: Alles auswählen

if (this.specialize!=null) {
  return this.specialize.containingClass.isSuperClassOf(this.containingClass)
         && this.specialize.type.isSuperClassOf(this.type)
}
return true;//OK
Also die Violation ist doch, dass ich eine initial von A nach B habe und von Y nach X eine {specialize initial} haben kann, also die Richtig vom Pfeil von Y nach X umdrehen. Ist das richtig?
Yes.
Kannst du die Lösung zu dem Codegenerator schicken?
The goal of the exercises were to let you do them and then discuss in person. But I can give you an example of generated code:

Code: Alles auswählen

public class A {
  public B initial;
  public void setInitial(B initial) {this.initial = initial;}
}

public class B {
}

public class X extends A {
  public Y initial;
  public void setInitial(Y initial) {this.initial = initial;}
  @Override
  public void setInitial(B initial) {throw new SpecializationSemanticsViolationException();}
}

public class Y extends B {
}
Best regards,

-- Martin

Zurück zu „Archiv“