getLockHolders返回java.util.Vector如何为特定用户解锁

时间:2014-02-19 23:21:05

标签: javascript locking xpages

var lockHolders:java.util.Vector = document.getLockHolders()

返回当前锁定持有者的列表。如果lockHolders [0] == currentUser,我需要解锁文件非常简单 但是,如果currentUser是多值列表中的名称之一

,如何处理它
if (lockHolders[0] == currentUser){
     document.unlock();
}

我可以从lockHolders中的Vector列表中删除currentUser,但是没有setLockHolders我可以只执行replaceItemValue(“LockHolders”,lockHolders)吗? 我认为lockHolders通常是单值,并且不确定Vector中允许多个名称的条件。

1 个答案:

答案 0 :(得分:2)

我希望lockHolder只包含一个值。毕竟这就是锁的意图。但是,如果你想编码超级防守,试试这个:

 var lockHolders:java.util.Vector = document.getLockHolders();
 for (var curHolder in lockHolders) {
     if (curHolder.toString() === currenUser) {
        document.unlock();
        break;
     }
 }

Vector实际上会返回一组对象,因此请确保使用.toString()。然后===(是 - 其中三个)进行比较而不尝试转换数据类型。如果预期的Vector有一个值,则循环运行一次。如果文档未被锁定(如果Vector有空元素或者为空则无法调用),则循环不运行(如果Vector为空)或者比较为false。

这对你有用吗?