/* See LICENSE for licensing and NOTICE for copyright. */ package org.ldaptive.ad; import java.util.Collection; import org.ldaptive.LdapAttribute; import org.ldaptive.SortBehavior; import org.ldaptive.ad.io.UnicodePwdValueTranscoder; /** * Helper class for the active directory unicodePwd attribute. Configures a binary attribute of that name and allows * setting of the attribute value using a string. See {@link UnicodePwdValueTranscoder}. * * @author Middleware Services */ public class UnicodePwdAttribute extends LdapAttribute { /** serial version uid. */ private static final long serialVersionUID = -6140237711183070669L; /** name of this attribute. */ private static final String ATTR_NAME = "unicodePwd"; /** transcoder used when adding string values. */ private static final UnicodePwdValueTranscoder TRANSCODER = new UnicodePwdValueTranscoder(); /** Default constructor. */ public UnicodePwdAttribute() { super(SortBehavior.UNORDERED, true); setName(ATTR_NAME); } /** * Creates a new unicode pwd attribute. * * @param values of this attribute */ public UnicodePwdAttribute(final String... values) { this(); addStringValue(values); } @Override public Collection<String> getStringValues() { return getValues(TRANSCODER); } @Override public void addStringValue(final String... value) { for (String s : value) { addValue(TRANSCODER, value); } } @Override public void removeStringValue(final String... value) { for (String s : value) { removeBinaryValue(TRANSCODER.encodeBinaryValue(s)); } } }