package sagan.guides;
import com.fasterxml.jackson.annotation.JsonIgnore;
import org.springframework.util.Assert;
import java.util.Set;
public abstract class AbstractGuide implements Guide {
private GuideMetadata metadata;
private String content;
private String sidebar;
private String typeLabel;
public AbstractGuide() {
}
public AbstractGuide(GuideMetadata metadata) {
this.metadata = metadata;
}
public GuideMetadata getMetadata() {
return metadata;
}
public void setMetadata(GuideMetadata metadata) {
this.metadata = metadata;
}
@Override
public String getContent() {
return content;
}
public void setContent(String content) {
Assert.hasText(content, "Expected body content to be populated");
this.content = content;
}
@Override
public String getSidebar() {
return sidebar;
}
public void setSidebar(String sidebar) {
Assert.notNull(sidebar, "Expected sidebar content to be populated");
this.sidebar = sidebar;
}
public String getTypeLabel() {
return typeLabel;
}
public void setTypeLabel(String typeLabel) {
Assert.notNull(typeLabel, "Expected label type to be populated");
this.typeLabel = typeLabel;
}
// --- GuideMetadata delegate methods ---
@Override
@JsonIgnore
public String getTitle() {
return metadata.getTitle();
}
@Override
@JsonIgnore
public String getSubtitle() {
return metadata.getSubtitle();
}
@Override
@JsonIgnore
public Set<String> getTags() {
return metadata.getTags();
}
@Override
@JsonIgnore
public String getRepoName() {
return metadata.getRepoName();
}
@Override
@JsonIgnore
public String getGuideId() {
return metadata.getGuideId();
}
@Override
@JsonIgnore
public String getGitRepoHttpsUrl() {
return metadata.getGitRepoHttpsUrl();
}
@Override
@JsonIgnore
public String getGithubHttpsUrl() {
return metadata.getGithubHttpsUrl();
}
@Override
@JsonIgnore
public String getZipUrl() {
return metadata.getZipUrl();
}
@Override
@JsonIgnore
public String getGitRepoSshUrl() {
return metadata.getGitRepoSshUrl();
}
@Override
@JsonIgnore
public String getGitRepoSubversionUrl() {
return metadata.getGitRepoSubversionUrl();
}
@Override
@JsonIgnore
public String getCiStatusImageUrl() {
return metadata.getCiStatusImageUrl();
}
@Override
@JsonIgnore
public String getCiLatestUrl() {
return metadata.getCiLatestUrl();
}
}