DefaultOrganizationChartService.java
package org.silverpeas.components.organizationchart.service;
import org.silverpeas.components.organizationchart.model.OrganizationalChart;
import org.silverpeas.components.organizationchart.model.OrganizationalChartType;
import org.silverpeas.core.annotation.Service;
/**
* @author Yohann Chastagnier
*/
@Service
class DefaultOrganizationChartService implements OrganizationChartService {
@SuppressWarnings("UnnecessaryLocalVariable")
@Override
public OrganizationalChart getOrganizationChart(
final AbstractOrganizationChartConfiguration config, final String base,
final OrganizationalChartType type) {
final OrganizationalChart organizationalChart;
if (config instanceof LdapOrganizationChartConfiguration) {
// LDAP case
String baseOU = base;
organizationalChart =
LdapOrganizationChartBuilder.from((LdapOrganizationChartConfiguration) config)
.buildFor(baseOU, type);
} else if (config instanceof GroupOrganizationChartConfiguration) {
// GROUP case
String groupId = base;
organizationalChart =
GroupOrganizationChartBuilder.from((GroupOrganizationChartConfiguration) config)
.buildFor(groupId, type);
} else {
throw new UnsupportedOperationException();
}
return organizationalChart;
}
}