/** * 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; import org.apereo.portal.EntityIdentifier; import org.apereo.portal.IBasicEntity; import org.apereo.portal.spring.locator.EntityTypesLocator; /** * Reference implementation for <code>IEntity</code>. * */ public class EntityImpl extends GroupMemberImpl implements IEntity { protected EntityIdentifier entityIdentifier; /** EntityImpl constructor */ public EntityImpl(String newEntityKey, Class newEntityType) throws GroupsException { this(new EntityIdentifier(newEntityKey, newEntityType)); } /** EntityImpl constructor */ public EntityImpl(EntityIdentifier ei) throws GroupsException { super(ei); Integer id = EntityTypesLocator.getEntityTypes().getEntityIDFromType(ei.getType()); String key = id + "." + ei.getKey(); entityIdentifier = new EntityIdentifier(key, ICompositeGroupService.LEAF_ENTITY_TYPE); } /** @return org.apereo.portal.EntityIdentifier */ public EntityIdentifier getEntityIdentifier() { return entityIdentifier; } /** * Returns the key of the underlying entity. * * @return java.lang.String */ public java.lang.String getKey() { return getUnderlyingEntityIdentifier().getKey(); } /** * Returns the type of the underyling entity. * * @return java.lang.Class */ public Class<? extends IBasicEntity> getLeafType() { return getUnderlyingEntityIdentifier().getType(); } /** Returns this object's type, as opposed to the type of its underlying entity. */ public Class getType() { return getLeafType(); } /** * Returns a String that represents the value of this object. * * @return a string representation of the receiver */ public String toString() { String clsName = getLeafType().getName(); return "EntityImpl (" + clsName + ") " + getKey(); } }