/**
  * {@inheritDoc} Compares this instance with the {@code other} registered service based on
  * evaluation order, name. The name comparison is case insensitive.
  *
  * @see #getEvaluationOrder()
  */
 @Override
 public int compareTo(final RegisteredService other) {
   return new CompareToBuilder()
       .append(this.getEvaluationOrder(), other.getEvaluationOrder())
       .append(this.getName().toLowerCase(), other.getName().toLowerCase())
       .append(this.getServiceId(), other.getServiceId())
       .toComparison();
 }
 /**
  * Copies the properties of the source service into this instance.
  *
  * @param source Source service from which to copy properties.
  */
 public void copyFrom(final RegisteredService source) {
   this.setId(source.getId());
   this.setAllowedAttributes(new ArrayList<String>(source.getAllowedAttributes()));
   this.setAllowedToProxy(source.isAllowedToProxy());
   this.setDescription(source.getDescription());
   this.setEnabled(source.isEnabled());
   this.setName(source.getName());
   this.setServiceId(source.getServiceId());
   this.setSsoEnabled(source.isSsoEnabled());
   this.setTheme(source.getTheme());
   this.setAnonymousAccess(source.isAnonymousAccess());
   this.setIgnoreAttributes(source.isIgnoreAttributes());
   this.setEvaluationOrder(source.getEvaluationOrder());
   this.setUsernameAttribute(source.getUsernameAttribute());
   this.setLogoutType(source.getLogoutType());
 }
 /**
  * Copies the properties of the source service into this instance.
  *
  * @param source Source service from which to copy properties.
  */
 public void copyFrom(final RegisteredService source) {
   this.setId(source.getId());
   this.setProxyPolicy(source.getProxyPolicy());
   this.setDescription(source.getDescription());
   this.setName(source.getName());
   this.setServiceId(source.getServiceId());
   this.setTheme(source.getTheme());
   this.setEvaluationOrder(source.getEvaluationOrder());
   this.setUsernameAttributeProvider(source.getUsernameAttributeProvider());
   this.setLogoutType(source.getLogoutType());
   this.setAttributeReleasePolicy(source.getAttributeReleasePolicy());
   this.setAccessStrategy(source.getAccessStrategy());
   this.setLogo(source.getLogo());
   this.setLogoutUrl(source.getLogoutUrl());
   this.setPublicKey(source.getPublicKey());
   this.setRequiredHandlers(source.getRequiredHandlers());
   this.setProperties(source.getProperties());
 }