/*******************************************************************************
* Copyright (c) 2012-2013 RelationWare, Benno Luthiger
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* RelationWare, Benno Luthiger
******************************************************************************/
package org.ripla.web.internal.services;
import org.osgi.service.useradmin.UserAdmin;
import org.ripla.services.IExtendibleMenuContribution;
import org.ripla.services.IPermissionEntry;
import org.ripla.web.services.IUseCase;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* The service component consuming the <code>IUseCase</code> implementations.
*
* @author Luthiger
*/
public class UseCaseComponent { // NOPMD
private static final Logger LOG = LoggerFactory
.getLogger(UseCaseComponent.class);
/**
* Registers the specified use case.
*
* @param inUseCase
* {@link IUseCase}
*/
public void addUseCase(final IUseCase inUseCase) {
LOG.debug("Added use case {}.", inUseCase);
UseCaseRegistry.INSTANCE.addUseCase(inUseCase);
}
/**
* Unregisters the specified use case.
*
* @param inUseCase
* {@link IUseCase}
*/
public void removeUseCase(final IUseCase inUseCase) {
LOG.debug("Removed use case {}.", inUseCase);
UseCaseRegistry.INSTANCE.removeUseCase(inUseCase);
}
/**
* Registers the contribution to an extendible menu.
*
* @param inMenuContribution
* {@link IExtendibleMenuContribution}
*/
public void registerMenuContribution(
final IExtendibleMenuContribution inMenuContribution) {
LOG.debug("Registered extendible menu contribution '{}'.",
inMenuContribution.getExtendibleMenuID());
UseCaseRegistry.INSTANCE.registerMenuContribution(inMenuContribution);
}
/**
* Unregisters the contribution of an extendible menu.
*
* @param inMenuContribution
* {@link IExtendibleMenuContribution}
*/
public void unregisterMenuContribution(
final IExtendibleMenuContribution inMenuContribution) {
LOG.debug("Unregistered extendible menu contribution '{}'.",
inMenuContribution.getExtendibleMenuID());
UseCaseRegistry.INSTANCE.unregisterMenuContribution(inMenuContribution);
}
/**
* Injects the user admin.
*
* @param inUserAdmin
* {@link UserAdmin}
*/
public void setUserAdmin(final UserAdmin inUserAdmin) {
UseCaseRegistry.INSTANCE.setUserAdmin(inUserAdmin);
LOG.debug("The OSGi user admin service is made available.");
}
/**
* Unbinds the user admin.
*
* @param inUserAdmin
* {@link UserAdmin}
*/
public void unsetUserAdmin(final UserAdmin inUserAdmin) {
UseCaseRegistry.INSTANCE.setUserAdmin(null);
LOG.debug("Removed the OSGi user admin service.");
}
/**
* Injects a permission entry.
*
* @param inPermission
* {@link IPermissionEntry}
*/
public void registerPermission(final IPermissionEntry inPermission) {
LOG.debug("Registered permission '{}'.",
inPermission.getPermissionName());
UseCaseRegistry.INSTANCE.getPermissionHelper().addPermission(
inPermission);
}
/**
* Unbinds the permission entry.
*
* @param inPermission
* {@link IPermissionEntry}
*/
public void unregisterPermission(final IPermissionEntry inPermission) {
LOG.debug("Unregistered permission '{}'.",
inPermission.getPermissionName());
UseCaseRegistry.INSTANCE.getPermissionHelper().removePermission(
inPermission);
}
}