package com.parse;

import android.os.Parcel;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

/* JADX INFO: loaded from: classes.dex */
public class ParseRemoveOperation implements ParseFieldOperation {
    public final HashSet<Object> objects;

    public ParseRemoveOperation(Collection<?> collection) {
        HashSet<Object> hashSet = new HashSet<>();
        this.objects = hashSet;
        hashSet.addAll(collection);
    }

    @Override // com.parse.ParseFieldOperation
    public Object apply(Object obj, String str) {
        if (obj == null) {
            return new ArrayList();
        }
        if (obj instanceof JSONArray) {
            return new JSONArray((Collection) apply(ParseFieldOperations.jsonArrayAsArrayList((JSONArray) obj), str));
        }
        if (!(obj instanceof List)) {
            throw new IllegalArgumentException("Operation is invalid after previous operation.");
        }
        ArrayList arrayList = new ArrayList((List) obj);
        arrayList.removeAll(this.objects);
        ArrayList arrayList2 = new ArrayList(this.objects);
        arrayList2.removeAll(arrayList);
        HashSet hashSet = new HashSet();
        for (Object obj2 : arrayList2) {
            if (obj2 instanceof ParseObject) {
                hashSet.add(((ParseObject) obj2).getObjectId());
            }
        }
        Iterator it = arrayList.iterator();
        while (it.hasNext()) {
            Object next = it.next();
            if ((next instanceof ParseObject) && hashSet.contains(((ParseObject) next).getObjectId())) {
                it.remove();
            }
        }
        return arrayList;
    }

    @Override // com.parse.ParseFieldOperation
    public Object encode(ParseEncoder parseEncoder) throws JSONException {
        JSONObject jSONObject = new JSONObject();
        jSONObject.put("__op", "Remove");
        jSONObject.put("objects", parseEncoder.encode(new ArrayList(this.objects)));
        return jSONObject;
    }

    @Override // com.parse.ParseFieldOperation
    public void encode(Parcel parcel, ParseParcelEncoder parseParcelEncoder) {
        parcel.writeString("Remove");
        parcel.writeInt(this.objects.size());
        Iterator<Object> it = this.objects.iterator();
        while (it.hasNext()) {
            parseParcelEncoder.encode(it.next(), parcel);
        }
    }

    @Override // com.parse.ParseFieldOperation
    public ParseFieldOperation mergeWithPrevious(ParseFieldOperation parseFieldOperation) {
        if (parseFieldOperation == null) {
            return this;
        }
        if (parseFieldOperation instanceof ParseDeleteOperation) {
            return new ParseSetOperation(this.objects);
        }
        if (parseFieldOperation instanceof ParseSetOperation) {
            Object obj = ((ParseSetOperation) parseFieldOperation).value;
            if ((obj instanceof JSONArray) || (obj instanceof List)) {
                return new ParseSetOperation(apply(obj, null));
            }
            throw new IllegalArgumentException("You can only add an item to a List or JSONArray.");
        }
        if (!(parseFieldOperation instanceof ParseRemoveOperation)) {
            throw new IllegalArgumentException("Operation is invalid after previous operation.");
        }
        HashSet hashSet = new HashSet(((ParseRemoveOperation) parseFieldOperation).objects);
        hashSet.addAll(this.objects);
        return new ParseRemoveOperation(hashSet);
    }
}
