All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.jd.blockchain.sdk.proxy.BlockchainServiceProxy Maven / Gradle / Ivy

The newest version!
package com.jd.blockchain.sdk.proxy;

import com.jd.blockchain.crypto.HashDigest;
import com.jd.blockchain.ledger.BlockchainIdentity;
import com.jd.blockchain.ledger.ContractInfo;
import com.jd.blockchain.ledger.CryptoSetting;
import com.jd.blockchain.ledger.DataAccountInfo;
import com.jd.blockchain.ledger.Event;
import com.jd.blockchain.ledger.EventAccountInfo;
import com.jd.blockchain.ledger.KVInfoVO;
import com.jd.blockchain.ledger.LedgerAdminInfo;
import com.jd.blockchain.ledger.LedgerBlock;
import com.jd.blockchain.ledger.LedgerInfo;
import com.jd.blockchain.ledger.LedgerMetadata;
import com.jd.blockchain.ledger.LedgerTransaction;
import com.jd.blockchain.ledger.ParticipantNode;
import com.jd.blockchain.ledger.PreparedTransaction;
import com.jd.blockchain.ledger.PrivilegeSet;
import com.jd.blockchain.ledger.SystemEvent;
import com.jd.blockchain.ledger.TransactionContent;
import com.jd.blockchain.ledger.TransactionState;
import com.jd.blockchain.ledger.TransactionTemplate;
import com.jd.blockchain.ledger.TypedKVEntry;
import com.jd.blockchain.ledger.UserInfo;
import com.jd.blockchain.ledger.UserPrivilegeSet;
import com.jd.blockchain.sdk.BlockchainService;
import com.jd.blockchain.sdk.EventListenerHandle;
import com.jd.blockchain.sdk.SystemEventListener;
import com.jd.blockchain.sdk.SystemEventPoint;
import com.jd.blockchain.sdk.UserEventListener;
import com.jd.blockchain.sdk.UserEventPoint;
import com.jd.blockchain.sdk.service.event.SystemEventListenerHandle;
import com.jd.blockchain.sdk.service.event.UserEventListenerHandle;
import com.jd.blockchain.transaction.BlockchainQueryService;
import com.jd.blockchain.transaction.PreparedTx;
import com.jd.blockchain.transaction.TransactionService;
import com.jd.blockchain.transaction.TxBuilder;
import com.jd.blockchain.transaction.TxRequestBuilder;
import com.jd.blockchain.transaction.TxTemplate;

public abstract class BlockchainServiceProxy implements BlockchainService {


	protected abstract TransactionService getTransactionService(HashDigest ledgerHash);

	protected abstract BlockchainQueryService getQueryService(HashDigest ledgerHash);

	protected abstract CryptoSetting getCryptoSetting(HashDigest ledgerHash);

	@Override
	public TransactionTemplate newTransaction(HashDigest ledgerHash) {
		return new TxTemplate(ledgerHash, getCryptoSetting(ledgerHash).getHashAlgorithm(),
				getTransactionService(ledgerHash));
	}

	@Override
	public PreparedTransaction prepareTransaction(TransactionContent content) {
		CryptoSetting cryptoSetting = getCryptoSetting(content.getLedgerHash());
		HashDigest txHash = TxBuilder.computeTxContentHash(cryptoSetting.getHashAlgorithm(), content);
		TxRequestBuilder txReqBuilder = new TxRequestBuilder(txHash, content);
		return new PreparedTx(txReqBuilder, getTransactionService(content.getLedgerHash()));
	}

	@Override
	public EventListenerHandle monitorSystemEvent(HashDigest ledgerHash, SystemEvent systemEvent,
			long startSequence, SystemEventListener listener) {
		SystemEventListenerHandle eventListenerHandle = new SystemEventListenerHandle(getQueryService(ledgerHash));
		eventListenerHandle.register(ledgerHash, new SystemEventPoint(systemEvent, startSequence), listener);
		return eventListenerHandle;
	}

	@Override
	public EventListenerHandle monitorUserEvent(HashDigest ledgerHash, String eventAccount,
			String eventName, long startSequence, UserEventListener listener) {
		UserEventListenerHandle eventListenerHandle = new UserEventListenerHandle(getQueryService(ledgerHash));
		eventListenerHandle.register(ledgerHash, new UserEventPoint(eventAccount, eventName, startSequence), listener);
		return eventListenerHandle;
	}

	@Override
	public EventListenerHandle monitorUserEvent(HashDigest ledgerHash,
			UserEventPoint[] startingEventPoints, UserEventListener listener) {
		UserEventListenerHandle eventListenerHandle = new UserEventListenerHandle(getQueryService(ledgerHash));
		eventListenerHandle.register(ledgerHash, startingEventPoints, listener);
		return eventListenerHandle;
	}

	@Override
	public LedgerInfo getLedger(HashDigest ledgerHash) {
		return getQueryService(ledgerHash).getLedger(ledgerHash);
	}

	@Override
	public LedgerAdminInfo getLedgerAdminInfo(HashDigest ledgerHash) {
		return getQueryService(ledgerHash).getLedgerAdminInfo(ledgerHash);
	}

