/*
* $Id: SimpleRealm.java,v 1.14 2002/09/16 08:05:06 jkl Exp $
*
* Copyright (c) 2002 Njet Communications Ltd. All Rights Reserved.
*
* Use is subject to license terms, as defined in
* Anvil Sofware License, Version 1.1. See LICENSE
* file, or http://njet.org/license-1.1.txt
*/
package anvil.server.simple;
import java.util.Iterator;
import java.util.HashSet;
import java.util.ArrayList;
import java.util.List;
import anvil.java.util.BindingEnumeration;
import anvil.core.Any;
import anvil.core.Array;
import anvil.java.util.Hashlist;
import anvil.util.Map;
import anvil.server.RealmPreferences;
import anvil.server.Zone;
import anvil.server.Citizen;
import anvil.server.Realm;
import anvil.server.Tribe;
import anvil.server.Citizen;
import anvil.server.Realm;
import anvil.server.Tribe;
import anvil.server.Citizen;
import anvil.server.OperationFailedException;
/**
* interface SimpleRealm
*
* @author: Jani Lehtim�ki
*/
public class SimpleRealm implements Realm
{
private Map _map = new Map();
private Hashlist _citizens = new Hashlist();
private SimpleTribe _root;
private Zone _zone;
private String _name;
public SimpleRealm()
{
SimpleTribe root = new SimpleTribe(this, "root");
SimpleCitizen user = (SimpleCitizen)createCitizen("user", "xxx");
root.attach(user);
setRoot(root);
}
public String toString()
{
return "SimpleRealm("+_name+")";
}
void addMapping(Object a, Object b)
{
_map.add(a, b);
}
void removeMapping(Object a, Object b)
{
_map.remove(a, b);
}
void removeMappings(Object a)
{
_map.remove(a);
}
boolean isMapped(Object o, Class elemcls, boolean left, boolean right)
{
return _map.isMapped(o, elemcls, left, right);
}
Object[] getMappings(Object o, Class elemcls, boolean left, boolean right)
{
return _map.get(o, elemcls, left, right);
}
public void initialize(RealmPreferences prefs)
{
_zone = prefs.getParent();
_name = prefs.getName();
_zone.log().info("Realm " + this + " initialized");
}
public Citizen getAnonymousCitizen()
{
return null;
}
public Citizen[] searchCitizenByVariable(String variable, String value)
{
return null;
}
public Citizen getCitizen(String username)
{
Citizen citizen = (Citizen)_citizens.get(username);
if (citizen == null) {
Citizen mc = createCitizen(username, "xxx");
_root.attach(mc);
citizen = mc;
}
return citizen;
}
public Tribe getTribe(String name)
{
if (name == null) {
return null;
} else if (name.equals("root")) {
return _root;
} else {
return new SimpleTribe(this, name);
}
}
public Citizen createCitizen(String name, String credentials)
{
SimpleCitizen citizen = new SimpleCitizen(this, name, credentials);
_citizens.put(citizen.getName(), citizen);
return citizen;
}
public Citizen createCitizen(String name, String credentials, String[][] params)
{
return createCitizen(name, credentials);
}
public Tribe createTribe(String name)
{
return new SimpleTribe(this, name);
}
public Tribe getRoot()
{
return _root;
}
public void setRoot(Tribe tribe)
{
_root = (SimpleTribe)tribe;
}
public void stop()
{
_map.clear();
_citizens.clear();
_root = null;
_zone.log().info("Realm " + this + " stopped");
}
}