package com.l7tech.identity;

import com.l7tech.objectmodel.AnonymousEntityReference;
import com.l7tech.objectmodel.Goid;
import com.l7tech.objectmodel.migration.Migration;
import com.l7tech.objectmodel.migration.MigrationMappingSelection;
import com.l7tech.objectmodel.migration.PropertyResolver.Type;

public class AnonymousUserReference extends AnonymousEntityReference implements User {
   private final UserBean userBean;
   static final long serialVersionUID = 243767134212575468L;

   public AnonymousUserReference(String var1, Goid var2, String var3) {
      super(User.class, var1, var3);
      this.userBean = new UserBean(var2, null);
      this.userBean.setUniqueIdentifier(var1);
   }

   @Migration(mapName = MigrationMappingSelection.NONE, mapValue = MigrationMappingSelection.NONE, export = false, resolver = Type.ID_PROVIDER_CONFIG)
   @Override
   public Goid getProviderId() {
      return this.userBean.getProviderId();
   }

   @Override
   public boolean isEquivalentId(Object var1) {
      return var1 != null && var1.equals(this.uniqueId);
   }

   public String getId() {
      return this.userBean.getId();
   }

   @Override
   public String getLogin() {
      return this.userBean.getLogin();
   }

   @Override
   public String getFirstName() {
      return this.userBean.getFirstName();
   }

   @Override
   public String getLastName() {
      return this.userBean.getLastName();
   }

   @Override
   public String getEmail() {
      return this.userBean.getEmail();
   }

   @Override
   public String getDepartment() {
      return this.userBean.getDepartment();
   }

   @Override
   public String getSubjectDn() {
      return this.userBean.getSubjectDn();
   }

   public UserBean getUserBean() {
      return this.userBean;
   }

   @Override
   public boolean equals(Object var1) {
      if (this == var1) {
         return true;
      }

      if (var1 != null && this.getClass() == var1.getClass()) {
         AnonymousUserReference var2 = (AnonymousUserReference)var1;
         if (this.userBean != null ? this.userBean.equals(var2.userBean) : var2.userBean == null) {
            String var3 = this.getId();
            String var4 = var2.getId();
            return var3 != null ? var3.equals(var4) : var4 == null;
         } else {
            return false;
         }
      } else {
         return false;
      }
   }

   @Override
   public int hashCode() {
      int var1 = this.userBean != null ? this.userBean.hashCode() : 0;
      String var2 = this.getId();
      return 31 * var1 + (var2 != null ? var2.hashCode() : 0);
   }
}