	@Override
	public CryptoSetting getLedgerCryptoSetting(HashDigest ledgerHash) {
		return getLedgerAdminInfo(ledgerHash).getSettings().getCryptoSetting();
	}

	@Override
	public ParticipantNode[] getConsensusParticipants(HashDigest ledgerHash) {
		return getQueryService(ledgerHash).getConsensusParticipants(ledgerHash);
	}

	@Override
	public LedgerMetadata getLedgerMetadata(HashDigest ledgerHash) {
		return getQueryService(ledgerHash).getLedgerMetadata(ledgerHash);
	}

	@Override
	public LedgerBlock getBlock(HashDigest ledgerHash, long height) {
		return getQueryService(ledgerHash).getBlock(ledgerHash, height);
	}

	@Override
	public LedgerBlock getBlock(HashDigest ledgerHash, HashDigest blockHash) {
		return getQueryService(ledgerHash).getBlock(ledgerHash, blockHash);
	}

	@Override
	public long getTransactionCount(HashDigest ledgerHash, long height) {
		return getQueryService(ledgerHash).getTransactionCount(ledgerHash, height);
	}

	@Override
	public long getTransactionCount(HashDigest ledgerHash, HashDigest blockHash) {
		return getQueryService(ledgerHash).getTransactionCount(ledgerHash, blockHash);
	}

	@Override
	public long getTransactionTotalCount(HashDigest ledgerHash) {
		return getQueryService(ledgerHash).getTransactionTotalCount(ledgerHash);
	}

	@Override
	public long getDataAccountCount(HashDigest ledgerHash, long height) {
		return getQueryService(ledgerHash).getDataAccountCount(ledgerHash, height);
	}

	@Override
	public long getDataAccountCount(HashDigest ledgerHash, HashDigest blockHash) {
		return getQueryService(ledgerHash).getDataAccountCount(ledgerHash, blockHash);
	}

	@Override
	public long getDataAccountTotalCount(HashDigest ledgerHash) {
		return getQueryService(ledgerHash).getDataAccountTotalCount(ledgerHash);
	}

	@Override
	public long getUserCount(HashDigest ledgerHash, long height) {
		return getQueryService(ledgerHash).getUserCount(ledgerHash, height);
	}

	@Override
	public long getUserCount(HashDigest ledgerHash, HashDigest blockHash) {
		return getQueryService(ledgerHash).getUserCount(ledgerHash, blockHash);
	}

	@Override
	public long getUserTotalCount(HashDigest ledgerHash) {
		return getQueryService(ledgerHash).getUserTotalCount(ledgerHash);
	}

	@Override
	public long getContractCount(HashDigest ledgerHash, long height) {
		return getQueryService(ledgerHash).getContractCount(ledgerHash, height);
	}

	@Override
	public long getContractCount(HashDigest ledgerHash, HashDigest blockHash) {
		return getQueryService(ledgerHash).getContractCount(ledgerHash, blockHash);
	}

	@Override
	public long getContractTotalCount(HashDigest ledgerHash) {
		return getQueryService(ledgerHash).getContractTotalCount(ledgerHash);
	}

	@Override
	public BlockchainIdentity[] getUserEventAccounts(HashDigest ledgerHash, int fromIndex, int count) {
		return getQueryService(ledgerHash).getUserEventAccounts(ledgerHash, fromIndex, count);
	}

	@Override
	public LedgerTransaction[] getTransactions(HashDigest ledgerHash, long height, int fromIndex, int count) {
		return getQueryService(ledgerHash).getTransactions(ledgerHash, height, fromIndex, count);
	}

	@Override
	public LedgerTransaction[] getTransactions(HashDigest ledgerHash, HashDigest blockHash, int fromIndex, int count) {
		return getQueryService(ledgerHash).getTransactions(ledgerHash, blockHash, fromIndex, count);
	}

	@Override
	public LedgerTransaction[] getAdditionalTransactions(HashDigest ledgerHash, long height, int fromIndex, int count) {
		return getQueryService(ledgerHash).getAdditionalTransactions(ledgerHash, height, fromIndex, count);
	}

	@Override
	public LedgerTransaction[] getAdditionalTransactions(HashDigest ledgerHash, HashDigest blockHash, int fromIndex, int count) {
		return getQueryService(ledgerHash).getAdditionalTransactions(ledgerHash, blockHash, fromIndex, count);
	}

	@Override
	public LedgerTransaction getTransactionByContentHash(HashDigest ledgerHash, HashDigest contentHash) {
		return getQueryService(ledgerHash).getTransactionByContentHash(ledgerHash, contentHash);
	}

	@Override
	public TransactionState getTransactionStateByContentHash(HashDigest ledgerHash, HashDigest contentHash) {
		return getQueryService(ledgerHash).getTransactionStateByContentHash(ledgerHash, contentHash);
	}

	@Override
	public UserInfo getUser(HashDigest ledgerHash, String address) {
		return getQueryService(ledgerHash).getUser(ledgerHash, address);
	}

	@Override
	public DataAccountInfo getDataAccount(HashDigest ledgerHash, String address) {
		return getQueryService(ledgerHash).getDataAccount(ledgerHash, address);
	}

