package org.apereo.cas.ticket; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; import org.springframework.core.Ordered; /** * This is {@link DefaultTicketDefinition}. * * @author Misagh Moayyed * @since 5.1.0 */ public class DefaultTicketDefinition implements TicketDefinition { private Class<? extends Ticket> implementationClass; private String prefix; private TicketDefinitionProperties properties = new DefaultTicketDefinitionProperties(); private int order = Ordered.LOWEST_PRECEDENCE; /** * Instantiates a new Ticket definition. * * @param implementationClass the implementation class * @param prefix the prefix * @param order the order */ public DefaultTicketDefinition(final Class<? extends Ticket> implementationClass, final String prefix, final int order) { this.implementationClass = implementationClass; this.prefix = prefix; this.order = order; } public DefaultTicketDefinition(final Class<? extends Ticket> implementationClass, final String prefix) { this(implementationClass, prefix, Ordered.LOWEST_PRECEDENCE); } @Override public Class<? extends Ticket> getImplementationClass() { return implementationClass; } @Override public String getPrefix() { return prefix; } @Override public String toString() { return new ToStringBuilder(this) .append("implementationClass", implementationClass) .append("prefix", prefix) .toString(); } @Override public TicketDefinitionProperties getProperties() { return properties; } @Override public boolean equals(final Object obj) { if (obj == null) { return false; } if (obj == this) { return true; } if (obj.getClass() != getClass()) { return false; } final TicketDefinition rhs = (TicketDefinition) obj; return new EqualsBuilder() .append(this.implementationClass, rhs.getImplementationClass()) .append(this.prefix, rhs.getPrefix()) .append(this.properties, rhs.getProperties()) .isEquals(); } @Override public int hashCode() { return new HashCodeBuilder() .append(implementationClass) .append(prefix) .append(properties) .toHashCode(); } @Override public int getOrder() { return this.order; } }