content: /*
   * 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);
  }
  