import javax.naming.*;
import javax.naming.spi.ObjectFactory;
import java.util.Hashtable;

/**
 * This is an object factory that when given a reference for a Fruit
 * object, will create an instance of the corresponding Fruit.
 */
public class FruitFactory implements ObjectFactory {
    public FruitFactory() {
    }

    public Object getObjectInstance(Object obj, Name name, Context ctx,
	Hashtable env) throws Exception {
	if (obj instanceof Reference) {
	    Reference ref = (Reference)obj;
	    if (ref.getClassName().equals(Fruit.class.getName())) {
		RefAddr addr = ref.get("fruit");
		if (addr != null) {
		    return new Fruit((String)addr.getContent());
		}
	    }
	}
	return null;
    }
}
