@Override
  public int deleteItem(
      SQLiteDatabase db, ContentProvider provider, Uri uri, String where, String[] whereArgs) {
    final String parentId = ProviderUtils.getNthPathFromEnd(uri, 2);

    return super.deleteItem(
        db,
        provider,
        uri,
        ProviderUtils.addExtraWhere(where, mColumn + "=?"),
        ProviderUtils.addExtraWhereArgs(whereArgs, parentId));
  }
 @Override
 public Uri insertDir(SQLiteDatabase db, ContentProvider provider, Uri uri, ContentValues values)
     throws SQLException {
   final long parentId = Long.valueOf(ProviderUtils.getNthPathFromEnd(uri, 1));
   values.put(mColumn, parentId);
   return super.insertDir(db, provider, uri, values);
 }
  @Override
  public int updateDir(
      SQLiteDatabase db,
      ContentProvider provider,
      Uri uri,
      ContentValues values,
      String where,
      String[] whereArgs) {
    final String parentId = ProviderUtils.getNthPathFromEnd(uri, 1);

    return super.updateDir(
        db,
        provider,
        uri,
        values,
        ProviderUtils.addExtraWhere(where, mColumn + "=?"),
        ProviderUtils.addExtraWhereArgs(whereArgs, parentId));
  }
  @Override
  public Cursor queryItem(
      SQLiteDatabase db,
      Uri uri,
      String[] projection,
      String selection,
      String[] selectionArgs,
      String sortOrder) {
    final String parentId = ProviderUtils.getNthPathFromEnd(uri, 2);

    if (WILDCARD_PATH_SEGMENT.equals(parentId)) {
      return super.queryItem(db, uri, projection, selection, selectionArgs, sortOrder);

    } else {
      return super.queryItem(
          db,
          uri,
          projection,
          ProviderUtils.addExtraWhere(selection, mColumn + "=?"),
          ProviderUtils.addExtraWhereArgs(selectionArgs, parentId),
          sortOrder);
    }
  }
  /**
   * Returns the choice values from configured environment params.
   *
   * @param envParams map for configured parameters
   * @return the choice values from configured environment params.
   */
  public Map getChoiceValues(Map envParams) {

    List discoveryConfigList = ProviderUtils.getAllDiscoveryConfig();
    Map answer = new HashMap();

    if (discoveryConfigList != null && !discoveryConfigList.isEmpty()) {
      for (Iterator it = discoveryConfigList.iterator(); it.hasNext(); ) {
        DiscoveryConfig discoConfig = (DiscoveryConfig) it.next();
        answer.put(discoConfig.getName(), discoConfig.getName());
      }
    }

    answer.put("[Empty]", "label.Empty");

    // return the choice values map
    return (answer);
  }
 public MessageBodyWriterSupport() {
   setTypeArgument(ProviderUtils.getWriterTypeArgument(this));
 }