INamespaceFactory
Namespace creation is a complex process. Therefore, a factory is used for this purpose, the namespace factory. This factory is registered as a service in the service registry.
Get the factory
The factory is fetched as a singleton from the service registry:
final INamespaceFactory nf = CServiceRegistry.getInstance() .getService(INamespaceFactory.class);
As always, make sure that the service starter of your package has a dependency on the INamespaceFactory to ensure that the factory already exists.
The creation of namespaces
To create a namespace, we need a namespace ID that has not yet been assigned and a short description of the new namespace.
@NotNull INamespace createAndRegisterNamespace(@NotNull IId aNID, @NotNull String aDescription) throws CException;
Example:
final IId nid = CIdFactory.fromObject("MyLovelyNamespace"); final INamespace ns = namespaceFactory.createAndRegisterNamespace(nid, "MyPlace");
By the way, if a namespace with this ID already exists, it will simply be returned.
The deletion of a namespace
There is likewise a method for deleting a namespace. In addition to the namespace, all threads, targets and nano services that belong to the namespace are also destroyed.
void deleteNamespace(@NotNull IId aNID) throws CException;
Fetching a namespace
You can also just fetch a namespace with the namespace factory.
If it does not exist, null
is returned.