package models.origo.core.navigation; import models.origo.core.Alias; import origo.helpers.SettingsHelper; import play.data.validation.Required; import play.data.validation.Unique; import play.db.jpa.Model; import javax.persistence.Entity; @Entity public class AliasNavigation extends Model { @Required @Unique public String identifier; // TODO: It would be better to have alias point to the id of an Alias instead (but that is really hard with yaml) @Required public String alias; public String getLink() { Alias aliasModel = Alias.findWithPath(alias); if (aliasModel != null && SettingsHelper.Core.getStartPage().equals(aliasModel.pageId)) { return SettingsHelper.Core.getBaseUrl(); } return SettingsHelper.Core.getBaseUrl() + alias; } public static AliasNavigation findWithIdentifier(String identifier) { return AliasNavigation.find("select distinct n from AliasNavigation n where identifier=:identifier"). bind("identifier", identifier). first(); } @Override public String toString() { return new StringBuilder(). append("AliasNavigation {"). append("identifier='").append(identifier).append('\''). append(", alias='").append(alias).append('\''). append('}'). toString(); } }