	@Override
	public TypedKVEntry[] getDataEntries(HashDigest ledgerHash, String address, String... keys) {
		return getQueryService(ledgerHash).getDataEntries(ledgerHash, address, keys);
	}

	@Override
	public TypedKVEntry[] getDataEntries(HashDigest ledgerHash, String address, KVInfoVO kvInfoVO) {
		return getQueryService(ledgerHash).getDataEntries(ledgerHash, address, kvInfoVO);
	}

	@Override
	public TypedKVEntry[] getDataEntries(HashDigest ledgerHash, String address, int fromIndex, int count) {
		return getQueryService(ledgerHash).getDataEntries(ledgerHash, address, fromIndex, count);
	}

	@Override
	public long getDataEntriesTotalCount(HashDigest ledgerHash, String address) {
		return getQueryService(ledgerHash).getDataEntriesTotalCount(ledgerHash, address);
	}

	@Override
	public ContractInfo getContract(HashDigest ledgerHash, String address) {
		return getQueryService(ledgerHash).getContract(ledgerHash, address);
	}

	@Override
	public ContractInfo getContract(HashDigest ledgerHash, String address, long version) {
		return getQueryService(ledgerHash).getContract(ledgerHash, address, version);
	}

	@Override
	public BlockchainIdentity[] getUsers(HashDigest ledgerHash, int fromIndex, int count) {
		return getQueryService(ledgerHash).getUsers(ledgerHash, fromIndex, count);
	}

	@Override
	public BlockchainIdentity[] getDataAccounts(HashDigest ledgerHash, int fromIndex, int count) {
		return getQueryService(ledgerHash).getDataAccounts(ledgerHash, fromIndex, count);
	}

	@Override
	public BlockchainIdentity[] getContractAccounts(HashDigest ledgerHash, int fromIndex, int count) {
		return getQueryService(ledgerHash).getContractAccounts(ledgerHash, fromIndex, count);
	}

	@Override
	public Event[] getSystemEvents(HashDigest ledgerHash, String eventName, long fromSequence, int count) {
		return getQueryService(ledgerHash).getSystemEvents(ledgerHash, eventName, fromSequence, count);
	}

	@Override
	public Event[] getUserEvents(HashDigest ledgerHash, String address, String eventName, long fromSequence,
			int count) {
		return getQueryService(ledgerHash).getUserEvents(ledgerHash, address, eventName, fromSequence, count);
	}

	@Override
	public long getSystemEventNameTotalCount(HashDigest ledgerHash) {
		return getQueryService(ledgerHash).getSystemEventNameTotalCount(ledgerHash);
	}

	@Override
	public String[] getSystemEventNames(HashDigest ledgerHash, int fromIndex, int maxCount) {
		return getQueryService(ledgerHash).getSystemEventNames(ledgerHash, fromIndex, maxCount);
	}

	@Override
	public long getSystemEventsTotalCount(HashDigest ledgerHash, String eventName) {
		return getQueryService(ledgerHash).getSystemEventsTotalCount(ledgerHash, eventName);
	}

	@Override
	public EventAccountInfo getUserEventAccount(HashDigest ledgerHash, String address) {
		return getQueryService(ledgerHash).getUserEventAccount(ledgerHash, address);
	}

	@Override
	public long getUserEventAccountTotalCount(HashDigest ledgerHash) {
		return getQueryService(ledgerHash).getUserEventAccountTotalCount(ledgerHash);
	}

	@Override
	public long getUserEventNameTotalCount(HashDigest ledgerHash, String address) {
		return getQueryService(ledgerHash).getUserEventNameTotalCount(ledgerHash, address);
	}

	@Override
	public long getUserEventsTotalCount(HashDigest ledgerHash, String address, String eventName) {
		return getQueryService(ledgerHash).getUserEventsTotalCount(ledgerHash, address, eventName);
	}

	@Override
	public String[] getUserEventNames(HashDigest ledgerHash, String address, int fromIndex, int count) {
		return getQueryService(ledgerHash).getUserEventNames(ledgerHash, address, fromIndex, count);
	}

	@Override
	public Event getLatestSystemEvent(HashDigest ledgerHash, String eventName) {
		return getQueryService(ledgerHash).getLatestSystemEvent(ledgerHash, eventName);
	}

	@Override
	public Event getLatestUserEvent(HashDigest ledgerHash, String address, String eventName) {
		return getQueryService(ledgerHash).getLatestUserEvent(ledgerHash, address, eventName);
	}
	
	@Deprecated
	@Override
	public Event getLatestEvent(HashDigest ledgerHash, String address, String eventName) {
		return getLatestUserEvent(ledgerHash, address, eventName);
	}

	@Override
	public PrivilegeSet getRolePrivileges(HashDigest ledgerHash, String roleName) {
		return getQueryService(ledgerHash).getRolePrivileges(ledgerHash, roleName);
	}

	@Override
	public UserPrivilegeSet getUserPrivileges(HashDigest ledgerHash, String userAddress) {
		return getQueryService(ledgerHash).getUserPrivileges(ledgerHash, userAddress);
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy