/* See LICENSE for licensing and NOTICE for copyright. */ package org.ldaptive.control; import org.ldaptive.LdapUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Base class for ldap controls. * * @author Middleware Services */ public abstract class AbstractControl implements Control { /** Logger for this class. */ protected final Logger logger = LoggerFactory.getLogger(getClass()); /** control oid. */ private final String oid; /** is control critical. */ private final boolean criticality; /** * Creates a new abstract control. * * @param id OID of this control */ public AbstractControl(final String id) { oid = id; criticality = false; } /** * Creates a new abstract control. * * @param id OID of this control * @param b whether this control is critical */ public AbstractControl(final String id, final boolean b) { oid = id; criticality = b; } @Override public String getOID() { return oid; } @Override public boolean getCriticality() { return criticality; } @Override public boolean equals(final Object o) { if (o == this) { return true; } if (o instanceof AbstractControl) { final AbstractControl v = (AbstractControl) o; return LdapUtils.areEqual(getOID(), v.getOID()) && LdapUtils.areEqual(getCriticality(), v.getCriticality()); } return false; } /** * Returns the hash code for this object. * * @return hash code */ @Override public abstract int hashCode(); }