public class SubjectDomainCombiner extends Object implements DomainCombiner
SubjectDomainCombiner updates ProtectionDomains
 with Principals from the Subject associated with this
 SubjectDomainCombiner.| Constructor and Description | 
|---|
| SubjectDomainCombiner(Subject subject)Associate the provided  Subjectwith thisSubjectDomainCombiner. | 
| Modifier and Type | Method and Description | 
|---|---|
| ProtectionDomain[] | combine(ProtectionDomain[] currentDomains,
       ProtectionDomain[] assignedDomains)Update the relevant ProtectionDomains with the Principals
 from the  Subjectassociated with thisSubjectDomainCombiner. | 
| Subject | getSubject()Get the  Subjectassociated with thisSubjectDomainCombiner. | 
public SubjectDomainCombiner(Subject subject)
Subject with this
 SubjectDomainCombiner.
 subject - the Subject to be associated with
          with this SubjectDomainCombiner.public Subject getSubject()
Subject associated with this
 SubjectDomainCombiner.
 Subject associated with this
          SubjectDomainCombiner, or null
          if no Subject is associated with this
          SubjectDomainCombiner.SecurityException - if the caller does not have permission
          to get the Subject associated with this
          SubjectDomainCombiner.public ProtectionDomain[] combine(ProtectionDomain[] currentDomains, ProtectionDomain[] assignedDomains)
Subject associated with this
 SubjectDomainCombiner.
  A new ProtectionDomain instance is created
 for each ProtectionDomain in the
 currentDomains array.  Each new ProtectionDomain
 instance is created using the CodeSource,
 Permissions and ClassLoader
 from the corresponding ProtectionDomain in
 currentDomains, as well as with the Principals from
 the Subject associated with this
 SubjectDomainCombiner.
 
All of the newly instantiated ProtectionDomains are combined into a new array. The ProtectionDomains from the assignedDomains array are appended to this new array, and the result is returned.
Note that optimizations such as the removal of duplicate ProtectionDomains may have occurred. In addition, caching of ProtectionDomains may be permitted.
combine in interface DomainCombinercurrentDomains - the ProtectionDomains associated with the
          current execution Thread, up to the most recent
          privileged ProtectionDomain.
          The ProtectionDomains are are listed in order of execution,
          with the most recently executing ProtectionDomain
          residing at the beginning of the array. This parameter may
          be null if the current execution Thread
          has no associated ProtectionDomains.assignedDomains - the ProtectionDomains inherited from the
          parent Thread, or the ProtectionDomains from the
          privileged context, if a call to
          AccessController.doPrivileged(..., context)
          had occurred  This parameter may be null
          if there were no ProtectionDomains inherited from the
          parent Thread, or from the privileged context.null. Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2011, Oracle and/or its affiliates.  All rights reserved.