in src/blob/lease/LeaseBrokenState.ts [16:137]
public constructor(lease: ILease, context: Context) {
if (context.startTime === undefined) {
throw RangeError(
`LeaseBrokenState:constructor() error, context.startTime is undefined.`
);
}
if (lease.leaseState === LeaseStateType.Broken) {
/*
* LeaseState: Broken
* LeaseStatus: Unlocked
* LeaseDurationType: undefined
* LeaseExpireTime: undefined
* LeaseDurationSeconds: undefined
* LeaseBreakTime: undefined
* LeaseId: uuid
*/
if (lease.leaseStatus !== LeaseStatusType.Unlocked) {
throw RangeError(
`LeaseBrokenState:constructor() error, incoming lease status ${lease.leaseStatus} is not ${LeaseStatusType.Unlocked}.`
);
}
if (lease.leaseId === undefined) {
throw RangeError(
`LeaseBrokenState:constructor() error, incoming leaseId ${lease.leaseId} should not be undefined.`
);
}
if (lease.leaseExpireTime !== undefined) {
throw RangeError(
`LeaseBrokenState:constructor() error, incoming leaseExpireTime ${lease.leaseExpireTime} is not undefined.`
);
}
if (lease.leaseDurationSeconds !== undefined) {
throw RangeError(
`LeaseBrokenState:constructor() error, incoming leaseDurationSeconds ${lease.leaseDurationSeconds} is not undefined.`
);
}
if (lease.leaseDurationType !== undefined) {
throw RangeError(
`LeaseBrokenState:constructor() error, incoming leaseDurationType ${lease.leaseDurationType} is not undefined.`
);
}
if (lease.leaseBreakTime !== undefined) {
throw RangeError(
`LeaseBrokenState:constructor() error, incoming leaseBreakTime ${lease.leaseBreakTime} is not undefined.`
);
}
// Deep copy
super({ ...lease }, context);
} else if (lease.leaseState === LeaseStateType.Breaking) {
/*
* LeaseState: Breaking
* LeaseStatus: Locked
* LeaseDurationType: undefined
* LeaseExpireTime: undefined
* LeaseDurationSeconds: undefined
* LeaseBreakTime: now >= timestamp
* LeaseId: uuid
*/
if (lease.leaseStatus !== LeaseStatusType.Locked) {
throw RangeError(
`LeaseBrokenState:constructor() error, incoming lease status ${lease.leaseStatus} is not ${LeaseStatusType.Locked}.`
);
}
if (lease.leaseId === undefined) {
throw RangeError(
`LeaseBrokenState:constructor() error, incoming leaseId ${lease.leaseId} should not be undefined.`
);
}
if (lease.leaseExpireTime !== undefined) {
throw RangeError(
`LeaseBrokenState:constructor() error, incoming leaseExpireTime ${lease.leaseExpireTime} is not undefined.`
);
}
if (lease.leaseDurationSeconds !== undefined) {
throw RangeError(
`LeaseBrokenState:constructor() error, incoming leaseDurationSeconds ${lease.leaseDurationSeconds} is not undefined.`
);
}
if (lease.leaseDurationType !== undefined) {
throw RangeError(
`LeaseBrokenState:constructor() error, incoming leaseDurationType ${lease.leaseDurationType} is not undefined.`
);
}
if (
lease.leaseBreakTime === undefined ||
context.startTime < lease.leaseBreakTime
) {
throw RangeError(
`LeaseBrokenState:constructor() error, incoming leaseBreakTime ${lease.leaseBreakTime} is undefined, or larger than current time ${context.startTime}.`
);
}
super(
{
leaseId: lease.leaseId,
leaseState: LeaseStateType.Broken,
leaseStatus: LeaseStatusType.Unlocked,
leaseDurationType: undefined,
leaseDurationSeconds: undefined,
leaseExpireTime: undefined,
leaseBreakTime: undefined
},
context
);
} else {
throw RangeError(
`LeaseBrokenState:constructor() error, incoming lease state ${lease.leaseState} is neither ${LeaseStateType.Broken} or ${LeaseStateType.Breaking}.`
);
}
}