/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the Common Development
* and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at
* src/com/vodafone360/people/VODAFONE.LICENSE.txt or
* http://github.com/360/360-Engine-for-Android
* See the License for the specific language governing permissions and
* limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each file and
* include the License file at src/com/vodafone360/people/VODAFONE.LICENSE.txt.
* If applicable, add the following below this CDDL HEADER, with the fields
* enclosed by brackets "[]" replaced with your own identifying information:
* Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*
* Copyright 2010 Vodafone Sales & Services Ltd. All rights reserved.
* Use is subject to license terms.
*/
package com.vodafone360.people.engine.contactsync;
import android.content.ContentResolver;
import android.content.Context;
import com.vodafone360.people.database.DatabaseHelper;
import com.vodafone360.people.utils.LogUtils;
/**
* The <code>DefaultProcessorFactory</code> implements the
* <code>ProcessorFactory</code> interface and is the default factory used by
* the <code>ContactSyncEngine</code>.
*
* @see <code>ProcessorFactory</code>
* @see <code>ContactSyncEngine</code>
*/
public class DefaultProcessorFactory implements ProcessorFactory {
/**
* Creates a suitable processor for a required contact sync activity.
*
* @see ProcessorFactory#create(int, IContactSyncCallback, DatabaseHelper,
* Context, ContentResolver)
*/
@Override
public BaseSyncProcessor create(int type, IContactSyncCallback callback, DatabaseHelper dbHelper) {
LogUtils.logD("DefaultProcessorFactory().create(" + type + ", " + callback + ", "
+ dbHelper + ")");
switch (type) {
case DOWNLOAD_SERVER_CONTACTS:
return new DownloadServerContacts(callback, dbHelper);
case FETCH_NATIVE_CONTACTS:
return new FetchNativeContacts(callback, dbHelper);
case UPDATE_NATIVE_CONTACTS:
return new UpdateNativeContacts(callback, dbHelper);
case UPLOAD_SERVER_CONTACTS:
return new UploadServerContacts(callback, dbHelper);
default:
final String errorMsg = "DefaultProcessorFactory().create(), error: unexpected type of processor! type="
+ type;
LogUtils.logE(errorMsg);
throw new IllegalArgumentException(errorMsg);
}
}
}