@Override
	public Uri insert(Uri uri, ContentValues values) {
		SQLiteDatabase database = openHelper.getWritableDatabase();

		ContractHolder contractHolder = contracts.findMatching(uri);
		switch (uriMatcher.match(uri)) {
		case ITEM:
			long itemId = database.insert(contractHolder.getTable(), null, values);
			getContext().getContentResolver().notifyChange(uri, null);
			return Uri.withAppendedPath(uri, String.valueOf(itemId));
		default:
			throw new IllegalArgumentException("Unknown uri " + uri);
		}
	}
Used to switch from a {@link Contract} to an other dynamically.<br/>
Note that this may change the database schema.
May be used for testing purpose. <br/>
@param contractClass The {@link Contract} to switch to.
@throws InvalidContractException
samples/stock/src/com/tjeannin/provigen/ProviGenProvider.java