Class CredentialHandlerFactory
- java.lang.Object
-
- edu.isi.pegasus.common.credential.CredentialHandlerFactory
-
public class CredentialHandlerFactory extends java.lang.ObjectA factory class to load the appropriate type of Condor Style impelementations. This factory class is different from other factories, in the sense that it must be instantiated first and intialized first before calling out to any of the Factory methods.- Version:
- $Revision$
- Author:
- Karan Vahi
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringDEFAULT_PACKAGE_NAMEThe default package where the all the implementing classes are supposed to reside.private static java.lang.StringIRODS_IMPLEMENTING_CLASSprivate PegasusBagmBagHandle to the PegasusBagprivate static java.util.MapmImplementingClassNameTableA table that maps, Pegasus style keys to the names of the corresponding classes implementing the CondorStyle interface.private java.util.Map<CredentialHandler.TYPE,CredentialHandler>mImplementingClassTableA table that maps, Pegasus style keys to appropriate classes implementing the CredentialHandler interfaceprivate booleanmInitializedA boolean indicating that the factory has been initialized.private static java.lang.StringS3_IMPLEMENTING_CLASSprivate static java.lang.StringSSH_IMPLEMENTING_CLASSprivate static java.lang.StringX509_IMPLEMENTING_CLASSThe name of the class implementing the x509 credentials
-
Constructor Summary
Constructors Constructor Description CredentialHandlerFactory()The default constructor.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.lang.Objectget(CredentialHandler.TYPE type)Returns the implementation from the implementing class table.private static java.util.Map<CredentialHandler.TYPE,java.lang.String>implementingClassNameTable()Returns a table that maps, the credential types to the implementing classes.voidinitialize(PegasusBag bag)Initializes the Factory.CredentialHandlerloadInstance(CredentialHandler.TYPE type)This method loads the appropriate implementing CondorStyle as specified by the user at runtime.private CredentialHandlerloadInstance(PegasusBag bag, java.lang.String className)This method loads the appropriate CredentialHandler using reflection.private voidput(CredentialHandler.TYPE type, CredentialHandler implementation)Inserts an entry into the implementing class table.
-
-
-
Field Detail
-
DEFAULT_PACKAGE_NAME
public static final java.lang.String DEFAULT_PACKAGE_NAME
The default package where the all the implementing classes are supposed to reside.- See Also:
- Constant Field Values
-
X509_IMPLEMENTING_CLASS
private static final java.lang.String X509_IMPLEMENTING_CLASS
The name of the class implementing the x509 credentials- See Also:
- Constant Field Values
-
IRODS_IMPLEMENTING_CLASS
private static final java.lang.String IRODS_IMPLEMENTING_CLASS
- See Also:
- Constant Field Values
-
S3_IMPLEMENTING_CLASS
private static final java.lang.String S3_IMPLEMENTING_CLASS
- See Also:
- Constant Field Values
-
SSH_IMPLEMENTING_CLASS
private static final java.lang.String SSH_IMPLEMENTING_CLASS
- See Also:
- Constant Field Values
-
mImplementingClassNameTable
private static java.util.Map mImplementingClassNameTable
A table that maps, Pegasus style keys to the names of the corresponding classes implementing the CondorStyle interface.
-
mImplementingClassTable
private java.util.Map<CredentialHandler.TYPE,CredentialHandler> mImplementingClassTable
A table that maps, Pegasus style keys to appropriate classes implementing the CredentialHandler interface
-
mInitialized
private boolean mInitialized
A boolean indicating that the factory has been initialized.
-
mBag
private PegasusBag mBag
Handle to the PegasusBag
-
-
Method Detail
-
implementingClassNameTable
private static java.util.Map<CredentialHandler.TYPE,java.lang.String> implementingClassNameTable()
Returns a table that maps, the credential types to the implementing classes.- Returns:
- a Map indexed by Pegasus styles, and values as names of implementing classes.
-
initialize
public void initialize(PegasusBag bag) throws CredentialHandlerFactoryException
Initializes the Factory. Loads all the implementations just once.- Parameters:
bag- the bag of initialization objects- Throws:
CredentialHandlerFactoryException- that nests any error that might occur during the instantiation of the implementation.
-
loadInstance
public CredentialHandler loadInstance(CredentialHandler.TYPE type) throws CredentialHandlerFactoryException
This method loads the appropriate implementing CondorStyle as specified by the user at runtime. The CondorStyle is initialized and returned.- Parameters:
type- the credential type that needs to be loaded.- Throws:
CredentialHandlerFactoryException- that nests any error that might occur during the instantiation of the implementation.
-
loadInstance
private CredentialHandler loadInstance(PegasusBag bag, java.lang.String className) throws CredentialHandlerFactoryException
This method loads the appropriate CredentialHandler using reflection.- Parameters:
bag- the bag of initialization objectsclassName- the name of the implementing class.- Returns:
- the instance of the class implementing this interface.
- Throws:
CredentialHandlerFactoryException- that nests any error that might occur during the instantiation of the implementation.- See Also:
DEFAULT_PACKAGE_NAME
-
get
private java.lang.Object get(CredentialHandler.TYPE type)
Returns the implementation from the implementing class table.- Parameters:
type- the credential handler type- Returns:
- implementation the class implementing that style, else null
-
put
private void put(CredentialHandler.TYPE type, CredentialHandler implementation)
Inserts an entry into the implementing class table.- Parameters:
type- the credential handler typeimplementation- the class implementing that style.
-
-