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

com.liferay.petra.salesforce.client.partner.SalesforcePartnerClientImpl Maven / Gradle / Ivy

There is a newer version: 7.4.3.112-ga112
Show newest version
/**
 * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
 *
 * This library is free software; you can redistribute it and/or modify it under
 * the terms of the GNU Lesser General Public License as published by the Free
 * Software Foundation; either version 2.1 of the License, or (at your option)
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
 * details.
 */

package com.liferay.petra.salesforce.client.partner;

import com.liferay.petra.salesforce.client.BaseSalesforceClientImpl;

import com.sforce.soap.partner.DeleteResult;
import com.sforce.soap.partner.DescribeGlobalResult;
import com.sforce.soap.partner.DescribeSObjectResult;
import com.sforce.soap.partner.GetDeletedResult;
import com.sforce.soap.partner.GetUpdatedResult;
import com.sforce.soap.partner.GetUserInfoResult;
import com.sforce.soap.partner.LoginResult;
import com.sforce.soap.partner.PartnerConnection;
import com.sforce.soap.partner.QueryResult;
import com.sforce.soap.partner.SaveResult;
import com.sforce.soap.partner.UpsertResult;
import com.sforce.soap.partner.sobject.SObject;
import com.sforce.ws.ConnectionException;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.List;

/**
 * @author Brian Wing Shun Chan
 * @author Peter Shin
 * @author Rachael Koestartyo
 */
public class SalesforcePartnerClientImpl
	extends BaseSalesforceClientImpl implements SalesforcePartnerClient {

	@Override
	public List create(SObject[] sObjects)
		throws ConnectionException {

		PartnerConnection partnerConnection = getPartnerConnection();

		SaveResult[] saveResults = partnerConnection.create(sObjects);

		return _toList(saveResults);
	}

	@Override
	public List delete(String[] salesforceKeys)
		throws ConnectionException {

		PartnerConnection partnerConnection = getPartnerConnection();

		DeleteResult[] deleteResults = partnerConnection.delete(salesforceKeys);

		return _toList(deleteResults);
	}

	@Override
	public DescribeGlobalResult describeGlobal(int retryCount)
		throws ConnectionException {

		try {
			PartnerConnection partnerConnection = getPartnerConnection();

			return partnerConnection.describeGlobal();
		}
		catch (ConnectionException ce) {
			return describeGlobal(getRetryCount(retryCount, ce));
		}
	}

	@Override
	public List describeSObjects(
			String[] typeNames, int retryCount)
		throws ConnectionException {

		try {
			PartnerConnection partnerConnection = getPartnerConnection();

			DescribeSObjectResult[] describeSObjectResults =
				partnerConnection.describeSObjects(typeNames);

			return _toList(describeSObjectResults);
		}
		catch (ConnectionException ce) {
			return describeSObjects(typeNames, getRetryCount(retryCount, ce));
		}
	}

	@Override
	public GetDeletedResult getDeleted(
			String typeName, Calendar startCalendar, Calendar endCalendar,
			int retryCount)
		throws ConnectionException {

		try {
			PartnerConnection partnerConnection = getPartnerConnection();

			return partnerConnection.getDeleted(
				typeName, startCalendar, endCalendar);
		}
		catch (ConnectionException ce) {
			return getDeleted(
				typeName, startCalendar, endCalendar,
				getRetryCount(retryCount, ce));
		}
	}

	@Override
	public GetUpdatedResult getUpdated(
			String typeName, Calendar startCalendar, Calendar endCalendar,
			int retryCount)
		throws ConnectionException {

		try {
			PartnerConnection partnerConnection = getPartnerConnection();

			return partnerConnection.getUpdated(
				typeName, startCalendar, endCalendar);
		}
		catch (ConnectionException ce) {
			return getUpdated(
				typeName, startCalendar, endCalendar,
				getRetryCount(retryCount, ce));
		}
	}

	@Override
	public GetUserInfoResult getUserInfo() throws ConnectionException {
		PartnerConnection partnerConnection = getPartnerConnection();

		return partnerConnection.getUserInfo();
	}

	@Override
	public LoginResult login(String username, String password, int retryCount)
		throws ConnectionException {

		try {
			PartnerConnection partnerConnection = getPartnerConnection();

			return partnerConnection.login(username, password);
		}
		catch (ConnectionException ce) {
			return login(username, password, getRetryCount(retryCount, ce));
		}
	}

	@Override
	public QueryResult query(String queryString, int retryCount)
		throws ConnectionException {

		try {
			PartnerConnection partnerConnection = getPartnerConnection();

			return partnerConnection.query(queryString);
		}
		catch (ConnectionException ce) {
			return query(queryString, getRetryCount(retryCount, ce));
		}
	}

	@Override
	public QueryResult queryAll(String queryString, int retryCount)
		throws ConnectionException {

		try {
			PartnerConnection partnerConnection = getPartnerConnection();

			return partnerConnection.queryAll(queryString);
		}
		catch (ConnectionException ce) {
			return queryAll(queryString, getRetryCount(retryCount, ce));
		}
	}

	@Override
	public QueryResult queryMore(String queryLocator, int retryCount)
		throws ConnectionException {

		try {
			PartnerConnection partnerConnection = getPartnerConnection();

			return partnerConnection.queryMore(queryLocator);
		}
		catch (ConnectionException ce) {
			return queryMore(queryLocator, getRetryCount(retryCount, ce));
		}
	}

	@Override
	public List retrieve(
			String fieldNames, String typeName, String[] salesforceKeys,
			int retryCount)
		throws ConnectionException {

		try {
			PartnerConnection partnerConnection = getPartnerConnection();

			SObject[] sObjects = partnerConnection.retrieve(
				fieldNames, typeName, salesforceKeys);

			return _toList(sObjects);
		}
		catch (ConnectionException ce) {
			return retrieve(
				fieldNames, typeName, salesforceKeys,
				getRetryCount(retryCount, ce));
		}
	}

	@Override
	public List update(SObject[] sObjects)
		throws ConnectionException {

		PartnerConnection partnerConnection = getPartnerConnection();

		SaveResult[] saveResults = partnerConnection.update(sObjects);

		return _toList(saveResults);
	}

	@Override
	public List upsert(
			String salesforceExternalKeyFieldName, SObject[] sObjects)
		throws ConnectionException {

		PartnerConnection partnerConnection = getPartnerConnection();

		UpsertResult[] upsertResults = partnerConnection.upsert(
			salesforceExternalKeyFieldName, sObjects);

		return _toList(upsertResults);
	}

	private  List _toList(E[] array) {
		if ((array == null) || (array.length == 0)) {
			return new ArrayList<>();
		}

		return new ArrayList<>(Arrays.asList(array));
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy