A RecordFolder object represents a container or collection of related records. It is used to manage records according to the specified retention and disposition periods and events.
You can create multiple record folders in a record category. However, you can create a record folder only within a record category that does not contain a record category. You can subclass the RecordFolder class as Physical Record Folder, Electronic Record Folder, Hybrid Record Folder , and Physical Container to manage electronic and physical records. These subclasses are described in the following list:
To create a RecordFolder object, you call the addRecordFolder method on an RMRecordFolderContainer object. By default, the addRecordFolder method creates an electronic record folder.
//Creates a RecordFolder object
public void createDefaultRecordFolder(String asName, Properties aoProps, Permissions aoACLs,
RecordCategory aoParentRC)
{
RecordFolder loRF = aoParentRC.addRecordFolder(asName, aoProps, aoACLs);
}
//Creates a specific type of RecordFolder object
public void createSpecificRecordFolder(String asName, String asClassId, Properties aoProps,
Permissions aoACLs, RecordCategory aoParentRC)
{
RecordFolder loRF = aoParentRC.addRecordFolder(asName, asClassId, aoProps, aoACLs);
}
// Get the class ID of physical record folder
public String getRMTypeClassId(RMObjectStore aoRMOS)
{
String lsClassId = new RMUtil().getClassIDs( aoRMOS,
new int[]{RMType.RM_TYPE_PHYSICALRECORDFOLDER},
false)[0];
return lsClassId;
}
You can retrieve RecordFolder objects in the following ways:
//Retrieves a RecordFolder object
public RecordFolder getRecordFolder( RMObjectStore aoRMOS, String asRFGUID)
{
RecordFolder loRF = (RecordFolder)aoRMOS.getObject(RMType.RM_TYPE_RECORDFOLDER,
asRFGUID);
return loRF;
}
//Retrieves a RecordFolder object
public RecordFolder getRecordFolder1(RMObjectStore aoRMOS, String asRCGUID)
{
Folder loFolder = (Folder)aoRMOS.getObject( BaseObject.TYPE_FOLDER, asRCGUID);
RecordFolder loRF = aoRMOS.getRecordFolderInterface(loFolder);
return loRF;
}
//Retrieves RecordFolder objects
public RecordFolders getRecordFolders(RecordCategory aoRC)
{
RecordFolders loRFs = (RecordFolders)aoRC.getContainees( new int[]{RMType.RM_TYPE_RECORDFOLDER});
return loRFs;
}
//Retrieves RecordFolder objects
public RecordFolders getRecordFolders(RMObjectStore aoRMOS, RecordInfo aoRecord)
{
RecordFolders loRFs = aoRecord.getParentRecordFolders();
return loRFs;
}
//Retrieves RecordFolder objects
public RecordFolder getRecordFolder(Volume aoVol)
{
RecordFolder loRF = (RecordFolder)aoVol.getParentFolder();
// where aoVol is an object of Volume, which is directly contained in a RecordFolder object
return loRF;
}
//Retrieves RecordFolder objects
public RMObjects getContainers1(RMObjectStore aoRMOS, RecordInfo aoRecord)
{
Folders loObjs = aoRecord.getContainers();
RMObjects loRFs = aoRMOS.getRMObjects();
Iterator loIterator = loObjs.iterator();
while (loIterator.hasNext())
{
Folder loFolder = (Folder)loIterator.next();
if (loFolder instanceof RecordFolder)
{
loRFs.add(loFolder);
}
}
return loRFs;
}