> From: Leo Sutic [mailto:[EMAIL PROTECTED]]
>
> package packagename;
>
> import org.apache.avalon.framework.component.Component;
> import org.apache.avalon.framework.component.ComponentException;
>
> public interface ObjectManager implements Component {
> public static void ROLE = "packagename.ObjectManager";
> public Object lookup (String role) throws ComponentException;
> }
>
> ----------------------------
>
> public class DefaultObjectManager implements ObjectManager, Composable,
> ThreadSafe {
>
> private ComponentManager manager = null;
>
> public void compose (ComponentManager manager) {
> this.manager = manager;
> }
>
> public Object lookup (String role) throws ComponentException {
> Component maybeWrapper = manager.lookup (role);
> if (maybeWrapper instanceof ComponentWrapper) {
> return ((ComponentWrapper) maybeWrapper).getObject ();
> } else {
> return maybeWrapper;
> }
> }
> }
>
Oops - for Avalon4 compatibility, must not forget:
public interface ObjectManager implements Component {
public static void ROLE = "packagename.ObjectManager";
public Object lookup (String role) throws ComponentException;
public void release (Object obj);
}
public class DefaultObjectManager implements ObjectManager, Composable,
ThreadSafe {
private ComponentManager manager = null;
public void compose (ComponentManager manager) {
this.manager = manager;
}
public Object lookup (String role) throws ComponentException {
Component maybeWrapper = manager.lookup (role);
if (maybeWrapper instanceof ComponentWrapper) {
return ((ComponentWrapper) maybeWrapper).getObject ();
} else {
return maybeWrapper;
}
}
public void release (Object object) {
if (object instanceof Component) {
manager.release ((Component) object);
}
}
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>