/*
* Copyright (c) 2001, 2003, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package com.sun.corba.se.impl.oa.poa ;
abstract class POAPolicyMediatorFactory {
// create an appropriate policy mediator based on the policies.
// Note that the policies object has already been validated before
// this call, so it can only contain valid combinations of POA policies.
static POAPolicyMediator create( Policies policies, POAImpl poa )
{
if (policies.retainServants()) {
if (policies.useActiveMapOnly())
return new POAPolicyMediatorImpl_R_AOM( policies, poa ) ;
else if (policies.useDefaultServant())
return new POAPolicyMediatorImpl_R_UDS( policies, poa ) ;
else if (policies.useServantManager())
return new POAPolicyMediatorImpl_R_USM( policies, poa ) ;
else
throw poa.invocationWrapper().pmfCreateRetain() ;
} else {
if (policies.useDefaultServant())
return new POAPolicyMediatorImpl_NR_UDS( policies, poa ) ;
else if (policies.useServantManager())
return new POAPolicyMediatorImpl_NR_USM( policies, poa ) ;
else
throw poa.invocationWrapper().pmfCreateNonRetain() ;
}
}
}