class XATransactionalStore extends AbstractStore {

    public Element putIfAbsent(Element element) throws NullPointerException {
        TransactionContext context = getOrCreateTransactionContext();
        Element previous = getCurrentElement(element.getKey(), context);

        if (previous == null) {
            context.addCommand(new StorePutIfAbsentCommand(element), element);
        }

        return previous;
    }

    public  XATransactionalStore(Ehcache cache, EhcacheXAStore ehcacheXAStore,
                                TransactionManagerLookup transactionManagerLookup, Object txnManager);

}