本文整理汇总了Python中xpcom.server.UnwrapObject.idref方法的典型用法代码示例。如果您正苦于以下问题:Python UnwrapObject.idref方法的具体用法?Python UnwrapObject.idref怎么用?Python UnwrapObject.idref使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xpcom.server.UnwrapObject
的用法示例。
在下文中一共展示了UnwrapObject.idref方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: DOMDeserialize
# 需要导入模块: from xpcom.server import UnwrapObject [as 别名]
# 或者: from xpcom.server.UnwrapObject import idref [as 别名]
def DOMDeserialize(self, rootElement, parentPref, prefFactory, basedir=None, chainNotifications=0):
"""We know how to deserialize preferent-set elements."""
# Create a new preference set and rig it into the preference set hierarchy.
xpPrefSet = components.classes["@activestate.com/koPreferenceSet;1"] \
.createInstance(components.interfaces.koIPreferenceSet)
newPrefSet = UnwrapObject(xpPrefSet)
newPrefSet.chainNotifications = chainNotifications
try:
newPrefSet.id = rootElement.getAttribute('id') or ""
except KeyError:
newPrefSet.id = ""
try:
newPrefSet.idref = rootElement.getAttribute('idref') or ""
except KeyError:
newPrefSet.idref = ""
# Iterate over the elements of the preference set,
# deserializing them and fleshing out the new preference
# set with content.
childNodes = rootElement.childNodes
for node in childNodes:
if node and node.nodeType == minidom.Node.ELEMENT_NODE:
if node.hasAttribute('validate'):
newPrefSet.setValidation(node.getAttribute('id'), node.getAttribute('validate'))
pref = _dispatch_deserializer(self, node, newPrefSet, prefFactory, basedir, chainNotifications)
if pref:
if pref.id:
newPrefSet.setPref(pref.id, pref)
else:
log.error("Preference has no id - dumping preference:")
pref.dump(0)
return xpPrefSet
示例2: DOMDeserialize
# 需要导入模块: from xpcom.server import UnwrapObject [as 别名]
# 或者: from xpcom.server.UnwrapObject import idref [as 别名]
def DOMDeserialize(self, rootElement, parentPref, prefFactory, basedir=None, chainNotifications=0):
xpPref = components.classes["@activestate.com/koPreferenceCache;1"].createInstance(
components.interfaces.koIPreferenceCache
)
newPref = UnwrapObject(xpPref)
newPref.id = rootElement.getAttribute("id") or ""
newPref.idref = rootElement.getAttribute("idref") or ""
newPref.basedir = basedir
try:
max_length = int(rootElement.getAttribute("max_length"))
newPref._maxsize = max_length
except ValueError:
log.error("The 'max_length' attribute is invalid")
# Iterate over the elements of the preference set,
# deserializing them and fleshing out the new preference
# set with content.
childNodes = rootElement.childNodes
# Keep the new prefs in a list, then add them in reverse. This
# will magically put everything in the correct order.
sub_prefs = []
for node in childNodes:
if node and node.nodeType == minidom.Node.ELEMENT_NODE:
pref = _dispatch_deserializer(self, node, newPref, prefFactory, basedir, chainNotifications)
if pref:
if pref.id:
sub_prefs.append(pref)
else:
log.error("Preference has no id - dumping preference:")
pref.dump(0)
sub_prefs.reverse()
for pref in sub_prefs:
newPref.setPref(pref)
return xpPref