IBM FileNet P8, Version 5.2.1            

Working with Classes

The following Java™ and C# code examples demonstrate operations that use class-related objects.

Retrieving a ClassDescription Object

The following code example demonstrates how to find a specific ClassDescription object in an object store:

Java Example

System.out.println("Type the symbolic name of the class description to retrieve:");
InputStreamReader converter = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(converter);
String strSymbolicName = in.readLine();

// Fetch selected class description from the server
ClassDescription objClassDesc = Factory.ClassDescription.fetchInstance(objObjectStore, strSymbolicName, null);

System.out.println("Class description selected: " + objClassDesc.get_SymbolicName());
System.out.println(objClassDesc);

C# Example

Console.WriteLine("Type the symbolic name of the class description to retrieve:");
String strSymbolicName = Console.ReadLine();

// Fetch selected class description from the server
IClassDescription objClassDesc = Factory.ClassDescription.FetchInstance(objObjectStore, strSymbolicName, null);

Console.WriteLine("Class description selected: " + objClassDesc.SymbolicName);
Console.WriteLine(objClassDesc);
Console.WriteLine("Press any key to end");
Console.ReadLine();

Retrieving a ClassDefinition Object

The following code example demonstrates how to find a specific ClassDefinition object in an object store:

Java Example

System.out.println("Type the symbolic name of the class definition to retrieve:");
InputStreamReader converter = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(converter);
String strSymbolicName = in.readLine();

// Fetch selected class definition from the server
ClassDefinition objClassDef = Factory.ClassDefinition.fetchInstance(objObjectStore, strSymbolicName, null);     

System.out.println("Class definition selected: " + objClassDef.get_SymbolicName());
System.out.println(objClassDef);

C# Example

Console.WriteLine("Type the symbolic name of the class definition to retrieve:");
String strSymbolicName = Console.ReadLine();

// Fetch selected class definition from the server
IClassDefinition objClassDef = Factory.ClassDefinition.FetchInstance(objObjectStore, strSymbolicName, null);

Console.WriteLine("Class definition selected: " + objClassDef.SymbolicName);
Console.WriteLine(objClassDef);
Console.WriteLine("Press any key to end");
Console.ReadLine();

Creating a Subclass, Creating an Object Instance, and Changing an Object's Class

The following code example demonstrates how to create a Folder subclass, create an object instance of that class, and change the object's class:

Java Example

InputStreamReader converter = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(converter);

String strSymbolicName = "Folder";

// Fetch selected class definition from the server
ClassDefinition objClassDef = Factory.ClassDefinition.fetchInstance(objObjectStore, strSymbolicName, null);
   
System.out.println("Class definition selected: " + objClassDef.get_Name());
System.out.println("Type the name to assign to the new subclass:");
String strSubclassName = in.readLine();

// Create subclass of the Folder class
ClassDefinition objClassDefNew = objClassDef.createSubclass();

// Set up locale
LocalizedString objLocStr = Factory.LocalizedString.createInstance();
objLocStr.set_LocalizedText(strSubclassName);
objLocStr.set_LocaleName(objObjectStore.get_LocaleName());

// Create LocalizedStringList collection
objClassDefNew.set_DisplayNames(Factory.LocalizedString.createList());
objClassDefNew.get_DisplayNames().add(objLocStr);

// Save new class definition to the server
objClassDefNew.save(RefreshMode.REFRESH);            
System.out.println("New class definition created: " + objClassDefNew.get_Name());       
System.out.println(objClassDefNew);          

// Create new object instance, set its required properties, and save it to the server
System.out.println("Type the FolderName property value to assign to the folder object instantiated from the new subclass:");
String strFolderName = in.readLine();  
Folder objFolder = Factory.Folder.createInstance(objObjectStore, objClassDefNew.get_SymbolicName());
objFolder.set_FolderName(strFolderName);
objFolder.set_Parent(objObjectStore.get_RootFolder());    
objFolder.save(RefreshMode.REFRESH);
System.out.println("Class of new object: " + objFolder.getClassName());      
System.out.println("Name of new object: " + objFolder.get_Name());      
System.out.println(objFolder);   

// Change the class of the folder object to the Folder class
objFolder.changeClass("Folder");
objFolder.save(RefreshMode.REFRESH);    
System.out.println("Object's new class: " + objFolder.getClassName());

C# Example

String strSymbolicName = "Folder";

// Fetch selected class definition from the server
IClassDefinition objClassDef = Factory.ClassDefinition.FetchInstance(objObjectStore, strSymbolicName, null);

Console.WriteLine("Class definition selected: " + objClassDef.Name);
Console.WriteLine("Type the name to assign to the new subclass:");
String strSubclassName = Console.ReadLine();    

// Create subclass of the Folder class
IClassDefinition objClassDefNew = objClassDef.CreateSubclass();

// Set up locale
ILocalizedString objLocStr = Factory.LocalizedString.CreateInstance();
objLocStr.LocalizedText = strSubclassName;
objLocStr.LocaleName = objObjectStore.LocaleName;

// Create LocalizedStringList collection
objClassDefNew.DisplayNames = Factory.LocalizedString.CreateList();
objClassDefNew.DisplayNames.Add(objLocStr);

// Save new class definition to the server
objClassDefNew.Save(RefreshMode.REFRESH);      
Console.WriteLine("New class definition created: " + objClassDefNew.Name);
Console.WriteLine(objClassDefNew);      

// Create new object instance, set its required properties, and save it to the server
Console.WriteLine("Type the FolderName property value to assign to a folder object instantiated from the new subclass:");
String strFolderName = Console.ReadLine(); 
IFolder objFolder = Factory.Folder.CreateInstance(objObjectStore, objClassDefNew.SymbolicName);
objFolder.FolderName = strFolderName;
objFolder.Parent = objObjectStore.RootFolder;     
objFolder.Save(RefreshMode.REFRESH);
Console.WriteLine("Class of new object: " + objFolder.GetClassName());      
Console.WriteLine("Name of new object: " + objFolder.Name);     
Console.WriteLine(objFolder);    

// Change the class of the folder object to the Folder class
objFolder.ChangeClass("Folder");
objFolder.Save(RefreshMode.REFRESH);  
  
Console.WriteLine("Object's new class: " + objFolder.GetClassName()); 
Console.WriteLine("Press any key to end");
Console.ReadLine();                  


Last updated: October 2015
class_procedures.htm

© Copyright IBM Corporation 2015.