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

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

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

import java.util.Iterator;

import com.bronto.api.BrontoApi;
import com.bronto.api.BrontoWriteExceptionTransform;
import com.bronto.api.CommonOperations;
import com.bronto.api.model.ObjectBuilder;
import com.bronto.api.model.WriteResult;
import com.bronto.api.reflect.ApiReflection;
import com.bronto.api.request.BrontoReadPager;
import com.bronto.api.request.BrontoReadRequest;

public abstract class AbstractCommonOperations implements CommonOperations {
    protected final C client;
    protected final Class clazz;
    protected final ApiReflection reflect;

    public AbstractCommonOperations(Class clazz, C client) {
        this.clazz = clazz;
        this.client = client;
        this.reflect = getSupportedWriteOperations();
    }

    public abstract ApiReflection getSupportedWriteOperations();

    @Override
    public ObjectBuilder newObject() {
        return ObjectBuilder.newObject(clazz);
    }

    @Override
    public Iterable readAll(final BrontoReadRequest request) {
        return new Iterable() {
            @Override
            public Iterator iterator() {
                return new BrontoReadPager(client, request);
            }
        };
    }

    @Override
    public Iterable writeAll(final BrontoWriteBatch batches) {
        return writeAll(batches, new DefaultWriteExceptionTransform(client, reflect, batches));
    }

    @Override
    public Iterable writeAll(final BrontoWriteBatch batches, final BrontoWriteExceptionTransform handle) {
        return new Iterable() {
            @Override
            public Iterator iterator() {
                return new BrontoWritePager(client, reflect, batches, handle);
            }
        };
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy