aboutsummaryrefslogtreecommitdiff
path: root/src/share/classes/com/sun/corba/se/impl/oa/poa/Policies.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/share/classes/com/sun/corba/se/impl/oa/poa/Policies.java')
-rw-r--r--src/share/classes/com/sun/corba/se/impl/oa/poa/Policies.java352
1 files changed, 0 insertions, 352 deletions
diff --git a/src/share/classes/com/sun/corba/se/impl/oa/poa/Policies.java b/src/share/classes/com/sun/corba/se/impl/oa/poa/Policies.java
deleted file mode 100644
index 41b49bf..0000000
--- a/src/share/classes/com/sun/corba/se/impl/oa/poa/Policies.java
+++ /dev/null
@@ -1,352 +0,0 @@
-/*
- * Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation. Oracle designates this
- * particular file as subject to the "Classpath" exception as provided
- * by Oracle in the LICENSE file that accompanied this code.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- */
-
-package com.sun.corba.se.impl.oa.poa;
-
-import java.util.HashMap ;
-import java.util.BitSet ;
-import java.util.Iterator ;
-
-import com.sun.corba.se.impl.orbutil.ORBConstants ;
-import com.sun.corba.se.spi.extension.ServantCachingPolicy ;
-import com.sun.corba.se.spi.extension.ZeroPortPolicy ;
-import com.sun.corba.se.spi.extension.CopyObjectPolicy ;
-
-import org.omg.CORBA.*;
-import org.omg.PortableServer.*;
-import org.omg.PortableServer.POAPackage.*;
-
-public final class Policies {
-/* Order of *POLICY_ID :
- THREAD_
- LIFESPAN_
- ID_UNIQUENESS_
- ID_ASSIGNMENT_
- IMPLICIT_ACTIVATION_
- SERvANT_RETENTION_
- REQUEST_PROCESSING_
- The code in this class depends on this order!
-*/
- private static final int MIN_POA_POLICY_ID = THREAD_POLICY_ID.value ;
- private static final int MAX_POA_POLICY_ID = REQUEST_PROCESSING_POLICY_ID.value ;
- private static final int POLICY_TABLE_SIZE = MAX_POA_POLICY_ID -
- MIN_POA_POLICY_ID + 1 ;
-
- int defaultObjectCopierFactoryId ;
-
- private HashMap policyMap = new HashMap() ; // Maps Integer(policy type) to Policy
-
- public static final Policies defaultPolicies
- = new Policies() ;
-
- public static final Policies rootPOAPolicies
- = new Policies(
- ThreadPolicyValue._ORB_CTRL_MODEL,
- LifespanPolicyValue._TRANSIENT,
- IdUniquenessPolicyValue._UNIQUE_ID,
- IdAssignmentPolicyValue._SYSTEM_ID,
- ImplicitActivationPolicyValue._IMPLICIT_ACTIVATION,
- ServantRetentionPolicyValue._RETAIN,
- RequestProcessingPolicyValue._USE_ACTIVE_OBJECT_MAP_ONLY ) ;
-
- private int[] poaPolicyValues ;
-
- private int getPolicyValue( int id )
- {
- return poaPolicyValues[ id - MIN_POA_POLICY_ID ] ;
- }
-
- private void setPolicyValue( int id, int value )
- {
- poaPolicyValues[ id - MIN_POA_POLICY_ID ] = value ;
- }
-
- private Policies(
- int threadModel,
- int lifespan,
- int idUniqueness,
- int idAssignment,
- int implicitActivation,
- int retention,
- int requestProcessing )
- {
- poaPolicyValues = new int[] {
- threadModel,
- lifespan,
- idUniqueness,
- idAssignment,
- implicitActivation,
- retention,
- requestProcessing };
- }
-
- private Policies() {
- this( ThreadPolicyValue._ORB_CTRL_MODEL,
- LifespanPolicyValue._TRANSIENT,
- IdUniquenessPolicyValue._UNIQUE_ID,
- IdAssignmentPolicyValue._SYSTEM_ID,
- ImplicitActivationPolicyValue._NO_IMPLICIT_ACTIVATION,
- ServantRetentionPolicyValue._RETAIN,
- RequestProcessingPolicyValue._USE_ACTIVE_OBJECT_MAP_ONLY ) ;
- }
-
- public String toString() {
- StringBuffer buffer = new StringBuffer();
- buffer.append( "Policies[" ) ;
- boolean first = true ;
- Iterator iter = policyMap.values().iterator() ;
- while (iter.hasNext()) {
- if (first)
- first = false ;
- else
- buffer.append( "," ) ;
-
- buffer.append( iter.next().toString() ) ;
- }
- buffer.append( "]" ) ;
- return buffer.toString() ;
- }
-
- /* Returns the integer value of the POA policy, if this is a
- * POA policy, otherwise returns -1.
- */
- private int getPOAPolicyValue( Policy policy)
- {
- if (policy instanceof ThreadPolicy) {
- return ((ThreadPolicy) policy).value().value();
- } else if (policy instanceof LifespanPolicy) {
- return ((LifespanPolicy) policy).value().value();
- } else if (policy instanceof IdUniquenessPolicy) {
- return ((IdUniquenessPolicy) policy).value().value();
- } else if (policy instanceof IdAssignmentPolicy) {
- return ((IdAssignmentPolicy) policy).value().value();
- } else if (policy instanceof ServantRetentionPolicy) {
- return ((ServantRetentionPolicy) policy).value().value();
- } else if (policy instanceof RequestProcessingPolicy) {
- return ((RequestProcessingPolicy) policy).value().value();
- } else if (policy instanceof ImplicitActivationPolicy) {
- return ((ImplicitActivationPolicy) policy).value().value();
- } else
- return -1 ;
- }
-
- /** If any errors were found, throw INVALID_POLICY with the smallest
- * index of any offending policy.
- */
- private void checkForPolicyError( BitSet errorSet ) throws InvalidPolicy
- {
- for (short ctr=0; ctr<errorSet.length(); ctr++ )
- if (errorSet.get(ctr))
- throw new InvalidPolicy(ctr);
- }
-
- /** Add the first index in policies at which the policy is of type
- * policyId to errorSet, if the polictId is in policies (it may not be).
- */
- private void addToErrorSet( Policy[] policies, int policyId,
- BitSet errorSet )
- {
- for (int ctr=0; ctr<policies.length; ctr++ )
- if (policies[ctr].policy_type() == policyId) {
- errorSet.set( ctr ) ;
- return ;
- }
- }
-
- /** Main constructor used from POA::create_POA. This need only be visible
- * within the POA package.
- */
- Policies(Policy[] policies, int id ) throws InvalidPolicy
- {
- // Make sure the defaults are set according to the POA spec
- this();
-
- defaultObjectCopierFactoryId = id ;
-
- if ( policies == null )
- return;
-
- // Set to record all indices in policies for which errors
- // were observed.
- BitSet errorSet = new BitSet( policies.length ) ;
-
- for(short i = 0; i < policies.length; i++) {
- Policy policy = policies[i];
- int POAPolicyValue = getPOAPolicyValue( policy ) ;
-
- // Save the policy in policyMap to support
- // POA.get_effective_policy, if it was not already saved
- // in policyMap.
- Integer key = new Integer( policy.policy_type() ) ;
- Policy prev = (Policy)(policyMap.get( key )) ;
- if (prev == null)
- policyMap.put( key, policy ) ;
-
- if (POAPolicyValue >= 0) {
- setPolicyValue( key.intValue(), POAPolicyValue ) ;
-
- // if the value of this POA policy was previously set to a
- // different value than the current value given in
- // POAPolicyValue, record an error.
- if ((prev != null) &&
- (getPOAPolicyValue( prev ) != POAPolicyValue))
- errorSet.set( i ) ;
- }
- }
-
- // Check for bad policy combinations
-
- // NON_RETAIN requires USE_DEFAULT_SERVANT or USE_SERVANT_MANAGER
- if (!retainServants() && useActiveMapOnly() ) {
- addToErrorSet( policies, SERVANT_RETENTION_POLICY_ID.value,
- errorSet ) ;
- addToErrorSet( policies, REQUEST_PROCESSING_POLICY_ID.value,
- errorSet ) ;
- }
-
- // IMPLICIT_ACTIVATION requires SYSTEM_ID and RETAIN
- if (isImplicitlyActivated()) {
- if (!retainServants()) {
- addToErrorSet( policies, IMPLICIT_ACTIVATION_POLICY_ID.value,
- errorSet ) ;
- addToErrorSet( policies, SERVANT_RETENTION_POLICY_ID.value,
- errorSet ) ;
- }
-
- if (!isSystemAssignedIds()) {
- addToErrorSet( policies, IMPLICIT_ACTIVATION_POLICY_ID.value,
- errorSet ) ;
- addToErrorSet( policies, ID_ASSIGNMENT_POLICY_ID.value,
- errorSet ) ;
- }
- }
-
- checkForPolicyError( errorSet ) ;
- }
-
- public Policy get_effective_policy( int type )
- {
- Integer key = new Integer( type ) ;
- Policy result = (Policy)(policyMap.get(key)) ;
- return result ;
- }
-
- /* Thread Policies */
- public final boolean isOrbControlledThreads() {
- return getPolicyValue( THREAD_POLICY_ID.value ) ==
- ThreadPolicyValue._ORB_CTRL_MODEL;
- }
- public final boolean isSingleThreaded() {
- return getPolicyValue( THREAD_POLICY_ID.value ) ==
- ThreadPolicyValue._SINGLE_THREAD_MODEL;
- }
-
- /* Lifespan */
- public final boolean isTransient() {
- return getPolicyValue( LIFESPAN_POLICY_ID.value ) ==
- LifespanPolicyValue._TRANSIENT;
- }
- public final boolean isPersistent() {
- return getPolicyValue( LIFESPAN_POLICY_ID.value ) ==
- LifespanPolicyValue._PERSISTENT;
- }
-
- /* ID Uniqueness */
- public final boolean isUniqueIds() {
- return getPolicyValue( ID_UNIQUENESS_POLICY_ID.value ) ==
- IdUniquenessPolicyValue._UNIQUE_ID;
- }
- public final boolean isMultipleIds() {
- return getPolicyValue( ID_UNIQUENESS_POLICY_ID.value ) ==
- IdUniquenessPolicyValue._MULTIPLE_ID;
- }
-
- /* ID Assignment */
- public final boolean isUserAssignedIds() {
- return getPolicyValue( ID_ASSIGNMENT_POLICY_ID.value ) ==
- IdAssignmentPolicyValue._USER_ID;
- }
- public final boolean isSystemAssignedIds() {
- return getPolicyValue( ID_ASSIGNMENT_POLICY_ID.value ) ==
- IdAssignmentPolicyValue._SYSTEM_ID;
- }
-
- /* Servant Rentention */
- public final boolean retainServants() {
- return getPolicyValue( SERVANT_RETENTION_POLICY_ID.value ) ==
- ServantRetentionPolicyValue._RETAIN;
- }
-
- /* Request Processing */
- public final boolean useActiveMapOnly() {
- return getPolicyValue( REQUEST_PROCESSING_POLICY_ID.value ) ==
- RequestProcessingPolicyValue._USE_ACTIVE_OBJECT_MAP_ONLY;
- }
- public final boolean useDefaultServant() {
- return getPolicyValue( REQUEST_PROCESSING_POLICY_ID.value ) ==
- RequestProcessingPolicyValue._USE_DEFAULT_SERVANT;
- }
- public final boolean useServantManager() {
- return getPolicyValue( REQUEST_PROCESSING_POLICY_ID.value ) ==
- RequestProcessingPolicyValue._USE_SERVANT_MANAGER;
- }
-
- /* Implicit Activation */
- public final boolean isImplicitlyActivated() {
- return getPolicyValue( IMPLICIT_ACTIVATION_POLICY_ID.value ) ==
- ImplicitActivationPolicyValue._IMPLICIT_ACTIVATION;
- }
-
- /* proprietary servant caching policy */
- public final int servantCachingLevel()
- {
- Integer key = new Integer( ORBConstants.SERVANT_CACHING_POLICY ) ;
- ServantCachingPolicy policy = (ServantCachingPolicy)policyMap.get( key ) ;
- if (policy == null)
- return ServantCachingPolicy.NO_SERVANT_CACHING ;
- else
- return policy.getType() ;
- }
-
- public final boolean forceZeroPort()
- {
- Integer key = new Integer( ORBConstants.ZERO_PORT_POLICY ) ;
- ZeroPortPolicy policy = (ZeroPortPolicy)policyMap.get( key ) ;
- if (policy == null)
- return false ;
- else
- return policy.forceZeroPort() ;
- }
-
- public final int getCopierId()
- {
- Integer key = new Integer( ORBConstants.COPY_OBJECT_POLICY ) ;
- CopyObjectPolicy policy = (CopyObjectPolicy)policyMap.get( key ) ;
- if (policy != null)
- return policy.getValue() ;
- else
- return defaultObjectCopierFactoryId ;
- }
-}