package com.hwlcn.ldap.ldap.sdk.migrate.ldapjdk;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Iterator;
import com.hwlcn.core.annotation.Mutable;
import com.hwlcn.core.annotation.NotExtensible;
import com.hwlcn.core.annotation.ThreadSafety;
import com.hwlcn.ldap.util.ThreadSafetyLevel;
@NotExtensible()
@Mutable()
@ThreadSafety(level=ThreadSafetyLevel.NOT_THREADSAFE)
public class LDAPModificationSet
implements Serializable
{
private static final long serialVersionUID = -1789929614205832665L;
private final ArrayList<LDAPModification> mods;
public LDAPModificationSet()
{
mods = new ArrayList<LDAPModification>(1);
}
public void add(final int op, final LDAPAttribute attr)
{
mods.add(new LDAPModification(op, attr));
}
public LDAPModification elementAt(final int index)
throws IndexOutOfBoundsException
{
return mods.get(index);
}
public void removeElementAt(final int index)
throws IndexOutOfBoundsException
{
mods.remove(index);
}
public void remove(final String name)
{
final Iterator<LDAPModification> iterator = mods.iterator();
while (iterator.hasNext())
{
final LDAPModification mod = iterator.next();
if (mod.getAttribute().getName().equalsIgnoreCase(name))
{
iterator.remove();
return;
}
}
}
public int size()
{
return mods.size();
}
public LDAPModification[] toArray()
{
final LDAPModification[] modArray = new LDAPModification[mods.size()];
return mods.toArray(modArray);
}
@Override()
public String toString()
{
return mods.toString();
}
}