| | |
| | | import org.opends.server.types.SearchFilter; |
| | | import org.opends.server.types.SearchScope; |
| | | |
| | | import static org.opends.server.loggers.Debug.*; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugCought; |
| | | import static org.opends.server.loggers.debug.DebugLogger.debugEnabled; |
| | | import org.opends.server.types.DebugLogLevel; |
| | | import static org.opends.server.loggers.Error.*; |
| | | import static org.opends.server.messages.ExtensionsMessages.*; |
| | | import static org.opends.server.messages.MessageHandler.*; |
| | |
| | | public class StaticGroup |
| | | extends Group |
| | | { |
| | | /** |
| | | * The fully-qualified name of this class for debugging purposes. |
| | | */ |
| | | private static final String CLASS_NAME = |
| | | "org.opends.server.extensions.StaticGroup"; |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | super(); |
| | | |
| | | assert debugConstructor(CLASS_NAME); |
| | | |
| | | // No initialization is required here. |
| | | } |
| | |
| | | { |
| | | super(); |
| | | |
| | | assert debugConstructor(CLASS_NAME, String.valueOf(groupEntryDN), |
| | | String.valueOf(memberAttributeType), |
| | | String.valueOf(memberDNs)); |
| | | |
| | | ensureNotNull(groupEntryDN, memberAttributeType, memberDNs); |
| | | |
| | |
| | | public void initializeGroupImplementation(ConfigEntry configEntry) |
| | | throws ConfigException, InitializationException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "initializeGroupImplementation", |
| | | String.valueOf(configEntry)); |
| | | |
| | | // No additional initialization is required. |
| | | } |
| | |
| | | public StaticGroup newInstance(Entry groupEntry) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "newInstance", String.valueOf(groupEntry)); |
| | | |
| | | ensureNotNull(groupEntry); |
| | | |
| | |
| | | } |
| | | catch (DirectoryException de) |
| | | { |
| | | assert debugException(CLASS_NAME, "newInstance", de); |
| | | if (debugEnabled()) |
| | | { |
| | | debugCought(DebugLogLevel.ERROR, de); |
| | | } |
| | | |
| | | int msgID = MSGID_STATICGROUP_CANNOT_DECODE_MEMBER_VALUE_AS_DN; |
| | | String message = |
| | |
| | | public SearchFilter getGroupDefinitionFilter() |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getGroupDefinitionFilter"); |
| | | |
| | | // FIXME -- This needs to exclude enhanced groups once we have support for |
| | | // them. |
| | |
| | | @Override() |
| | | public boolean isGroupDefinition(Entry entry) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isGroupDefinition", String.valueOf(entry)); |
| | | ensureNotNull(entry); |
| | | |
| | | // FIXME -- This needs to exclude enhanced groups once we have support for |
| | |
| | | @Override() |
| | | public DN getGroupDN() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getGroupDN"); |
| | | |
| | | return groupEntryDN; |
| | | } |
| | |
| | | @Override() |
| | | public boolean supportsNestedGroups() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "supportsNestedGroups"); |
| | | |
| | | // FIXME -- We should add support for nested groups. |
| | | return false; |
| | |
| | | @Override() |
| | | public List<DN> getNestedGroupDNs() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getNestedGroupDNs"); |
| | | |
| | | // FIXME -- We should add support for nested groups. |
| | | return Collections.<DN>emptyList(); |
| | |
| | | public void addNestedGroup(DN nestedGroupDN) |
| | | throws UnsupportedOperationException, DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addNestedGroup", |
| | | String.valueOf(nestedGroupDN)); |
| | | |
| | | // FIXME -- We should add support for nested groups. |
| | | throw new UnsupportedOperationException(); |
| | |
| | | public void removeNestedGroup(DN nestedGroupDN) |
| | | throws UnsupportedOperationException, DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeNestedGroup", |
| | | String.valueOf(nestedGroupDN)); |
| | | |
| | | // FIXME -- We should add support for nested groups. |
| | | throw new UnsupportedOperationException(); |
| | |
| | | public boolean isMember(DN userDN) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isMember", String.valueOf(userDN)); |
| | | |
| | | return memberDNs.contains(userDN); |
| | | } |
| | |
| | | public boolean isMember(Entry userEntry) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "isMember", String.valueOf(userEntry)); |
| | | |
| | | return memberDNs.contains(userEntry.getDN()); |
| | | } |
| | |
| | | public MemberList getMembers() |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getMembers"); |
| | | |
| | | return new SimpleStaticGroupMemberList(groupEntryDN, memberDNs); |
| | | } |
| | |
| | | SearchFilter filter) |
| | | throws DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "getMembers", String.valueOf(baseDN), |
| | | String.valueOf(scope), String.valueOf(filter)); |
| | | |
| | | if ((baseDN == null) && (filter == null)) |
| | | { |
| | |
| | | @Override() |
| | | public boolean mayAlterMemberList() |
| | | { |
| | | assert debugEnter(CLASS_NAME, "mayAlterMemberList"); |
| | | |
| | | return true; |
| | | } |
| | |
| | | public void addMember(Entry userEntry) |
| | | throws UnsupportedOperationException, DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "addMember", String.valueOf(userEntry)); |
| | | |
| | | ensureNotNull(userEntry); |
| | | |
| | |
| | | public void removeMember(DN userDN) |
| | | throws UnsupportedOperationException, DirectoryException |
| | | { |
| | | assert debugEnter(CLASS_NAME, "removeMember", String.valueOf(userDN)); |
| | | |
| | | ensureNotNull(userDN); |
| | | |
| | |
| | | @Override() |
| | | public void toString(StringBuilder buffer) |
| | | { |
| | | assert debugEnter(CLASS_NAME, "toString", "java.lang.StringBuilder"); |
| | | |
| | | buffer.append("StaticGroup("); |
| | | buffer.append(groupEntryDN); |