-@SuppressWarnings("all")
-public abstract class AbstractDataTransaction<P extends Path<P>, D extends Object> extends
- AbstractDataModification<P, D> {
- private final static Logger LOG = LoggerFactory.getLogger(AbstractDataTransaction.class);
-
- private final Object identifier;
-
- @Override
- public Object getIdentifier() {
- return this.identifier;
- }
-
- private TransactionStatus status;
-
- private final AbstractDataBroker<P, D, ? extends Object> broker;
-
- protected AbstractDataTransaction(final Object identifier,
- final AbstractDataBroker<P, D, ? extends Object> dataBroker) {
- super(dataBroker);
- this.identifier = identifier;
- this.broker = dataBroker;
- this.status = TransactionStatus.NEW;
- AbstractDataTransaction.LOG.debug("Transaction {} Allocated.", identifier);
- }
-
- @Override
- public Future<RpcResult<TransactionStatus>> commit() {
- return this.broker.commit(this);
- }
-
- @Override
- public D readConfigurationData(final P path) {
- final D local = getUpdatedConfigurationData().get(path);
- if (local != null) {
- return local;
- }
- return this.broker.readConfigurationData(path);
- }
-
- @Override
- public D readOperationalData(final P path) {
- final D local = this.getUpdatedOperationalData().get(path);
- if (local != null) {
- return local;
- }
- return this.broker.readOperationalData(path);
- }
-
-
-
- @Override
- public int hashCode() {
- final int prime = 31;
- int result = 1;
- result = prime * result + ((identifier == null) ? 0 : identifier.hashCode());
- return result;
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj)
- return true;
- if (obj == null)
- return false;
- if (getClass() != obj.getClass())
- return false;
- AbstractDataTransaction other = (AbstractDataTransaction) obj;
- if (identifier == null) {
- if (other.identifier != null)
- return false;
- } else if (!identifier.equals(other.identifier))
- return false;
- return true;
- }
-
- @Override
- public TransactionStatus getStatus() {
- return this.status;
- }
-
- protected abstract void onStatusChange(final TransactionStatus status);