@Override
    public boolean equals(final Object obj) {
        if (obj == this) {
            return true;
        }

        if (!(obj instanceof BeanKey)) {
            return false;
        }

        final BeanKey beanKey = (BeanKey) obj;

        if (beanType.equals(beanKey.getBeanType())) {
            if (qualifier == null && beanKey.getQualifier() == null) {
                return true;
            }

            else if (qualifier != null && qualifier.equalsIgnoreCase(beanKey.getQualifier())) {
                return true;
            }

        }

        return false;
    }