The plug-in factory defines how Orchestrator finds objects in the plugged-in technology and performs operations on the objects.

To create the plug-in factory, you must implement and extend the IPluginFactory interface from the Orchestrator plug-in API. The plug-in factory class that you create defines the finder functions that Orchestrator uses to access objects in the plugged-in technology. The factory allows the Orchestrator server to find objects by their ID, by their relation to other objects, or by searching for a query string.

The plug-in factory performs the following principal tasks.

Finds objects
You can create functions that find objects according to their name and type. You find objects by name and type by using the IPluginFactory.find() method.
Finds objects related to other objects
You can create functions to find objects that relate to a given object by a given relation type. You define relations in the vso.xml file. You can also create finders to find dependent child objects that relate to all parents by a given relation type. You implement the IPluginFactory.findRelation() method to find any objects that are related to a given parent object by a given relation type. You implement the IPluginFactory.hasChildrenInRelation() method to discover whether at least one child object exists for a parent instance.
Define queries to find objects according to your own criteria
You can create object finders that implement query rules that you define. You implement the IPluginFactory.findAll() method to find all objects that satisfy query rules you define when the factory calls this method. You obtain the results of the findAll() method in a QueryResult object that contains a list of all of the objects found that match the query rules you define.

For more information about the IPluginFactory interface, all of its methods, and all of the other classes of the plug-in API, see Orchestrator Plug-In API Reference.