RealmManager.java
    
    
    
    
    
        Home
            /
services                    /
src                    /
main                    /
java                    /
org                    /
keycloak                    /
services                    /
model                    /
                    RealmManager.java
    
    
            
            package org.keycloak.services.model;
import org.picketlink.idm.IdentityManager;
import org.picketlink.idm.internal.IdentityManagerFactory;
import org.picketlink.idm.model.Realm;
import org.picketlink.idm.model.SimpleAgent;
import java.util.concurrent.atomic.AtomicLong;
/**
 * @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
 * @version $Revision: 1 $
 */
public class RealmManager
{
   private static AtomicLong counter = new AtomicLong(1);
   public static String generateId()
   {
      return counter.getAndIncrement() + "-" + System.currentTimeMillis();
   }
   protected IdentityManagerFactory factory;
   public RealmManager(IdentityManagerFactory factory)
   {
      this.factory = factory;
   }
   public RealmModel getRealm(String id)
   {
      Realm existing = factory.findRealm(id);
      if (existing == null)
      {
         return null;
      }
      return new RealmModel(existing, factory);
   }
   public RealmModel create(String name)
   {
      Realm newRealm = factory.createRealm(generateId());
      IdentityManager idm = factory.createIdentityManager(newRealm);
      SimpleAgent agent = new SimpleAgent(RealmModel.REALM_AGENT_ID);
      idm.add(agent);
      return new RealmModel(newRealm, factory);
   }
}