/*
* 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 com.vodafone360.people.database.DatabaseHelper;
/**
* The <code>ProcessorFactory</code> interface provides a way to create
* processors.
*
* @see <code>DefaultProcessorFactory</code> for a standard implementation used
* by the <code>ContactSyncEngine</code>.
*/
public interface ProcessorFactory {
/**
* The type id of the processor responsible of contacts downloading from the
* server.
*/
static final int DOWNLOAD_SERVER_CONTACTS = 1;
/**
* The type id of the processor responsible of thumbnails downloading from
* the server.
*/
static final int DOWNLOAD_SERVER_THUMBNAILS = 2;
/**
* The type id of the processor responsible of retrieving native contacts
* from the device address book.
*/
static final int FETCH_NATIVE_CONTACTS = 3;
/**
* The type id of the processor responsible of synchronizing Me profile
* information between the device and the server.
*/
static final int SYNC_ME_PROFILE = 4;
/**
*
*/
static final int SET_ME_PROFILE_STATUS = 5;
/**
* The type id of the processor responsible of updating the native contacts
* of the device address book.
*/
static final int UPDATE_NATIVE_CONTACTS = 6;
/**
* The type id of the processor responsible of uploading contacts to the
* server.
*/
static final int UPLOAD_SERVER_CONTACTS = 7;
/**
* The type id of the processor responsible of uploading thumbnails to the
* server.
*/
static final int UPLOAD_SERVER_THUMBNAILS = 8;
/**
* Creates a processor from the provided type.
*
* @param type the type of the processor to create
* @param callback the observer of processor state
* @param dbHelper the database helper to use
* @param context the context to use
* @param cr the content resolver to use
* @return a <code>BaseSyncProcessor</code> implementation of the requested
* type
* @throws IllegalArgumentException if the type of processor is not known
*/
BaseSyncProcessor create(int type, IContactSyncCallback callback, DatabaseHelper dbHelper);
}