/** * Licensed to Apereo under one or more contributor license agreements. See the NOTICE file * distributed with this work for additional information regarding copyright ownership. Apereo * licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use * this file except in compliance with the License. You may obtain a copy of the License at the * following location: * * <p>http://www.apache.org/licenses/LICENSE-2.0 * * <p>Unless required by applicable law or agreed to in writing, software distributed under the * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing permissions and * limitations under the License. */ package org.apereo.portal.groups.grouper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apereo.portal.groups.ComponentGroupServiceDescriptor; import org.apereo.portal.groups.GroupsException; import org.apereo.portal.groups.IEntityGroupStore; import org.apereo.portal.groups.IEntityGroupStoreFactory; /** * Returns an instance of the Grouper entity group store. * */ public class GrouperEntityGroupStoreFactory implements IEntityGroupStoreFactory { /** Logger. */ private static final Log LOGGER = LogFactory.getLog(GrouperEntityGroupStoreFactory.class); private static IEntityGroupStore groupStore; /** * returns the instance of GrouperEntityGroupStore. * * @return The instance. * @throws GroupsException if there is an error * @see IEntityGroupStoreFactory #newGroupStore() */ public static synchronized IEntityGroupStore getGroupStore() { if (groupStore == null) { groupStore = new GrouperEntityGroupStore(); } if (LOGGER.isDebugEnabled()) { LOGGER.debug("returning IEntityGroupStore: " + groupStore); } return groupStore; } /** * returns the instance of GrouperEntityGroupStore. * * @return The instance. * @throws GroupsException if there is an error * @see IEntityGroupStoreFactory #newGroupStore() */ public IEntityGroupStore newGroupStore() throws GroupsException { if (LOGGER.isDebugEnabled()) { LOGGER.debug("Creating New Grouper IEntityGroupStore"); } return getGroupStore(); } /** * Construction with parameters. * * @param svcDescriptor The parameters. * @return The instance. * @throws GroupsException if there is an error * @see IEntityGroupStoreFactory * #newGroupStore(org.apereo.portal.groups.ComponentGroupServiceDescriptor) */ public IEntityGroupStore newGroupStore(ComponentGroupServiceDescriptor svcDescriptor) throws GroupsException { if (LOGGER.isDebugEnabled()) { LOGGER.debug("Creating New Grouper IEntityGroupStore"); } return getGroupStore(); } }