All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.bronto.api.operation.MailListOperations Maven / Gradle / Ivy

The newest version!
package com.bronto.api.operation;

import java.util.Arrays;
import java.util.List;

import com.bronto.api.BrontoApi;
import com.bronto.api.model.AddToList;
import com.bronto.api.model.ContactObject;
import com.bronto.api.model.MailListObject;
import com.bronto.api.model.RemoveFromList;
import com.bronto.api.model.WriteResult;
import com.bronto.api.reflect.ApiReflection;

public class MailListOperations extends AbstractObjectOperations {

    public MailListOperations(BrontoApi client) {
        super(MailListObject.class, client);
    }

    @Override
    public ApiReflection getSupportedWriteOperations() {
        return new ApiReflection("lists",
            "add",
            "update",
            "delete",
            "clear",
            "class:" + AddToList.class.getSimpleName(),
            "class:" + RemoveFromList.class.getSimpleName()) {
            @Override
            protected String getListMethodForName(String name) {
                if (name.equals("clear")) {
                    return "getList";
                } else {
                    return super.getListMethodForName(name);
                }
            }
        };
    }

    public RemoveFromList createRemoveCall(MailListObject list, List contacts) {
        RemoveFromList removeFromList = new RemoveFromList();
        removeFromList.setList(list);
        removeFromList.getContacts().addAll(contacts);
        return removeFromList;
    }

    public AddToList createAddCall(MailListObject list, List contacts) {
        AddToList addToList = new AddToList();
        addToList.setList(list);
        addToList.getContacts().addAll(contacts);
        return addToList;
    }

    public WriteResult clear(List lists) {
        return callWrite("clear", lists);
    }

    public WriteResult clear(MailListObject...lists) {
        return clear(Arrays.asList(lists));
    }

    public WriteResult removeFromList(MailListObject list, List contacts) {
        return callClient("removeFromList", createRemoveCall(list, contacts));
    }

    public WriteResult removeFromList(MailListObject list, ContactObject...contacts) {
        return removeFromList(list, Arrays.asList(contacts));
    }

    public WriteResult addToList(MailListObject list, List contacts) {
        return callClient("addToList", createAddCall(list, contacts));
    }

    public WriteResult addToList(MailListObject list, ContactObject...contacts) {
        return addToList(list, Arrays.asList(contacts));
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy