Package com.sun.identity.sm.flatfile
Class SMSEnhancedFlatFileObject
- java.lang.Object
-
- com.sun.identity.sm.SMSObject
-
- com.sun.identity.sm.SMSObjectDB
-
- com.sun.identity.sm.flatfile.SMSFlatFileObjectBase
-
- com.sun.identity.sm.flatfile.SMSEnhancedFlatFileObject
-
public class SMSEnhancedFlatFileObject extends SMSFlatFileObjectBase
This is an enhancement ofSMSEnhancedFlatFileObjectwhere we modified the implementation to avoid hitting the file name length limitation on Windows Operating System. Under the base directory of the datastore, there shall be a XML file, DirectoryTree.xml which contains information on the nodes ofnthe directory tree. The attribute properties on these nodes are also stored under the base directory. The name of this property file is the hash of the distinguished name of the node.
-
-
Field Summary
-
Fields inherited from class com.sun.identity.sm.flatfile.SMSFlatFileObjectBase
mDebug, mInitialized, mRootDir, mRootDirHandle, mRootDN, mRWLock
-
-
Constructor Summary
Constructors Constructor Description SMSEnhancedFlatFileObject()Constructor for SMSEnhancedFlatFileObject.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcreate(SSOToken token, String objName, Map attrs)Creates the configuration object.voiddelete(SSOToken token, String objName)Deletes the configuration object and all objects below it.protected voiddeleteSunXmlKeyValFiles(SMSFlatFileTreeNode node)Delete sunxmlkeyvalue files under the given node.voidderegisterCallbackHandler(String id)De-Register a listener.booleanentryExists(SSOToken token, String objName)Returnstureif the configuration object exists.protected SetgetSubEntries(String objName, String filter, String sidFilter, boolean isSubConfig, int numOfEntries, boolean sortResults, boolean ascendingOrder)Real routine to get sub entries, used by subEntries() and schemaSubEntries().voidmodify(SSOToken token, String objName, ModificationItem[] mods)Modifies the attributes for the given configuration object.Mapread(SSOToken token, String objName)Reads in attributes of a configuration object.StringregisterCallbackHandler(SSOToken token, SMSObjectListener changeListener)Register a listener.StringtoString()-
Methods inherited from class com.sun.identity.sm.flatfile.SMSFlatFileObjectBase
decodeVal, encodeVal, initialize, loadProperties, modifyValues, saveProperties, schemaSubEntries, search, search, searchOrganizationNames, searchSubOrgNames, subEntries, toValSet, toValString, toValString
-
Methods inherited from class com.sun.identity.sm.SMSObjectDB
getAMSdkBaseDN, getRootSuffix
-
Methods inherited from class com.sun.identity.sm.SMSObject
cacheResults, debug, getAttributeNames, getNamingAttribute, getOrgNamingAttribute, getSearchFilter, getServiceIdSearchFilter, initialize, registerCallbackHandler, shutdown
-
-
-
-
Constructor Detail
-
SMSEnhancedFlatFileObject
public SMSEnhancedFlatFileObject() throws SMSExceptionConstructor for SMSEnhancedFlatFileObject.- Throws:
SMSException
-
-
Method Detail
-
getSubEntries
protected Set getSubEntries(String objName, String filter, String sidFilter, boolean isSubConfig, int numOfEntries, boolean sortResults, boolean ascendingOrder) throws SMSException
Real routine to get sub entries, used by subEntries() and schemaSubEntries().- Specified by:
getSubEntriesin classSMSFlatFileObjectBase- Throws:
ServiceNotFoundException- if the configuration object is not found.SchemaException- if a sub directory name is not in the expected "ou=..." format.ServiceNotFoundException- if the configuration object is not found.SchemaException- if a sub directory name is not in the expected "ou=..." format.SMSException
-
read
public Map read(SSOToken token, String objName) throws SMSException, SSOException
Reads in attributes of a configuration object.- Specified by:
readin classSMSObject- Parameters:
token- Ignored argument. Access check is assumed to have occurred before reaching this method.objName- Name of the configuration object, expected to be a dn.- Returns:
- A Map with the coniguration object's attributes or null if the configuration object does not exist or no attributes are found.
- Throws:
SMSException- if an IO error occurred during the read.SchemaException- if a format error occurred while reading the attributes properties file.IllegalArgumentException- if objName argument is null or empty.SSOException
-
create
public void create(SSOToken token, String objName, Map attrs) throws SMSException, SSOException
Creates the configuration object. Creates the directory for the object and the attributes properties file with the given attributes.- Specified by:
createin classSMSObject- Parameters:
token- Ignored argument. Access check is assumed to have occurred before reaching this method.objName- Name of the configuration object to create. Name is expected to be a dn.attrs- Map of attributes for the object.- Throws:
IllegalArgumentException- if the objName or attrs argument is null or empty.ServiceAlreadyExistsException- if the configuration object already exists.SMSException- if an IO error occurred while creating the configuration object.SSOException
-
modify
public void modify(SSOToken token, String objName, ModificationItem[] mods) throws SMSException, SSOException
Modifies the attributes for the given configuration object.- Specified by:
modifyin classSMSObject- Parameters:
token- Ignored argument. Access check is assumed to have occurred before reaching this method.objName- Name of the configuration object to modify. Name is expected to be a dn.mods- Array of attributes to modify.- Throws:
IllegalArgumentException- if objName or mods argument is null or empty, or if an error was encountered getting attributes from the mods argument.ServiceNotFoundException- if the attributes properties file for the configuration object is not found.SchemaException- if a format error occurred while reading in the existing attributes properties file.SMSException- if an IO error occurred while reading or writing to the attributes properties file.SSOException
-
delete
public void delete(SSOToken token, String objName) throws SMSException, SSOException
Deletes the configuration object and all objects below it.- Specified by:
deletein classSMSObject- Parameters:
token- Ignored argument. Access check is assumed to have occurred before reaching this method.objName- Name of the configuration object to delete. Name is expected to be a dn.- Throws:
IllegalArgumentException- if objName argument is null or empty.SMSException- if any files for or under the configuration object could not be removed.SSOException
-
entryExists
public boolean entryExists(SSOToken token, String objName)
Returnstureif the configuration object exists.- Specified by:
entryExistsin classSMSObject- Parameters:
token- Ignored argument. Access check is assumed to have occurred before reaching this method.objName- Name of the configuration object to check.- Returns:
true>/code> if the configuration object exists.- Throws:
IllegalArgumentException- if objName is null or empty.
-
toString
public String toString()
-
deleteSunXmlKeyValFiles
protected void deleteSunXmlKeyValFiles(SMSFlatFileTreeNode node) throws SMSException
Delete sunxmlkeyvalue files under the given node.- Throws:
SMSException
-
registerCallbackHandler
public String registerCallbackHandler(SSOToken token, SMSObjectListener changeListener) throws SMSException, SSOException
Register a listener.- Overrides:
registerCallbackHandlerin classSMSFlatFileObjectBase- Throws:
SMSExceptionSSOException
-
deregisterCallbackHandler
public void deregisterCallbackHandler(String id)
De-Register a listener.- Overrides:
deregisterCallbackHandlerin classSMSFlatFileObjectBase
-
-