Ich fand diese Klasse in Magnolie CMS Quelle, die Klassendefinition verwendet, die ich noch nicht kenne. Könnte jemand, der über die Verwendung des folgenden Codestils Bescheid weiß, mir erklären, was genau das ist? In diesem Codebeispiel sind RenderingModel
und RenderableDefinition
beide Schnittstellen. Wie ich weiß, können wir nicht zwei Schnittstellen in einer Klasse implementieren, aber hier wird dies auf andere Weise erreicht. istWas bedeutet folgende Java Codezeile
public class RenderingModelImpl < RD extends RenderableDefinition >
implements RenderingModel {
Nach der vollständigen Klasse, die Sie bei magnolia java docs
public class RenderingModelImpl < RD
extends RenderableDefinition >
implements RenderingModel {
protected final RenderingModel parentModel;
protected final Content content;
protected final RD definition;
public RenderingModelImpl(Content content, RD definition, RenderingModel
parent) {
this.content = content;
this.definition = definition;
this.parentModel = parent;
}
public RenderingModel getParent() {
return this.parentModel;
}
public RenderingModel getRoot(){
RenderingModel model = this;
while(model.getParent() != null){
model = model.getParent();
}
return model;
}
public Content getContent() {
return this.content;
}
/**
* Shortname for templates: model.def.
*/
public RD getDef() {
return getDefinition();
}
public RD getDefinition() {
return this.definition;
}
public String execute() {
return null;
}
}