cn.uncode.dal.internal.shards.transaction.MultiDataSourcesTransactionStatus.java Source code

Java tutorial

Introduction

Here is the source code for cn.uncode.dal.internal.shards.transaction.MultiDataSourcesTransactionStatus.java

Source

/*
 * @(#)MultiDataSourcesTransactionStatus.java 2012-8-1 ?10:00:00
 *
 * Copyright (c) 2011-2012 Makersoft.org all rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 *
 */
package cn.uncode.dal.internal.shards.transaction;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import javax.sql.DataSource;

import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.AbstractTransactionStatus;

/**
 * 
 */
public class MultiDataSourcesTransactionStatus extends AbstractTransactionStatus {

    private Map<DataSource, TransactionStatus> dataSourceTransactionStatusMap = new ConcurrentHashMap<DataSource, TransactionStatus>();

    @Override
    public boolean isNewTransaction() {
        return true;
    }

    /**
     * 
     * @param dataSource
     * @param transactionStatus
     * @return
     */
    public Map<DataSource, TransactionStatus> put(DataSource dataSource, TransactionStatus transactionStatus) {
        dataSourceTransactionStatusMap.put(dataSource, transactionStatus);
        return dataSourceTransactionStatusMap;
    }

    public TransactionStatus get(DataSource dataSource) {
        return dataSourceTransactionStatusMap.get(dataSource);
    }

}