@Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() == obj.getClass()) {
            final IndirectObject other = (IndirectObject) obj;
            return Objects.equals(this._object, other._object);
        }
        if (obj.getClass() == DirectObject.class) {
            final DirectObject other = (DirectObject) obj;
            return Objects.equals(this._object, other);
        }
        return false;
    }