package com.airlock.iam.common.domain.model.user;

import com.airlock.iam.base.api.domain.model.exception.FailureException;
import com.airlock.iam.common.api.domain.model.contextdata.ContextData;
import com.airlock.iam.common.api.domain.model.role.Role;
import com.airlock.iam.common.api.domain.model.user.User;
import com.airlock.iam.common.domain.model.contextdata.ContextDataImpl;
import java.util.Collections;
import java.util.Set;

public final class NonExistentUser implements User {
   @Override
   public String getName() {
      throw new FailureException("User has no name");
   }

   @Override
   public boolean hasName() {
      return false;
   }

   @Override
   public ContextData getContextData() {
      return ContextDataImpl.emptyContextData();
   }

   @Override
   public void setContextData(ContextData newContextData) {
   }

   @Override
   public Set<Role> getRoles() {
      return Collections.emptySet();
   }
}
