@sitevision/api 1.0.19 → 1.1.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (299) hide show
  1. package/common/router/index.d.ts +1 -1
  2. package/hidden/javax/jcr/Binary/index.d.ts +86 -0
  3. package/hidden/javax/jcr/Credentials/index.d.ts +11 -0
  4. package/hidden/javax/jcr/ImportUUIDBehavior/index.d.ts +11 -0
  5. package/hidden/javax/jcr/Item/index.d.ts +353 -0
  6. package/hidden/javax/jcr/ItemVisitor/index.d.ts +41 -0
  7. package/hidden/javax/jcr/NamespaceRegistry/index.d.ts +100 -0
  8. package/hidden/javax/jcr/Node/index.d.ts +2808 -0
  9. package/hidden/javax/jcr/NodeIterator/index.d.ts +18 -0
  10. package/hidden/javax/jcr/Property/index.d.ts +801 -0
  11. package/hidden/javax/jcr/PropertyIterator/index.d.ts +17 -0
  12. package/hidden/javax/jcr/RangeIterator/index.d.ts +75 -0
  13. package/hidden/javax/jcr/Repository/index.d.ts +318 -0
  14. package/hidden/javax/jcr/RepositoryFactory/index.d.ts +90 -0
  15. package/hidden/javax/jcr/Value/index.d.ts +190 -0
  16. package/hidden/javax/jcr/ValueFactory/index.d.ts +179 -0
  17. package/hidden/javax/jcr/Workspace/index.d.ts +1061 -0
  18. package/hidden/javax/jcr/lock/Lock/index.d.ts +142 -0
  19. package/hidden/javax/jcr/lock/LockManager/index.d.ts +217 -0
  20. package/hidden/javax/jcr/nodetype/ItemDefinition/index.d.ts +219 -0
  21. package/hidden/javax/jcr/nodetype/NodeDefinition/index.d.ts +158 -0
  22. package/hidden/javax/jcr/nodetype/NodeDefinitionTemplate/index.d.ts +74 -0
  23. package/hidden/javax/jcr/nodetype/NodeType/index.d.ts +349 -0
  24. package/hidden/javax/jcr/nodetype/NodeTypeDefinition/index.d.ts +248 -0
  25. package/hidden/javax/jcr/nodetype/NodeTypeIterator/index.d.ts +16 -0
  26. package/hidden/javax/jcr/nodetype/NodeTypeManager/index.d.ts +218 -0
  27. package/hidden/javax/jcr/nodetype/NodeTypeTemplate/index.d.ts +98 -0
  28. package/hidden/javax/jcr/nodetype/PropertyDefinition/index.d.ts +536 -0
  29. package/hidden/javax/jcr/nodetype/PropertyDefinitionTemplate/index.d.ts +97 -0
  30. package/hidden/javax/jcr/observation/Event/index.d.ts +133 -0
  31. package/hidden/javax/jcr/observation/EventIterator/index.d.ts +20 -0
  32. package/hidden/javax/jcr/observation/EventJournal/index.d.ts +22 -0
  33. package/hidden/javax/jcr/observation/EventListener/index.d.ts +23 -0
  34. package/hidden/javax/jcr/observation/EventListenerIterator/index.d.ts +20 -0
  35. package/hidden/javax/jcr/observation/ObservationManager/index.d.ts +227 -0
  36. package/hidden/javax/jcr/query/Query/index.d.ts +201 -0
  37. package/hidden/javax/jcr/query/QueryManager/index.d.ts +73 -0
  38. package/hidden/javax/jcr/query/QueryResult/index.d.ts +51 -0
  39. package/hidden/javax/jcr/query/Row/index.d.ts +159 -0
  40. package/hidden/javax/jcr/query/RowIterator/index.d.ts +20 -0
  41. package/hidden/javax/jcr/query/qom/And/index.d.ts +26 -0
  42. package/hidden/javax/jcr/query/qom/BindVariableValue/index.d.ts +15 -0
  43. package/hidden/javax/jcr/query/qom/ChildNode/index.d.ts +27 -0
  44. package/hidden/javax/jcr/query/qom/ChildNodeJoinCondition/index.d.ts +27 -0
  45. package/hidden/javax/jcr/query/qom/Column/index.d.ts +39 -0
  46. package/hidden/javax/jcr/query/qom/Comparison/index.d.ts +82 -0
  47. package/hidden/javax/jcr/query/qom/Constraint/index.d.ts +13 -0
  48. package/hidden/javax/jcr/query/qom/DescendantNode/index.d.ts +31 -0
  49. package/hidden/javax/jcr/query/qom/DescendantNodeJoinCondition/index.d.ts +29 -0
  50. package/hidden/javax/jcr/query/qom/DynamicOperand/index.d.ts +9 -0
  51. package/hidden/javax/jcr/query/qom/EquiJoinCondition/index.d.ts +41 -0
  52. package/hidden/javax/jcr/query/qom/FullTextSearch/index.d.ts +89 -0
  53. package/hidden/javax/jcr/query/qom/FullTextSearchScore/index.d.ts +24 -0
  54. package/hidden/javax/jcr/query/qom/Join/index.d.ts +36 -0
  55. package/hidden/javax/jcr/query/qom/JoinCondition/index.d.ts +9 -0
  56. package/hidden/javax/jcr/query/qom/Length/index.d.ts +24 -0
  57. package/hidden/javax/jcr/query/qom/Literal/index.d.ts +18 -0
  58. package/hidden/javax/jcr/query/qom/LowerCase/index.d.ts +26 -0
  59. package/hidden/javax/jcr/query/qom/NodeLocalName/index.d.ts +16 -0
  60. package/hidden/javax/jcr/query/qom/NodeName/index.d.ts +16 -0
  61. package/hidden/javax/jcr/query/qom/Not/index.d.ts +20 -0
  62. package/hidden/javax/jcr/query/qom/Operand/index.d.ts +9 -0
  63. package/hidden/javax/jcr/query/qom/Or/index.d.ts +30 -0
  64. package/hidden/javax/jcr/query/qom/Ordering/index.d.ts +53 -0
  65. package/hidden/javax/jcr/query/qom/PropertyExistence/index.d.ts +24 -0
  66. package/hidden/javax/jcr/query/qom/PropertyValue/index.d.ts +25 -0
  67. package/hidden/javax/jcr/query/qom/QueryObjectModel/index.d.ts +64 -0
  68. package/hidden/javax/jcr/query/qom/QueryObjectModelConstants/index.d.ts +9 -0
  69. package/hidden/javax/jcr/query/qom/QueryObjectModelFactory/index.d.ts +638 -0
  70. package/hidden/javax/jcr/query/qom/SameNode/index.d.ts +27 -0
  71. package/hidden/javax/jcr/query/qom/SameNodeJoinCondition/index.d.ts +36 -0
  72. package/hidden/javax/jcr/query/qom/Selector/index.d.ts +35 -0
  73. package/hidden/javax/jcr/query/qom/Source/index.d.ts +9 -0
  74. package/hidden/javax/jcr/query/qom/StaticOperand/index.d.ts +10 -0
  75. package/hidden/javax/jcr/query/qom/UpperCase/index.d.ts +26 -0
  76. package/hidden/javax/jcr/retention/Hold/index.d.ts +34 -0
  77. package/hidden/javax/jcr/retention/RetentionManager/index.d.ts +189 -0
  78. package/hidden/javax/jcr/retention/RetentionPolicy/index.d.ts +21 -0
  79. package/hidden/javax/jcr/security/AccessControlEntry/index.d.ts +24 -0
  80. package/hidden/javax/jcr/security/AccessControlList/index.d.ts +91 -0
  81. package/hidden/javax/jcr/security/AccessControlManager/index.d.ts +297 -0
  82. package/hidden/javax/jcr/security/AccessControlPolicy/index.d.ts +11 -0
  83. package/hidden/javax/jcr/security/AccessControlPolicyIterator/index.d.ts +20 -0
  84. package/hidden/javax/jcr/security/NamedAccessControlPolicy/index.d.ts +22 -0
  85. package/hidden/javax/jcr/security/Privilege/index.d.ts +117 -0
  86. package/hidden/javax/jcr/version/Version/index.d.ts +121 -0
  87. package/hidden/javax/jcr/version/VersionHistory/index.d.ts +307 -0
  88. package/hidden/javax/jcr/version/VersionIterator/index.d.ts +20 -0
  89. package/hidden/javax/jcr/version/VersionManager/index.d.ts +1082 -0
  90. package/hidden/senselogic/sitevision/api/base/Builder/index.d.ts +102 -0
  91. package/hidden/senselogic/sitevision/api/base/Filter/index.d.ts +25 -0
  92. package/hidden/senselogic/sitevision/api/base/FilterSplit/index.d.ts +50 -0
  93. package/hidden/senselogic/sitevision/api/base/Loadable/index.d.ts +15 -0
  94. package/hidden/senselogic/sitevision/api/base/Resolver/index.d.ts +31 -0
  95. package/hidden/senselogic/sitevision/api/base/Wrapper/index.d.ts +24 -0
  96. package/hidden/senselogic/sitevision/api/collaboration/CollaborationGroupWrapper/index.d.ts +417 -0
  97. package/hidden/senselogic/sitevision/api/format/NumericFormatter/index.d.ts +80 -0
  98. package/hidden/senselogic/sitevision/api/format/NumericFormatterBuilder/index.d.ts +100 -0
  99. package/hidden/senselogic/sitevision/api/i18n/Currency/index.d.ts +120 -0
  100. package/hidden/senselogic/sitevision/api/link/CustomLinkProcessor/index.d.ts +45 -0
  101. package/hidden/senselogic/sitevision/api/link/CustomLinkRenderData/index.d.ts +65 -0
  102. package/hidden/senselogic/sitevision/api/mail/Mail/index.d.ts +32 -0
  103. package/hidden/senselogic/sitevision/api/message/MessageTextLinker/index.d.ts +15 -0
  104. package/hidden/senselogic/sitevision/api/metadata/value/LinkValue/index.d.ts +23 -0
  105. package/hidden/senselogic/sitevision/api/metadata/value/RelatedValue/index.d.ts +23 -0
  106. package/hidden/senselogic/sitevision/api/property/VersionedPropertyUtil/index.d.ts +642 -0
  107. package/hidden/senselogic/sitevision/api/render/BuddyIconRenderer/BuddyIconInfo/index.d.ts +51 -0
  108. package/hidden/senselogic/sitevision/api/render/ImageScaler/index.d.ts +58 -0
  109. package/hidden/senselogic/sitevision/api/render/TextModuleRenderer/index.d.ts +301 -0
  110. package/hidden/senselogic/sitevision/api/render/velocity/VelocityAccess/ArticleUtilConstants/index.d.ts +85 -0
  111. package/hidden/senselogic/sitevision/api/render/velocity/VelocityAccess/ExceptionSuppressingProxyConstants/index.d.ts +31 -0
  112. package/hidden/senselogic/sitevision/api/render/velocity/VelocityAccess/IndexingUtilConstants/index.d.ts +31 -0
  113. package/hidden/senselogic/sitevision/api/render/velocity/VelocityAccess/LinkPageUtilConstants/index.d.ts +67 -0
  114. package/hidden/senselogic/sitevision/api/render/velocity/VelocityAccess/MathInstanceConstants/index.d.ts +25 -0
  115. package/hidden/senselogic/sitevision/api/render/velocity/VelocityAccess/MimeTypeUtilConstants/index.d.ts +19 -0
  116. package/hidden/senselogic/sitevision/api/render/velocity/VelocityAccess/NodeTypeUtilConstants/index.d.ts +1243 -0
  117. package/hidden/senselogic/sitevision/api/render/velocity/VelocityAccess/OutputUtilConstants/index.d.ts +31 -0
  118. package/hidden/senselogic/sitevision/api/render/velocity/VelocityAccess/PageUtilConstants/index.d.ts +91 -0
  119. package/hidden/senselogic/sitevision/api/render/velocity/VelocityAccess/PortletContextUtilConstants/index.d.ts +27 -0
  120. package/hidden/senselogic/sitevision/api/render/velocity/VelocityAccess/PortletUtilConstants/index.d.ts +19 -0
  121. package/hidden/senselogic/sitevision/api/render/velocity/VelocityAccess/QueryStringUtilConstants/index.d.ts +19 -0
  122. package/hidden/senselogic/sitevision/api/render/velocity/VelocityAccess/SearchHitConstants/index.d.ts +25 -0
  123. package/hidden/senselogic/sitevision/api/render/velocity/VelocityAccess/SearchResultConstants/index.d.ts +37 -0
  124. package/hidden/senselogic/sitevision/api/render/velocity/VelocityAccess/VersionUtilConstants/index.d.ts +25 -0
  125. package/hidden/senselogic/sitevision/api/render/velocity/VelocityAccess/index.d.ts +8 -0
  126. package/hidden/senselogic/sitevision/api/render/velocity/VelocityContext/index.d.ts +50 -0
  127. package/hidden/senselogic/sitevision/api/render/velocity/VelocityEvaluator/index.d.ts +89 -0
  128. package/hidden/senselogic/sitevision/api/script/RequesterChainable/index.d.ts +119 -0
  129. package/hidden/senselogic/sitevision/api/script/app/RestAppInvoker/index.d.ts +272 -0
  130. package/hidden/senselogic/sitevision/api/script/factory/TypedArgument/index.d.ts +43 -0
  131. package/hidden/senselogic/sitevision/api/script/proxy/ExceptionSuppressingCollection/index.d.ts +94 -0
  132. package/hidden/senselogic/sitevision/api/script/proxy/ExceptionSuppressingIterator/index.d.ts +117 -0
  133. package/hidden/senselogic/sitevision/api/script/proxy/ExceptionSuppressingProxy/index.d.ts +90 -0
  134. package/hidden/senselogic/sitevision/api/search/SearchFieldUtil/index.d.ts +89 -0
  135. package/hidden/senselogic/sitevision/api/search/SearchHighlighter/index.d.ts +45 -0
  136. package/hidden/senselogic/sitevision/api/search/SearchHit/index.d.ts +1176 -0
  137. package/hidden/senselogic/sitevision/api/search/SearchResult/index.d.ts +414 -0
  138. package/hidden/senselogic/sitevision/api/search/facet/SearchFacetField/index.d.ts +27 -0
  139. package/hidden/senselogic/sitevision/api/search/facet/SearchFacetValue/index.d.ts +61 -0
  140. package/hidden/senselogic/sitevision/api/search/searcher/Searcher/index.d.ts +277 -0
  141. package/hidden/senselogic/sitevision/api/search/searcher/component/Filter/index.d.ts +25 -0
  142. package/hidden/senselogic/sitevision/api/search/searcher/component/Highlight/index.d.ts +29 -0
  143. package/hidden/senselogic/sitevision/api/search/searcher/component/Monitor/index.d.ts +25 -0
  144. package/hidden/senselogic/sitevision/api/search/searcher/component/Parser/index.d.ts +35 -0
  145. package/hidden/senselogic/sitevision/api/search/searcher/component/Sort/index.d.ts +25 -0
  146. package/hidden/senselogic/sitevision/api/search/searcher/component/SpellCheck/index.d.ts +29 -0
  147. package/hidden/senselogic/sitevision/api/search/sort/CustomSort/index.d.ts +82 -0
  148. package/hidden/senselogic/sitevision/api/search/suggestion/SearchSuggestion/index.d.ts +21 -0
  149. package/hidden/senselogic/sitevision/api/security/DirectoryAttributes/index.d.ts +70 -0
  150. package/hidden/senselogic/sitevision/api/security/MessageDigester/index.d.ts +50 -0
  151. package/hidden/senselogic/sitevision/api/security/RoleAssignment/index.d.ts +72 -0
  152. package/hidden/senselogic/sitevision/api/security/RoleMatcher/index.d.ts +29 -0
  153. package/hidden/senselogic/sitevision/api/security/SecretStore/index.d.ts +55 -0
  154. package/hidden/senselogic/sitevision/api/security/UserUtil/index.d.ts +80 -0
  155. package/hidden/senselogic/sitevision/api/security/jaas/filter/AuthenticationFilter/index.d.ts +36 -0
  156. package/hidden/senselogic/sitevision/api/security/jaas/filter/AuthenticationFilterChain/index.d.ts +32 -0
  157. package/hidden/senselogic/sitevision/api/user/UserIdentityWrapper/index.d.ts +599 -0
  158. package/hidden/senselogic/sitevision/api/webresource/LinkTarget/index.d.ts +20 -0
  159. package/hidden/senselogic/sitevision/api/xml/XmlElement/index.d.ts +55 -0
  160. package/hidden/senselogic/sitevision/api/xml/XmlElementHandler/index.d.ts +17 -0
  161. package/package.json +2 -4
  162. package/server/AliasUtil/index.d.ts +25 -0
  163. package/server/AliasUtil/index.js +10 -0
  164. package/server/ArchiveUtil/index.d.ts +65 -11
  165. package/server/ArraysInstance/index.d.ts +1846 -0
  166. package/server/ArticleUtil/index.d.ts +381 -69
  167. package/server/AuthenticationUtil/index.d.ts +106 -0
  168. package/server/BookmarkUtil/index.d.ts +36 -28
  169. package/server/BuddyIconRenderer/index.d.ts +240 -0
  170. package/server/ClientUtil/index.d.ts +18 -4
  171. package/server/CollaborationFactory/index.d.ts +42 -25
  172. package/server/CollaborationGroupFolderUtil/index.d.ts +40 -29
  173. package/server/CollaborationGroupTemplateUtil/index.d.ts +71 -39
  174. package/server/CollaborationGroupUtil/index.d.ts +128 -55
  175. package/server/CollectionsInstance/index.d.ts +738 -0
  176. package/server/ColorUtil/index.d.ts +22 -17
  177. package/server/CompoundAndFilterBuilder/index.d.ts +60 -0
  178. package/server/CompoundComparatorBuilder/index.d.ts +63 -0
  179. package/server/CompoundOrFilterBuilder/index.d.ts +59 -0
  180. package/server/ContentNodeUtil/index.d.ts +76 -0
  181. package/server/CurrencyFactory/index.d.ts +135 -0
  182. package/server/DateUtil/index.d.ts +154 -77
  183. package/server/DecorationUtil/index.d.ts +23 -0
  184. package/server/DeviceUtil/index.d.ts +36 -0
  185. package/server/DirectoryUtil/index.d.ts +107 -47
  186. package/server/DocTypeUtil/index.d.ts +149 -0
  187. package/server/EndecUtil/index.d.ts +537 -91
  188. package/server/ExtendedDismaxParserBuilder/index.d.ts +311 -0
  189. package/server/FileIconRenderer/index.d.ts +346 -0
  190. package/server/FileUtil/index.d.ts +462 -0
  191. package/server/FilterBuilder/index.d.ts +120 -0
  192. package/server/FolderUtil/index.d.ts +161 -0
  193. package/server/FontUtil/index.d.ts +49 -0
  194. package/server/FormatterBuilderFactory/index.d.ts +129 -0
  195. package/server/HighlightBuilder/index.d.ts +194 -0
  196. package/server/IconUtil/index.d.ts +37 -0
  197. package/server/ImageLinkRenderer/index.d.ts +134 -0
  198. package/server/ImageRenderer/index.d.ts +613 -231
  199. package/server/ImageUtil/index.d.ts +430 -0
  200. package/server/IndexUtil/index.d.ts +71 -0
  201. package/server/IndexingUtil/index.d.ts +92 -0
  202. package/server/InstanceCreatorUtil/index.d.ts +661 -0
  203. package/server/InstanceTypeUtil/index.d.ts +202 -0
  204. package/server/JwtUtil/index.d.ts +217 -0
  205. package/server/LandingPageUtil/index.d.ts +67 -50
  206. package/server/LinkPageUtil/index.d.ts +468 -0
  207. package/server/LinkRenderer/index.d.ts +1157 -0
  208. package/server/LinkTargetBuilder/index.d.ts +146 -0
  209. package/server/LinkValueBuilder/index.d.ts +129 -52
  210. package/server/ListWrapper/index.d.ts +172 -0
  211. package/server/LocaleUtil/index.d.ts +695 -61
  212. package/server/LogUtil/index.d.ts +118 -77
  213. package/server/MailBuilder/index.d.ts +238 -0
  214. package/server/MailUtil/index.d.ts +98 -0
  215. package/server/MathInstance/index.d.ts +681 -0
  216. package/server/MessageDigesterFactory/index.d.ts +49 -0
  217. package/server/MetadataDefinitionUtil/index.d.ts +118 -0
  218. package/server/MetadataUtil/index.d.ts +524 -79
  219. package/server/MimeTypeUtil/index.d.ts +316 -0
  220. package/server/MonitorBuilder/index.d.ts +51 -0
  221. package/server/NodeComparatorUtil/index.d.ts +397 -0
  222. package/server/NodeFactoryUtil/index.d.ts +32 -0
  223. package/server/NodeFilterUtil/index.d.ts +924 -0
  224. package/server/NodeIteratorUtil/index.d.ts +322 -72
  225. package/server/NodeResolverUtil/index.d.ts +767 -0
  226. package/server/NodeTreeUtil/index.d.ts +339 -63
  227. package/server/NodeTypeUtil/index.d.ts +391 -197
  228. package/server/OfflineVersionPropertyUtil/index.d.ts +30 -0
  229. package/server/OnlineVersionPropertyUtil/index.d.ts +30 -0
  230. package/server/OutputUtil/index.d.ts +641 -0
  231. package/server/PageUtil/index.d.ts +330 -0
  232. package/server/PermissionUtil/index.d.ts +650 -0
  233. package/server/PortletContextUtil/index.d.ts +118 -37
  234. package/server/PortletContextUtil/index.js +1 -0
  235. package/server/PortletUtil/index.d.ts +40 -0
  236. package/server/PrincipalUtil/index.d.ts +51 -0
  237. package/server/Properties/index.d.ts +185 -38
  238. package/server/PropertyUtil/index.d.ts +2330 -406
  239. package/server/PublishingUtil/index.d.ts +385 -49
  240. package/server/QueryStringUtil/index.d.ts +737 -0
  241. package/server/RedirectUtil/index.d.ts +98 -0
  242. package/server/RelatedValueBuilder/index.d.ts +81 -39
  243. package/server/Requester/index.d.ts +441 -65
  244. package/server/ResourceLocatorUtil/index.d.ts +483 -227
  245. package/server/RestApi/index.d.ts +208 -23
  246. package/server/RestAppInvokerFactory/index.d.ts +73 -0
  247. package/server/RoleAssignmentBuilder/index.d.ts +60 -0
  248. package/server/RoleMatcherBuilder/index.d.ts +59 -0
  249. package/server/RoleUtil/index.d.ts +57 -0
  250. package/server/ScriptUtil/index.d.ts +625 -143
  251. package/server/SearchFactory/index.d.ts +133 -0
  252. package/server/SearchUtil/index.d.ts +164 -0
  253. package/server/SearcherBuilder/index.d.ts +260 -0
  254. package/server/Session/index.d.ts +1758 -0
  255. package/server/SimpleUserUtil/index.d.ts +39 -30
  256. package/server/SiteCookieUtil/index.d.ts +78 -53
  257. package/server/SortBuilder/index.d.ts +111 -0
  258. package/server/SpellCheckBuilder/index.d.ts +68 -0
  259. package/server/StandardParserBuilder/index.d.ts +112 -0
  260. package/server/StructureUtil/index.d.ts +167 -0
  261. package/server/SubscriberUtil/index.d.ts +122 -0
  262. package/server/SubscriptionUtil/index.d.ts +197 -0
  263. package/server/SystemUserUtil/index.d.ts +201 -98
  264. package/server/TagUtil/index.d.ts +193 -0
  265. package/server/TemplateUtil/index.d.ts +217 -0
  266. package/server/TemporaryFileNodeBuilder/index.d.ts +63 -0
  267. package/server/TemporaryNodeBuilder/index.d.ts +241 -0
  268. package/server/TextModuleRendererBuilder/index.d.ts +68 -0
  269. package/server/TimestampUtil/index.d.ts +98 -82
  270. package/server/TranslationUtil/index.d.ts +175 -0
  271. package/server/TrashcanUtil/index.d.ts +193 -24
  272. package/server/UserDataUtil/index.d.ts +167 -85
  273. package/server/UserFactory/index.d.ts +45 -30
  274. package/server/UserFieldRenderer/index.d.ts +258 -0
  275. package/server/UserIdentityUtil/index.d.ts +61 -29
  276. package/server/UserUtil/index.d.ts +69 -28
  277. package/server/Utils/index.d.ts +870 -12
  278. package/server/VelocityRenderer/index.d.ts +248 -0
  279. package/server/VersionUtil/index.d.ts +15 -12
  280. package/server/WebContentUtil/index.d.ts +644 -0
  281. package/server/WebResourceFactory/index.d.ts +66 -0
  282. package/server/XSLTUtil/index.d.ts +49 -10
  283. package/server/XmlParserUtil/index.d.ts +82 -81
  284. package/builtins/Binary/index.d.ts +0 -3
  285. package/builtins/Calendar/index.d.ts +0 -3
  286. package/builtins/Collection/index.d.ts +0 -3
  287. package/builtins/Date/index.d.ts +0 -3
  288. package/builtins/InputStream/index.d.ts +0 -3
  289. package/builtins/Instant/index.d.ts +0 -3
  290. package/builtins/List/index.d.ts +0 -3
  291. package/builtins/LocalDateTime/index.d.ts +0 -3
  292. package/builtins/Locale/index.d.ts +0 -3
  293. package/builtins/Node/index.d.ts +0 -3
  294. package/builtins/NodeIterator/index.d.ts +0 -27
  295. package/builtins/Property/index.d.ts +0 -3
  296. package/builtins/Serializable/index.d.ts +0 -3
  297. package/builtins/Set/index.d.ts +0 -3
  298. package/builtins/Throwable/index.d.ts +0 -3
  299. package/builtins/byte/index.d.ts +0 -3
@@ -0,0 +1,2808 @@
1
+ import Value from "../Value";
2
+ import Property from "../Property";
3
+ import Binary from "../Binary";
4
+ import NodeIterator from "../NodeIterator";
5
+ import PropertyIterator from "../PropertyIterator";
6
+ import Item from "../Item";
7
+ import NodeType from "../nodetype/NodeType";
8
+ import NodeDefinition from "../nodetype/NodeDefinition";
9
+ import Version from "../version/Version";
10
+ import VersionHistory from "../version/VersionHistory";
11
+ import Lock from "../lock/Lock";
12
+
13
+ /**
14
+ * The <code>Node</code> interface represents a node in a workspace.Creates a new node at <code>relPath</code>.
15
+ * <p>
16
+ * This is <i>session-write</i> method, meaning that the addition of the new
17
+ * node is dispatch upon {@link Session#save}.
18
+ * <p>
19
+ * The <code>relPath</code> provided must not have an index on its final
20
+ * element, otherwise a Repository
21
+ * <p>
22
+ * If ordering is supported by the node type of the parent node of the new
23
+ * node then the new node is appended to the end of the child node list.
24
+ * <p>
25
+ * The new node's primary node type will be determined by the child node
26
+ * definitions in the node types of its parent. This may occur either
27
+ * immediately, on dispatch (save, whether within or without transactions)
28
+ * or on persist (save without transactions, commit within a transaction),
29
+ * depending on the implementation.
30
+ * <p>
31
+ * An <code>ItemExistsException</code> will be thrown either immediately, on
32
+ * dispatch (save, whether within or without transactions) or on persist
33
+ * (save without transactions, commit within a transaction), if an item at
34
+ * the specified path already exists and same-name siblings are not allowed.
35
+ * Implementations may differ on when this validation is performed.
36
+ * <p>
37
+ * A <code>PathNotFoundException</code> will be thrown either immediately,
38
+ * on dispatch (save, whether within or without transactions) or on persist
39
+ * (save without transactions, commit within a transaction), if the
40
+ * specified path implies intermediary nodes that do not exist.
41
+ * Implementations may differ on when this validation is performed.
42
+ * <p>
43
+ * A <code>ConstraintViolationException</code> will be thrown either
44
+ * immediately, on dispatch (save, whether within or without transactions)
45
+ * or on persist (save without transactions, commit within a transaction),
46
+ * if adding the node would violate a node type or implementation-specific
47
+ * constraint or if an attempt is made to add a node as the child of a
48
+ * property. Implementations may differ on when this validation is
49
+ * performed.
50
+ * <p>
51
+ * A <code>VersionException</code> will be thrown either immediately, on
52
+ * dispatch (save, whether within or without transactions) or on persist
53
+ * (save without transactions, commit within a transaction), if the node to
54
+ * which the new child is being added is read-only due to a checked-in node.
55
+ * Implementations may differ on when this validation is performed.
56
+ * <p>
57
+ * A <code>LockException</code> will be thrown either immediately, on
58
+ * dispatch (save, whether within or without transactions) or on persist
59
+ * (save without transactions, commit within a transaction), if a lock
60
+ * prevents the addition of the node. Implementations may differ on when
61
+ * this validation is performed.
62
+ *
63
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Creates a new node at <code>relPath</code> of the specified node type.
64
+ * The behavior of this method is identical to {@link #addNode(String
65
+ * relPath)} except that the primary node type of the new node is explicitly
66
+ * specified.
67
+ *
68
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>If this node supports child node ordering, this method inserts the child
69
+ * node at <code>srcChildRelPath</code> into the child node list at the
70
+ * position immediately the child node at <code>destChildRelPath</code>.
71
+ * <p>
72
+ * To place the node <code>srcChildRelPath</code> at the end of the list, a
73
+ * <code>destChildRelPath</code> of <code>null</code> is used.
74
+ * <p>
75
+ * Note that (apart from the case where <code>destChildRelPath</code> is
76
+ * <code>null</code>) both of these arguments must be relative paths of
77
+ * depth one, in other words they are the names of the child nodes, possibly
78
+ * suffixed with an index.
79
+ * <p>
80
+ * If <code>srcChildRelPath</code> and <code>destChildRelPath</code> are the
81
+ * same, then no change is made.
82
+ * <p>
83
+ * This is session-write method, meaning that a change made by this method
84
+ * is dispatched on <code>save</code>
85
+ * <p>
86
+ * A <code>ConstraintViolationException</code> will be thrown either
87
+ * immediately, on dispatch (save whether within or without transactions) or
88
+ * on persist (save without transactions, commit within a transaction), if
89
+ * this operation would violate a node type or implementation-specific
90
+ * constraint. Implementations may differ on when this validation is
91
+ * performed.
92
+ * <p>
93
+ * A <code>VersionException</code> will be thrown either immediately, on
94
+ * dispatch (save whether within or without transactions) or on persist
95
+ * (save without transactions, commit within a transaction), if this node is
96
+ * read-only due to it or a node above it being checked-in Implementations
97
+ * may differ on when this validation is performed.
98
+ * <p>
99
+ * A <code>LockException</code> will be thrown either immediately (by this
100
+ * method), or on <code>save</code>, if a lock prevents the re-ordering.
101
+ * Implementations may differ on when this validation is performed.
102
+ *
103
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Sets the single-value property of this node called <code>name</code> to
104
+ * the specified <code>value</code>.
105
+ * <p>
106
+ * If the property does not yet exist, it is created and its property type
107
+ * determined by the by the node type of this node. If, based on the
108
+ * <code>name</code> and <code>value</code> passed, there is more than one
109
+ * property definition that applies, the repository chooses one definition
110
+ * according to some implementation-specific criteria. Once a property with
111
+ * name <code>P</code> has been created, the behavior of a subsequent
112
+ * <code>setProperty(P,V)</code> may differ across implementations. Some
113
+ * repositories may allow <code>P</code> to be dynamically re-bound to a
114
+ * different property definition (based for example, on the new value being
115
+ * of a different type than the original value) while other repositories may
116
+ * not allow such dynamic re-binding.
117
+ * <p>
118
+ * If the property type of the supplied <code>Value</code> object is
119
+ * different from that required, then a best-effort conversion is
120
+ * attempted.
121
+ * <p>
122
+ * If the node type of this node does not indicate a specific property type,
123
+ * then the property type of the supplied <code>Value</code> object is used
124
+ * and if the property already exists it assumes both the new value and new
125
+ * property type.
126
+ * <p>
127
+ * Passing a <code>null</code> as the second parameter removes the property.
128
+ * It is equivalent to calling <code>remove</code> on the
129
+ * <code>Property</code> object itself.
130
+ * <p>
131
+ * This is a session-write method, meaning that changes made through this
132
+ * method are dispatched on {@link Session#save}.
133
+ * <p>
134
+ * A <code>ConstraintViolationException</code> will be thrown either
135
+ * immediately, on dispatch (save whether within or without transactions) or
136
+ * on persist (save without transactions, commit within a transaction), if
137
+ * the change would violate a node type or implementation-specific
138
+ * constraint. Implementations may differ on when this validation is
139
+ * performed.
140
+ * <p>
141
+ * A <code>VersionException</code> will be thrown either immediately, on
142
+ * dispatch (save whether within or without transactions) or on persist
143
+ * (save without transactions, commit within a transaction), if this node is
144
+ * read-only due to a checked-in node. Implementations may differ on when
145
+ * this validation is performed.
146
+ * <p>
147
+ * A <code>LockException</code> will be thrown either immediately, on
148
+ * dispatch (save whether within or without transactions) or on persist
149
+ * (save without transactions, commit within a transaction), if a lock
150
+ * prevents the setting of the property. Implementations may differ on when
151
+ * this validation is performed.
152
+ *
153
+ * <p><strong>Sitevision note:</strong> Limited to nodes of primary {@link javax.jcr.nodetype.NodeType}
154
+ * <code>sv:simpleUser</code></p>Sets the single-value property of this node called <code>name</code> to
155
+ * the specified <code>value</code> and the specified <code>type</code>.
156
+ * <p>
157
+ * The behavior of this method is identical to that of {@link
158
+ * #setProperty(String name, Value value)} except that the intended property
159
+ * type is explicitly specified.
160
+ * <p>
161
+ * If the property does not yet exist, it is created. If the property
162
+ * already exists it assumes both the new value and the new property type.
163
+ *
164
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Sets the multi-value property of this node called <code>name</code> to
165
+ * the specified array of values.
166
+ * <p>
167
+ * If the property does not yet exist, it is created.
168
+ * <p>
169
+ * The behavior of this method is identical to that of {@link
170
+ * #setProperty(String name, Value value)} except that an array of
171
+ * <code>Value</code> objects is assigned instead of a single
172
+ * <code>Value</code>.
173
+ * <p>
174
+ * The property type of the property will be that specified by the node type
175
+ * of this node. If the property type of one or more of the supplied
176
+ * <code>Value</code> objects is different from that required, then a
177
+ * best-effort conversion is attempted, according to an
178
+ * implemention-dependent definition of "best effort". If the conversion
179
+ * fails, a <code>ValueFormatException</code> is thrown.
180
+ * <p>
181
+ * If the property is not multi-valued then a <code>ValueFormatException</code>
182
+ * is also thrown. If another error occurs, a <code>RepositoryException</code>
183
+ * is thrown.
184
+ * <p>
185
+ * If the node type of this node does not indicate a specific property type,
186
+ * then the property type of the supplied <code>Value</code> objects is used
187
+ * and if the property already exists it assumes both the new values and the
188
+ * new property type.
189
+ * <p>
190
+ * Passing a <code>null</code> as the second parameter removes the property.
191
+ * It is equivalent to calling <code>remove</code> on the
192
+ * <code>Property</code> object itself. Note that this is different from
193
+ * passing an array that contains <code>null</code> elements. In such a
194
+ * case, the array is compacted by removing the <code>null</code> values.
195
+ * The resulting set of values never contains a null. However, the set may
196
+ * be empty: <code>N.setProperty("P", new Value[]{null})</code> would set
197
+ * the property to the empty set of values.
198
+ *
199
+ * <p><strong>Sitevision note:</strong> Limited to nodes of primary {@link javax.jcr.nodetype.NodeType}
200
+ * <code>sv:simpleUser</code></p>Sets the multi-value property of this node called <code>name</code> to
201
+ * the specified array of values.
202
+ * <p>
203
+ * The behavior of this method is identical to that of {@link
204
+ * #setProperty(String name, Value[] values)} except that the type of the
205
+ * property is explicitly specified.
206
+ * <p>
207
+ * If the property does not yet exist, it is created. The type of the
208
+ * property is determined by the <code>type</code> parameter specified.
209
+ * <p>
210
+ * If the property type of one or more of the supplied <code>Value</code>
211
+ * objects is different from that specified, then a best-effort conversion
212
+ * is attempted, according to an implemention-dependent definition of "best
213
+ * effort". If the conversion fails, a <code>ValueFormatException</code> is
214
+ * thrown.
215
+ * <p>
216
+ * If the property already exists it assumes both the new values and the new
217
+ * property type.
218
+ * </p>
219
+ *
220
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Sets the specified property to the specified array of values. Same as
221
+ * {@link #setProperty(String name, Value[] values)} except that the values
222
+ * are specified as <code>String</code> objects instead of
223
+ * <code>Value</code> objects.
224
+ *
225
+ * <p><strong>Sitevision note:</strong> Limited to nodes of primary {@link javax.jcr.nodetype.NodeType}
226
+ * <code>sv:simpleUser</code></p>Sets the specified property to the specified array of values and to the
227
+ * specified type. Same as {@link #setProperty(String name, Value[] values,
228
+ * int type)} except that the values are specified as <code>String</code>
229
+ * objects instead of <code>Value</code> objects.
230
+ *
231
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Sets the specified single-value property to the specified value. The
232
+ * behavior of this method is identical to that of {@link
233
+ * #setProperty(String name, Value value)} except that the value is
234
+ * specified as a <code>String</code>. and, if possible, the type assigned
235
+ * to the property is <code>STRING</code>, otherwise a best-effort
236
+ * conversion is attempted.
237
+ *
238
+ * <p><strong>Sitevision note:</strong> Limited to nodes of primary {@link javax.jcr.nodetype.NodeType}
239
+ * <code>sv:simpleUser</code></p>Sets the specified single-value property to the specified value. If the
240
+ * property does not yet exist, it is created.
241
+ * <p>
242
+ * The behavior of this method is identical to that of {@link
243
+ * #setProperty(String name, String value)} except that the intended type of
244
+ * the property is explicitly specified by the <code>type</code> parameter.The behavior of this method is identical to that of {@link
245
+ * #setProperty(String name, Value value)} except that the value is
246
+ * specified as a {@link InputStream} and, if possible, the type assigned to
247
+ * the property is <code>BINARY</code>, otherwise a best-effort conversion
248
+ * is attempted.
249
+ * <p>
250
+ * The passed stream is closed before this method returns either normally or
251
+ * because of an exception.
252
+ * <p>The behavior of this method is identical to that of {@link
253
+ * #setProperty(String name, Value value)} except that the value is
254
+ * specified as a {@link Binary} and, if possible, the type assigned to the
255
+ * property is <code>BINARY</code>, otherwise a best-effort conversion is
256
+ * attempted.
257
+ *
258
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>The behavior of this method is identical to that of {@link
259
+ * #setProperty(String name, Value value)} except that the value is
260
+ * specified as a <code>boolean</code> and, if possible, the type assigned
261
+ * to the property is <code>BOOLEAN</code>, otherwise a best-effort
262
+ * conversion is attempted.
263
+ *
264
+ * <p><strong>Sitevision note:</strong> Limited to nodes of primary {@link javax.jcr.nodetype.NodeType}
265
+ * <code>sv:simpleUser</code></p>The behavior of this method is identical to that of {@link
266
+ * #setProperty(String name, Value value)} except that the value is
267
+ * specified as a <code>double</code> and, if possible, the type assigned to
268
+ * the property is <code>DOUBLE</code>, otherwise a best-effort conversion
269
+ * is attempted.
270
+ *
271
+ * <p><strong>Sitevision note:</strong> Limited to nodes of primary {@link javax.jcr.nodetype.NodeType}
272
+ * <code>sv:simpleUser</code></p>The behavior of this method is identical to that of {@link
273
+ * #setProperty(String name, Value value)} except that the value is
274
+ * specified as a {@link BigDecimal} and, if possible, the type assigned to
275
+ * the property is <code>DECIMAL</code>, otherwise a best-effort conversion
276
+ * is attempted.
277
+ *
278
+ * <p><strong>Sitevision note:</strong> Limited to nodes of primary {@link javax.jcr.nodetype.NodeType}
279
+ * <code>sv:simpleUser</code></p>The behavior of this method is identical to that of {@link
280
+ * #setProperty(String name, Value value)} except that the value is
281
+ * specified as a <code>long</code> and, if possible, the type assigned to
282
+ * the property is <code>LONG</code>, otherwise a best-effort conversion is
283
+ * attempted.
284
+ *
285
+ * <p><strong>Sitevision note:</strong> Limited to nodes of primary {@link javax.jcr.nodetype.NodeType}
286
+ * <code>sv:simpleUser</code></p>The behavior of this method is identical to that of {@link
287
+ * #setProperty(String name, Value value)} except that the value is
288
+ * specified as a {@link Calendar} and, if possible, the type assigned to
289
+ * the property is <code>DATE</code>, otherwise a best-effort conversion is
290
+ * attempted.
291
+ *
292
+ * <p><strong>Sitevision note:</strong> Limited to nodes of primary {@link javax.jcr.nodetype.NodeType}
293
+ * <code>sv:simpleUser</code></p>The behavior of this method is identical to that of {@link
294
+ * #setProperty(String name, Value value)} except that the value is
295
+ * specified as a {@link Node} and, if possible, the type assigned to the
296
+ * property is <code>REFERENCE</code> or <code>WEAKREFERENCE</code>,
297
+ * otherwise a best-effort conversion is attempted.
298
+ * <p>
299
+ * The value to which the property is set is the identifier of the passed
300
+ * node.
301
+ * <p>
302
+ * If the named property does not yet exist and the repository cannot
303
+ * determine whether a <code>REFERENCE</code> or <code>WEAKREFERENCE</code>
304
+ * property is intended, then a <code>REFERENCE</code> property is created.
305
+ *
306
+ * <p><strong>Sitevision note:</strong> Limited to nodes of primary {@link javax.jcr.nodetype.NodeType}
307
+ * <code>sv:simpleUser</code></p>Returns the node at <code>relPath</code> relative to this node.
308
+ * <p>
309
+ * If <code>relPath</code> contains a path element that refers to a node
310
+ * with same-name sibling nodes without explicitly including an index using
311
+ * the array-style notation (<code>[x]</code>), then the index [1] is
312
+ * assumed (indexing of same name siblings begins at 1, not 0, in order to
313
+ * preserve compatibility with XPath).
314
+ * <p>
315
+ * Within the scope of a single <code>Session</code> object, if a
316
+ * <code>Node</code> object has been acquired, any subsequent call of
317
+ * <code>getNode</code> reacquiring the same node must return a
318
+ * <code>Node</code> object reflecting the same state as the earlier
319
+ * <code>Node</code> object. Whether this object is actually the same
320
+ * <code>Node</code> instance, or simply one wrapping the same state, is up
321
+ * to the implementation.Returns all child nodes of this node accessible through the current
322
+ * <code>Session</code>. Does <i>not</i> include properties of this
323
+ * <code>Node</code>. The same reacquisition semantics apply as with {@link
324
+ * #getNode(String)}. If this node has no accessible child nodes, then an
325
+ * empty iterator is returned.Gets all child nodes of this node accessible through the current
326
+ * <code>Session</code> that match <code>namePattern</code>. The pattern may
327
+ * be a full name or a partial name with one or more wildcard characters
328
+ * ("<code>*</code>"), or a disjunction (using the "<code>|</code>"
329
+ * character to represent logical <code>OR</code>) of these. For example,
330
+ * <p>
331
+ * <code>N.getNodes("jcr:* | myapp:report | my doc")</code>
332
+ * <p>
333
+ * would return a <code>NodeIterator</code> holding all accessible child
334
+ * nodes of <code>N</code> that are either called '<code>myapp:report</code>',
335
+ * begin with the prefix '<code>jcr:</code>' or are called '<code>my
336
+ * doc</code>'.
337
+ * <p>
338
+ * The substrings within the pattern that are delimited by "<code>|</code>"
339
+ * characters and which may contain wildcard characters ("<code>*</code>")
340
+ * are called <i>globs</i>.
341
+ * <p>
342
+ * Note that leading and trailing whitespace around a glob is ignored, but
343
+ * whitespace within a disjunct forms part of the pattern to be matched.
344
+ * <p>
345
+ * The pattern is matched against the names (not the paths) of the immediate
346
+ * child nodes of this node.
347
+ * <p>
348
+ * If this node has no accessible matching child nodes, then an empty
349
+ * iterator is returned.
350
+ * <p>
351
+ * The same reacquisition semantics apply as with <code>{@link
352
+ * #getNode(String)}</code>.Gets all child nodes of this node accessible through the current
353
+ * <code>Session</code> that match one or more of the <code>nameGlob</code>
354
+ * strings in the passed array.
355
+ * <p>
356
+ * A glob may be a full name or a partial name with one or more wildcard
357
+ * characters ("<code>*</code>"). For example,
358
+ * <p>
359
+ * <code>N.getNodes(new String[] {"jcr:*", "myapp:report", "my
360
+ * doc"})</code>
361
+ * <p>
362
+ * would return a <code>NodeIterator</code> holding all accessible child
363
+ * nodes of <code>N</code> that are either called '<code>myapp:report</code>',
364
+ * begin with the prefix '<code>jcr:</code>' or are called '<code>my
365
+ * doc</code>'.
366
+ * <p>
367
+ * Note that unlike in the case of the {@link #getNodes(String)} leading and
368
+ * trailing whitespace around a glob is <i>not</i> ignored.
369
+ * <p>
370
+ * The globs are matched against the names (not the paths) of the immediate
371
+ * child nodes of this node.
372
+ * <p>
373
+ * If this node has no accessible matching child nodes, then an empty
374
+ * iterator is returned.
375
+ * <p>
376
+ * The same reacquisition semantics apply as with <code>{@link
377
+ * #getNode(String)}</code>.
378
+ *
379
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Returns the property at <code>relPath</code> relative to
380
+ * <code>this</code> node. The same reacquisition semantics apply as with
381
+ * <code>{@link #getNode(String)}</code>.Returns all properties of this node accessible through the current
382
+ * <code>Session</code>. Does <i>not</i> include child <i>nodes</i> of this
383
+ * node. The same reacquisition semantics apply as with <code>{@link
384
+ * #getNode(String)}</code>. If this node has no accessible properties, then
385
+ * an empty iterator is returned.Gets all properties of this node accessible through the current
386
+ * <code>Session</code> that match <code>namePattern</code>.
387
+ *
388
+ * <p>The pattern may
389
+ * be a full name or a partial name with one or more wildcard characters
390
+ * ("<code>*</code>"), or a disjunction (using the "<code>|</code>"
391
+ * character to represent logical <code>OR</code>) of these. For example,
392
+ * </p><p>
393
+ * <code>N.getProperties("jcr:* | myapp:name | my doc")</code>
394
+ * </p><p>
395
+ * would return a <code>PropertyIterator</code> holding all accessible
396
+ * properties of <code>N</code> that are either called
397
+ * '<code>myapp:name</code>', begin with the prefix '<code>jcr:</code>' or
398
+ * are called '<code>my doc</code>'.
399
+ * </p><p>
400
+ * The substrings within the pattern that are delimited by "<code>|</code>"
401
+ * characters and which may contain wildcard characters ("<code>*</code>")
402
+ * are called <i>globs</i>.
403
+ * </p><p>
404
+ * Note that leading and trailing whitespace around a glob is ignored, but
405
+ * whitespace within a disjunct forms part of the pattern to be matched.
406
+ * </p><p>
407
+ * The pattern is matched against the names (not the paths) of the immediate
408
+ * child properties of this node.
409
+ * </p><p>
410
+ * If this node has no accessible matching properties, then an empty
411
+ * iterator is returned.
412
+ * </p><p>
413
+ * The same reacquisition semantics apply as with <code>{@link #getNode(String)}</code>.
414
+ * </p>Gets all properties of this node accessible through the current
415
+ * <code>Session</code> that match one or more of the <code>nameGlob</code>
416
+ * strings in the passed array.
417
+ * <p>
418
+ * A glob may be a full name or a partial name with one or more wildcard
419
+ * characters ("<code>*</code>"). For example,
420
+ * <p>
421
+ * <code>N.getProperties(new String[] {"jcr:*", "myapp:report", "my
422
+ * doc"})</code>
423
+ * <p>
424
+ * would return a <code>PropertyIterator</code> holding all accessible
425
+ * properties of <code>N</code> that are either called
426
+ * '<code>myapp:report</code>', begin with the prefix '<code>jcr:</code>' or
427
+ * are called '<code>my doc</code>'.
428
+ * <p>
429
+ * Note that unlike in the case of the {@link #getProperties(String)}
430
+ * leading and trailing whitespace around a glob is <i>not</i> ignored.
431
+ * <p>
432
+ * The globs are matched against the names (not the paths) of the properties
433
+ * of this node.
434
+ * <p>
435
+ * If this node has no accessible matching properties, then an empty
436
+ * iterator is returned.
437
+ * <p>
438
+ * The same reacquisition semantics apply as with <code>{@link
439
+ * #getProperty(String)}</code>.
440
+ *
441
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Returns the primary child item of this node. The primary node type of
442
+ * this node may specify one child item (child node or property) of this
443
+ * node as the <i>primary child item</i>. This method returns that item.
444
+ * <p>
445
+ * In cases where the primary child item specifies the name of a set
446
+ * same-name sibling child nodes, the node returned will be the one among
447
+ * the same-name siblings with index [1].
448
+ * <p>
449
+ * The same reacquisition semantics apply as with <code>{@link
450
+ * #getNode(String)}</code>.
451
+ *
452
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Returns the UUID of this node as recorded in this node's
453
+ * <code>jcr:uuid</code> property. This method only works on nodes of mixin
454
+ * node type <code>mix:referenceable</code>.
455
+ * <p>
456
+ * On nonreferenceable nodes, this method throws an <code>UnsupportedRepositoryOperationException</code>.
457
+ * To avoid throwing an exception to determine whether a node has a UUID, a
458
+ * call to {@link #isNodeType(String) isNodeType("mix:referenceable")} can
459
+ * be made.Returns the identifier of this node. Applies to both referenceable and
460
+ * non-referenceable nodes.
461
+ * <p>
462
+ * A <code>RepositoryException</code> is thrown if an error occurs.This method returns the index of this node within the ordered set of its
463
+ * same-name sibling nodes. This index is the one used to address same-name
464
+ * siblings using the square-bracket notation, e.g.,
465
+ * <code>/a[3]/b[4]</code>. Note that the index always starts at 1 (not 0),
466
+ * for compatibility with XPath. As a result, for nodes that do not have
467
+ * same-name-siblings, this method will always return 1.
468
+ *
469
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>This method returns all <code>REFERENCE</code> properties that refer to
470
+ * this node and that are accessible through the current
471
+ * <code>Session</code>. Equivalent to <code>Node.getReferences(null)</code>.
472
+ * <p>
473
+ * If this node has no referring <code>REFERENCE</code> properties, an
474
+ * empty iterator is returned. This includes the case where this node is not referenceable.
475
+ *
476
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>This method returns all <code>REFERENCE</code> properties that refer to
477
+ * this node, have the specified <code>name</code> and that are accessible
478
+ * through the current <code>Session</code>.
479
+ * <p>
480
+ * If the <code>name</code> parameter is <code>null</code> then all
481
+ * referring <code>REFERENCES</code> are returned regardless of name.
482
+ * <p>
483
+ * Some implementations may only return properties that have been persisted.
484
+ * Some may return both properties that have been persisted and those that
485
+ * have been dispatched but not persisted (for example, those saved within a
486
+ * transaction but not yet committed) while others implementations may
487
+ * return these two categories of property as well as properties that are
488
+ * still pending and not yet dispatched.
489
+ * <p>
490
+ * In implementations that support versioning, this method does not return
491
+ * properties that are part of the frozen state of a version in version
492
+ * storage.
493
+ * <p>
494
+ * If this node has no referring <code>REFERENCE</code> properties with the specified name, an
495
+ * empty iterator is returned. This includes the case where this node is not referenceable.
496
+ *
497
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>This method returns all <code>WEAKREFERENCE</code> properties that refer
498
+ * to this node and that are accessible through the current
499
+ * <code>Session</code>. Equivalent to <code>Node.getWeakReferences(null)</code>.
500
+ * <p>
501
+ * If this node has no referring <code>WEAKREFERENCE</code> properties, an
502
+ * empty iterator is returned. This includes the case where this node is not referenceable.
503
+ *
504
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>This method returns all <code>WEAKREFERENCE</code> properties that refer
505
+ * to this node, have the specified <code>name</code> and that are
506
+ * accessible through the current <code>Session</code>.
507
+ * <p>
508
+ * If the <code>name</code> parameter is <code>null</code> then all
509
+ * referring <code>WEAKREFERENCE</code> are returned regardless of name.
510
+ * <p>
511
+ * Some implementations may only return properties that have been persisted.
512
+ * Some may return both properties that have been persisted and those that
513
+ * have been dispatched but not persisted (for example, those saved within a
514
+ * transaction but not yet committed) while others implementations may
515
+ * return these two categories of property as well as properties that are
516
+ * still pending and not yet dispatched.
517
+ * <p>
518
+ * In implementations that support versioning, this method does not return
519
+ * properties that are part of the frozen state of a version in version
520
+ * storage.
521
+ * <p>
522
+ * If this node has no referring <code>WEAKREFERENCE</code> properties with the specified name, an
523
+ * empty iterator is returned. This includes the case where this node is not referenceable.
524
+ *
525
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Indicates whether a node exists at <code>relPath</code> Returns
526
+ * <code>true</code> if a node accessible through the current
527
+ * <code>Session</code> exists at <code>relPath</code> and
528
+ * <code>false</code> otherwise.Indicates whether a property exists at <code>relPath</code> Returns
529
+ * <code>true</code> if a property accessible through the current
530
+ * <code>Session</code> exists at <code>relPath</code> and
531
+ * <code>false</code> otherwise.Indicates whether this node has child nodes. Returns <code>true</code> if
532
+ * this node has one or more child nodes accessible through the current
533
+ * <code>Session</code>; <code>false</code> otherwise.Indicates whether this node has properties. Returns <code>true</code> if
534
+ * this node has one or more properties accessible through the current
535
+ * <code>Session</code>; <code>false</code> otherwise.Returns the primary node type in effect for this node. Which
536
+ * <code>NodeType</code> is returned when this method is called on the root
537
+ * node of a workspace is up to the implementation.Returns an array of <code>NodeType</code> objects representing the mixin
538
+ * node types in effect for this node. This includes only those mixin types
539
+ * explicitly assigned to this node. It does not include mixin types
540
+ * inherited through the addition of supertypes to the primary type
541
+ * hierarchy or through the addition of supertypes to the type hierarchy of
542
+ * any of the declared mixin types.Returns <code>true</code> if this node is of the specified primary node
543
+ * type or mixin type, or a subtype thereof. Returns <code>false</code>
544
+ * otherwise.
545
+ * <p>
546
+ * This method respects the effective node type of the node.Changes the primary node type of this node to <code>nodeTypeName</code>.
547
+ * Also immediately changes this node's <code>jcr:primaryType</code>
548
+ * property appropriately. Semantically, the new node type may take effect
549
+ * immediately or on dispatch but <i>must</i> take effect on persist. The
550
+ * behavior adopted must be the same as the behavior adopted for {@link
551
+ * #addMixin} and the behavior that occurs when a node is first created.
552
+ * <p>
553
+ * If the presence of an existing property or child node would cause an
554
+ * incompatibility with the new node type then a <code>ConstraintViolationException</code>
555
+ * is thrown either immediately, on dispatch or on persist.
556
+ * <p>
557
+ * If the new node type would cause this node to be incompatible with the
558
+ * node type of its parent then a <code>ConstraintViolationException</code>
559
+ * is thrown either immediately, on dispatch or on persist.
560
+ * <p>
561
+ * A <code>ConstraintViolationException</code> is also thrown either
562
+ * immediately, on dispatch or on persist if a conflict with an already
563
+ * assigned mixin occurs.
564
+ * <p>
565
+ * A <code>ConstraintViolationException</code> may also be thrown either
566
+ * immediately , on dispatch or on persist if the attempted change violates
567
+ * implementation-specific node type transition rules. A repository that
568
+ * disallows all primary node type changes would simple throw this exception
569
+ * in all cases.
570
+ * <p>
571
+ * If the specified node type is not recognized a <code>NoSuchNodeTypeException</code>
572
+ * is thrown either immediately, on dispatch or on persist.
573
+ * <p>
574
+ * A <code>VersionException</code> is thrown either immediately , on
575
+ * dispatch or on persist if this node is read-only dues to a check-in.
576
+ * <p>
577
+ * A <code>LockException</code> is thrown either immediately, on dispatch or
578
+ * on persist if a lock prevents the change of node type.
579
+ *
580
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Adds the mixin node type named <code>mixinName</code> to this node. If
581
+ * this node is already of type <code>mixinName</code> (either due to a
582
+ * previously added mixin or due to its primary type, through inheritance)
583
+ * then this method has no effect. Otherwise <code>mixinName</code> is added
584
+ * to this node's <code>jcr:mixinTypes</code> property.
585
+ * <p>
586
+ * Semantically, the new node type <i>may</i> take effect immediately, on
587
+ * dispatch or on persist. The behavior adopted must be the same as the
588
+ * behavior adopted for {@link #setPrimaryType} and the behavior that occurs
589
+ * when a node is first created.
590
+ * <p>
591
+ * A <code>ConstraintViolationException</code> is thrown either immediately,
592
+ * on dispatch or on persist, if a conflict with another assigned mixin or
593
+ * the primary node type or for an implementation-specific reason.
594
+ * Implementations may differ on when this validation is done.
595
+ * <p>
596
+ * In some implementations it may only be possible to add mixin types before
597
+ * a a node is persisted <i>for the first time</i>. I such cases any later
598
+ * calls to <code>addMixin</code> will throw a <code>ConstraintViolationException</code>
599
+ * either immediately, on dispatch or on persist.
600
+ * <p>
601
+ * A <code>NoSuchNodeTypeException</code> is thrown either immediately, on
602
+ * dispatch or on persist, if the specified <code>mixinName</code> is not
603
+ * recognized. Implementations may differ on when this validation is done.
604
+ * <p>
605
+ * A <code>VersionException</code> is thrown either immediately, on dispatch
606
+ * or on persist, if this node is read-only due to a checked-in node.
607
+ * Implementations may differ on when this validation is done.
608
+ * <p>
609
+ * A <code>LockException</code> is thrown either immediately, on dispatch or
610
+ * on persist, if a lock prevents the addition of the mixin. Implementations
611
+ * may differ on when this validation is done.
612
+ *
613
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Removes the specified mixin node type from this node and removes
614
+ * <code>mixinName</code> from this node's <code>jcr:mixinTypes</code>
615
+ * property. Both the semantic change in effective node type and the
616
+ * persistence of the change to the <code>jcr:mixinTypes</code> property
617
+ * occur on persist.
618
+ * <p>
619
+ * If this node does not have the specified mixin, a
620
+ * <code>NoSuchNodeTypeException</code> is thrown either immediately, on
621
+ * dispatch or on persist. Implementations may differ on when this
622
+ * validation is done.
623
+ * <p>
624
+ * A <code>ConstraintViolationException</code> will be thrown either
625
+ * immediately, on dispatch or on persist, if the removal of a mixin is not
626
+ * allowed. Implementations are free to enforce any policy with regard to
627
+ * mixin removal and may differ on when this validation is done.
628
+ * <p>
629
+ * A <code>VersionException</code> is thrown either immediately, on dispatch
630
+ * or on persist, if this node is read-only due to a checked-in node.
631
+ * Implementations may differ on when this validation is done.
632
+ * <p>
633
+ * A <code>LockException</code> is thrown either immediately or on
634
+ * <code>save</code> if a lock prevents the removal of the mixin.
635
+ * Implementations may differ on when this validation is done.
636
+ *
637
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Returns <code>true</code> if calling {@link #addMixin} on this node
638
+ * with the mixn node type <code>mixinName</code> will not fail. Returns
639
+ * <code>false</code> otherwise.
640
+ *
641
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Returns the node definition that applies to this node. In some cases
642
+ * there may appear to be more than one definition that could apply to this
643
+ * node. However, it is assumed that upon creation of this node, a single
644
+ * particular definition was used and it is <i>that</i> definition that this
645
+ * method returns. How this governing definition is selected upon node
646
+ * creation from among others which may have been applicable is an
647
+ * implementation issue and is not covered by this specification. The
648
+ * <code>NodeDefinition</code> returned when this method is called on the
649
+ * root node of a workspace is also up to the implementation.
650
+ *
651
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Creates a new version of this node and returns that {@link Version}
652
+ * object. The new version becomes the <i>base version</i> of this node. The
653
+ * name of the new version is implementaion determined.
654
+ * <p>
655
+ * This node becomes <i>checked-in</i> and its <code>jcr:checkedOut</code>
656
+ * property is set to false to reflect this. On a successful check-in the
657
+ * change to this property is made as a workspace-write, and therefore does
658
+ * not require a <code>save</code>.
659
+ * <p>
660
+ * The part of the subgraph of this node that is affected by check-in
661
+ * becomes read-only (see the specification for details).
662
+ * <p>
663
+ * If this node is already checked-in, this method has no effect but returns
664
+ * the current base version of this node.
665
+ *
666
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Sets this versionable node to checked-out status by setting its
667
+ * <code>jcr:isCheckedOut</code> property to <code>true</code>. Under full
668
+ * versioning it also sets the <code>jcr:predecessors</code> property to be
669
+ * a reference to the current base version (the same value as held in
670
+ * <code>jcr:baseVersion</code>). These changes are made by worksapce-write
671
+ * and therefore do require a <code>save</code>.
672
+ * <p>
673
+ * The part of the subgraph of this node that is affected by the checked-out
674
+ * status of this node becomes no longer read-only.
675
+ * <p>
676
+ * If this node is already checked-out, this method has no effect.
677
+ *
678
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p><i>Support for this method is only required under full versioning.</i>
679
+ * <p>
680
+ * Completes the merge process with respect to this node and the specified
681
+ * <code>version</code>.
682
+ * <p>
683
+ * When the {@link #merge} method is called on a node, every versionable
684
+ * node in that subgraph is compared with its corresponding node in the
685
+ * indicated other workspace and a "merge test result" is determined
686
+ * indicating one of the following: <ol> <li> This node will be updated to
687
+ * the state of its correspondee (if the base version of the correspondee is
688
+ * more recent in terms of version history). </li> <li> This node will be
689
+ * left alone (if this node's base version is more recent in terms of
690
+ * version history). </li> <li> This node will be marked as having failed
691
+ * the merge test (if this node's base version is on a different branch of
692
+ * the version history from the base version of its corresponding node in
693
+ * the other workspace, thus preventing an automatic determination of which
694
+ * is more recent). </li> </ol> (See {@link #merge} for more details)
695
+ * <p>
696
+ * In the last case the merging of the subgraph of the versionable node in
697
+ * question must be done by the application (for example, by providing a
698
+ * merge tool for the user).
699
+ * <p>
700
+ * Additionally, once the subgraphs of the nodes has been merged, their
701
+ * version graph branches must also be merged. The JCR versioning system
702
+ * provides for this by keeping a record, for each versionable node that
703
+ * fails the merge test, of the base version of the corresponding node that
704
+ * caused the merge failure. This record is kept in the
705
+ * <code>jcr:mergeFailed</code> property of this node. After a
706
+ * <code>merge</code>, this property will contain one or more (if multiple
707
+ * merges have been performed) <code>REFERENCE</code>s that point to the
708
+ * "failed versions".
709
+ * <p>
710
+ * To complete the merge process, the client calls <code>doneMerge(Version
711
+ * v)</code> passing the version object referred to be the
712
+ * <code>jcr:mergeFailed</code> property that the client wishes to connect
713
+ * to <code>this</code> node in the version graph. This has the effect of
714
+ * moving the reference to the indicated version from the
715
+ * <code>jcr:mergeFailed</code> property of <code>this</code> node to the
716
+ * <code>jcr:predecessors</code>.
717
+ * <p>
718
+ * If the client chooses not to connect this node to a particular version
719
+ * referenced in the <code>jcr:mergeFailed</code> property, he calls {@link
720
+ * #cancelMerge(Version version)}. This has the effect of removing the
721
+ * reference to the specified <code>version</code> from
722
+ * <code>jcr:mergeFailed</code> <i>without</i> adding it to
723
+ * <code>jcr:predecessors</code>.
724
+ * <p>
725
+ * Once the last reference in <code>jcr:mergeFailed</code> has been either
726
+ * moved to <code>jcr:predecessors</code> (with <code>doneMerge</code>) or
727
+ * just removed from <code>jcr:mergeFailed</code> (with
728
+ * <code>cancelMerge</code>) the <code>jcr:mergeFailed</code> property is
729
+ * automatically removed, thus enabling <code>this</code> node to be
730
+ * checked-in, creating a new version (note that before the
731
+ * <code>jcr:mergeFailed</code> is removed, its <code>OnParentVersion</code>
732
+ * setting of <code>ABORT</code> prevents checkin). This new version will
733
+ * have a predecessor connection to each version for which
734
+ * <code>doneMerge</code> was called, thus joining those branches of the
735
+ * version graph.
736
+ * <p>
737
+ * If successful, these changes are persisted immediately, there is no need
738
+ * to call <code>save</code>.
739
+ *
740
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p><i>Support for this method is only required under full versioning.</i>
741
+ * <p>
742
+ * Cancels the merge process with respect to this node and specified
743
+ * <code>version</code>.
744
+ * <p>
745
+ * See {@link #doneMerge} for a full explanation. Also see {@link #merge}
746
+ * for more details.
747
+ * <p>
748
+ * If successful, these changes are persisted immediately, there is no need
749
+ * to call <code>save</code>.
750
+ *
751
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>If this node does have a corresponding node in the workspace
752
+ * <code>srcWorkspace</code>, then this replaces this node and its subgraph
753
+ * with a clone of the corresponding node and its subgraph.
754
+ * <p>
755
+ * If this node does not have a corresponding node in the workspace
756
+ * <code>srcWorkspace</code>, then the <code>update</code> method has no
757
+ * effect.
758
+ * <p>
759
+ * If the <code>update</code> succeeds the changes made are persisted
760
+ * immediately, there is no need to call <code>save</code>.
761
+ * <p>
762
+ * Note that <code>update</code> does not respect the checked-in status of
763
+ * nodes. An <code>update</code> may change a node even if it is currently
764
+ * checked-in (This fact is only relevant in an implementation that supports
765
+ * versioning).
766
+ *
767
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p><i>Support for this method is only required under full versioning.</i>
768
+ * <p>
769
+ * This method can be thought of as a version-sensitive update.
770
+ * <p>
771
+ * It recursively tests each versionable node in the subgraph of this node
772
+ * against its corresponding node in <code>srcWorkspace</code> with respect
773
+ * to the relation between their respective base versions and either updates
774
+ * the node in question or not, depending on the outcome of the test.
775
+ * <p>
776
+ * A <code>MergeException</code> is thrown if <code>bestEffort</code> is
777
+ * <code>false</code> and a versionable node is encountered whose
778
+ * corresponding node's base version is on a divergent branch from this
779
+ * node's base version.
780
+ * <p>
781
+ * If successful, the changes are persisted immediately, there is no need to
782
+ * call <code>save</code>.
783
+ * <p>
784
+ * This method returns a <code>NodeIterator</code> over all versionable
785
+ * nodes in the subgraph that received a merge result of <i>fail</i>. If
786
+ * <code>bestEffort</code> is <code>false</code>, this iterator will be
787
+ * empty (since if <code>merge</code> returns successfully, instead of
788
+ * throwing an exception, it will be because no failures were encountered).
789
+ * If <code>bestEffort</code> is <code>true</code>, this iterator will
790
+ * contain all nodes that received a <i>fail</i> during the course of this
791
+ * <code>merge</code> operation.
792
+ *
793
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Returns the absolute path of the node in the specified workspace that
794
+ * corresponds to <code>this</code> node.
795
+ *
796
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Returns an iterator over all nodes that are in the shared set of this
797
+ * node. If this node is not shared then the returned iterator contains only
798
+ * this node.
799
+ *
800
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Removes this node and every other node in the shared set of this node.
801
+ * <p>
802
+ * This removal must be done atomically, i.e., if one of the nodes cannot be
803
+ * removed, the method throws the exception {@link Node#remove()} would have
804
+ * thrown in that case, and none of the nodes are removed.
805
+ * <p>
806
+ * If this node is not shared this method removes only this node.
807
+ *
808
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Removes this node, but does not remove any other node in the shared set
809
+ * of this node.
810
+ *
811
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Returns <code>false</code> if this node is currently in the checked-in state
812
+ * (either due to its own status as a versionable node or due to the effect of
813
+ * a versionable node being checked in above it). Otherwise this method returns
814
+ * <code>true</code>. This includes the case where the repository does not
815
+ * support versioning (and therefore all nodes are always "checked-out",
816
+ * by default).
817
+ *
818
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Restores <code>this</code> node to the state defined by the version with
819
+ * the specified <code>versionName</code>.
820
+ * <p>
821
+ * This method will work regardless of whether this node is checked-in or
822
+ * not.
823
+ * <p>
824
+ * An identifier collision occurs when a node exists <i>outside the subgraph
825
+ * rooted at this node</i> with the same identifier as a node that would be
826
+ * introduced by the <code>restore</code> operation <i>into the subgraph at
827
+ * this node</i>. The result in such a case is governed by the
828
+ * <code>removeExisting</code> flag. If <code>removeExisting</code> is
829
+ * <code>true</code>, then the incoming node takes precedence, and the
830
+ * existing node (and its subgraph) is removed (if possible; otherwise a
831
+ * <code>RepositoryException</code> is thrown). If <code>removeExisting</code>
832
+ * is <code>false</code>, then a <code>ItemExistsException</code> is thrown
833
+ * and no changes are made. Note that this applies not only to cases where
834
+ * the restored node itself conflicts with an existing node but also to
835
+ * cases where a conflict occurs with any node that would be introduced into
836
+ * the workspace by the restore operation. In particular, conflicts
837
+ * involving subnodes of the restored node that have
838
+ * <code>OnParentVersion</code> settings of <code>COPY</code> or
839
+ * <code>VERSION</code> are also governed by the <code>removeExisting</code>
840
+ * flag.
841
+ *
842
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Restores <code>this</code> node to the state defined by the specified
843
+ * <code>version</code>.
844
+ * <p>
845
+ * If successful, the change is persisted immediately and there is no need
846
+ * to call <code>save</code>.
847
+ * <p>
848
+ * This method will work regardless of whether this node is checked-in or
849
+ * not.
850
+ * <p>
851
+ * An identifier collision occurs when a node exists <i>outside the subgraph
852
+ * rooted at this node</i> with the same identifier as a node that would be
853
+ * introduced by the <code>restore</code> operation <i>into the subgraph at
854
+ * this node</i>. The result in such a case is governed by the
855
+ * <code>removeExisting</code> flag. If <code>removeExisting</code> is
856
+ * <code>true</code>, then the incoming node takes precedence, and the
857
+ * existing node (and its subgraph) is removed (if possible; otherwise a
858
+ * <code>RepositoryException</code> is thrown). If <code>removeExisting</code>
859
+ * is <code>false</code>, then a <code>ItemExistsException</code> is thrown
860
+ * and no changes are made. Note that this applies not only to cases where
861
+ * the restored node itself conflicts with an existing node but also to
862
+ * cases where a conflict occurs with any node that would be introduced into
863
+ * the workspace by the restore operation. In particular, conflicts
864
+ * involving subnodes of the restored node that have
865
+ * <code>OnParentVersion</code> settings of <code>COPY</code> or
866
+ * <code>VERSION</code> are also governed by the <code>removeExisting</code>
867
+ * flag.
868
+ *
869
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Restores the specified version to <code>relPath</code>, relative to this
870
+ * node.
871
+ * <p>
872
+ * If the <code>restore</code> succeeds, the changes made to this node are
873
+ * persisted immediately, there is no need to call <code>save</code>.
874
+ * <p>
875
+ * A node need not exist at relPath, though the parent of
876
+ * <code>relPath</code> must exist.
877
+ * <p>
878
+ * If a node <i>does</i> exist at relPath then it must correspond to the
879
+ * version being restored (the version must be a version <i>of that
880
+ * node</i>) and must not be a root version (<code>jcr:rootVersion</code>),
881
+ * otherwise a <code>VersionException</code> is thrown.
882
+ * <p>
883
+ * If no node exists at <code>relPath</code> then a <code>VersionException</code>
884
+ * is thrown if the parent node of <code>relPath</code> is read-only due to
885
+ * a check-in. However, If there <i>is</i> a node at <code>relPath</code>
886
+ * then the read-only status of that node itself and the read-only status of
887
+ * its parent are irrelevant. The restore will work even if one or both are
888
+ * read-only due to a checked-in node.
889
+ * <p>
890
+ * An identifier collision occurs when a node exists <i>outside the subgraph
891
+ * rooted at <code>relPath</code></i> with the same identifier as a node
892
+ * that would be introduced by the <code>restore</code> operation <i>into
893
+ * the subgraph at <code>relPath</code></i> (Note that in cases where there
894
+ * is no node at <code>relPath</code>, this amounts to saying that an
895
+ * identifier collision occurs if there exists a node <i>anywhere</i> in
896
+ * this workspace with the same identifier as a node that would be
897
+ * introduced by the <code>restore</code>). The result in such a case is
898
+ * governed by the <code>removeExisting</code> flag. If
899
+ * <code>removeExisting</code> is <code>true</code>, then the incoming node
900
+ * takes precedence, and the existing node (and its subgraph) is removed (if
901
+ * possible; otherwise a <code>RepositoryException</code> is thrown). If
902
+ * <code>removeExisting</code> is <code>false</code>, then a
903
+ * <code>ItemExistsException</code> is thrown and no changes are made. Note
904
+ * that this applies not only to cases where the restored node itself
905
+ * conflicts with an existing node but also to cases where a conflict occurs
906
+ * with any node that would be introduced into the workspace by the restore
907
+ * operation. In particular, conflicts involving subnodes of the restored
908
+ * node that have <code>OnParentVersion</code> settings of <code>COPY</code>
909
+ * or <code>VERSION</code> are also governed by the <code>removeExisting</code>
910
+ * flag.
911
+ *
912
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Restores the version of this node with the specified version label.
913
+ * <p>
914
+ * If successful, the change is persisted immediately and there is no need
915
+ * to call <code>save</code>.
916
+ * <p>
917
+ * This method will work regardless of whether this node is checked-in or
918
+ * not.
919
+ * <p>
920
+ * An identifier collision occurs when a node exists <i>outside the subgraph
921
+ * rooted at this node</i> with the same identifier as a node that would be
922
+ * introduced by the <code>restoreByLabel</code> operation <i>into the
923
+ * subgraph at this node</i>. The result in such a case is governed by the
924
+ * <code>removeExisting</code> flag. If <code>removeExisting</code> is
925
+ * <code>true</code>, then the incoming node takes precedence, and the
926
+ * existing node (and its subgraph) is removed (if possible; otherwise a
927
+ * <code>RepositoryException</code> is thrown). If <code>removeExisting</code>
928
+ * is <code>false</code>, then a <code>ItemExistsException</code> is thrown
929
+ * and no changes are made. Note that this applies not only to cases where
930
+ * the restored node itself conflicts with an existing node but also to
931
+ * cases where a conflict occurs with any node that would be introduced into
932
+ * the workspace by the restore operation. In particular, conflicts
933
+ * involving subnodes of the restored node that have
934
+ * <code>OnParentVersion</code> settings of <code>COPY</code> or
935
+ * <code>VERSION</code> are also governed by the <code>removeExisting</code>
936
+ * flag.
937
+ * <p>
938
+ * Note the special behavior in case of chained versions where a child node
939
+ * of this node has an on <code>OnParentVersion</code>settings of
940
+ * <code>VERSION</code> and is mix:versionable: If there is a version of the
941
+ * child node with the specified label, then that version is restored;
942
+ * otherwise the determination depends on the configuration of the workspace
943
+ * and is defined by the implementation.
944
+ *
945
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Returns the <code>VersionHistory</code> object of this node. Under full
946
+ * versioning this object provides access to the <code>nt:versionHistory</code>
947
+ * node holding this node's versions.
948
+ *
949
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Returns the current base version of this versionable node.
950
+ *
951
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Places a lock on this node. If successful, this node is said to
952
+ * <i>hold</i> the lock.
953
+ * <p>
954
+ * If <code>isDeep</code> is <code>true</code> then the lock applies to this
955
+ * node and all its descendant nodes; if <code>false</code>, the lock
956
+ * applies only to this, the holding node.
957
+ * <p>
958
+ * If <code>isSessionScoped</code> is <code>true</code> then this lock will
959
+ * expire upon the expiration of the current session (either through an
960
+ * automatic or explicit <code>Session.logout</code>); if
961
+ * <code>false</code>, this lock does not expire until explicitly unlocked
962
+ * or automatically unlocked due to a implementation-specific limitation,
963
+ * such as a timeout.
964
+ * <p>
965
+ * Returns a <code>Lock</code> object reflecting the state of the new lock.
966
+ * <p>
967
+ * If the lock is open-scoped the returned lock will include a lock token.
968
+ * <p>
969
+ * The lock token is also automatically added to the set of lock tokens held
970
+ * by the current <code>Session</code>.
971
+ * <p>
972
+ * If successful, then the property <code>jcr:lockOwner</code> is created
973
+ * and set to the value of <code>Session.getUserID</code> for the current
974
+ * session and the property <code>jcr:lockIsDeep</code> is set to the value
975
+ * passed in as <code>isDeep</code>. These changes are persisted
976
+ * automatically; there is no need to call <code>save</code>.
977
+ * <p>
978
+ * Note that it is possible to lock a node even if it is checked-in (the
979
+ * lock-related properties will be changed despite the checked-in status).
980
+ *
981
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Returns the <code>Lock</code> object that applies to this node. This may
982
+ * be either a lock on this node itself or a deep lock on a node above this
983
+ * node.
984
+ *
985
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Removes the lock on this node. Also removes the properties
986
+ * <code>jcr:lockOwner</code> and <code>jcr:lockIsDeep</code> from this
987
+ * node. These changes are persisted automatically; there is no need to call
988
+ * <code>save</code>. As well, the corresponding lock token is removed from
989
+ * the set of lock tokens held by the current <code>Session</code>.
990
+ * <p>
991
+ * If this node does not currently hold a lock or holds a lock for which
992
+ * this <code>Session</code> is not the owner, then a
993
+ * <code>LockException</code> is thrown. Note however that the system may
994
+ * give permission to a non-owning session to unlock a lock. Typically such
995
+ * "lock-superuser" capability is intended to facilitate administrational
996
+ * clean-up of orphaned open-scoped locks.
997
+ * <p>
998
+ * Note that it is possible to unlock a node even if it is checked-in (the
999
+ * lock-related properties will be changed despite the checked-in status).
1000
+ *
1001
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Returns <code>true</code> if this node holds a lock; otherwise returns
1002
+ * <code>false</code>. To <i>hold</i> a lock means that this node has
1003
+ * actually had a lock placed on it specifically, as opposed to just having
1004
+ * a lock <i>apply</i> to it due to a deep lock held by a node above.
1005
+ *
1006
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Returns <code>true</code> if this node is locked either as a result of a
1007
+ * lock held by this node or by a deep lock on a node above this node;
1008
+ * otherwise returns <code>false</code>. This includes the case
1009
+ * where a repository does not support locking (in which case all
1010
+ * nodes are "unlocked" by default).
1011
+ *
1012
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Causes the lifecycle state of this node to undergo the specified
1013
+ * <code>transition</code>.
1014
+ * <p>
1015
+ * This method may change the value of the <code>jcr:currentLifecycleState</code>
1016
+ * property, in most cases it is expected that the implementation will
1017
+ * change the value to that of the passed <code>transition</code> parameter,
1018
+ * though this is an implementation-specific issue. If the
1019
+ * <code>jcr:currentLifecycleState</code> property is changed the change is
1020
+ * persisted immediately, there is no need to call <code>save</code>.
1021
+ *
1022
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>Returns the list of valid state transitions for this node.
1023
+ *
1024
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>A constant for the JCR name <code>jcr:content</code>. This is the name of
1025
+ * a child node declared in {@link NodeType#NT_FILE nt:file} and a property
1026
+ * declared in {@link javax.jcr.nodetype.NodeType#NT_LINKED_FILE
1027
+ * nt:linkedFile}.A constant for the node name <code>jcr:propertyDefinition</code> declared
1028
+ * in {@link NodeType#NT_FILE nt:nodeType}.A constant for the node name <code>jcr:childNodeDefinition</code>
1029
+ * declared in {@link NodeType#NT_FILE nt:nodeType}.A constant for the node name <code>jcr:rootVersion</code> declared in
1030
+ * {@link NodeType#NT_VERSION_HISTORY nt:versionHistory}.A constant for the node name <code>jcr:versionLabels</code> declared in
1031
+ * {@link NodeType#NT_VERSION_HISTORY nt:versionHistory}.A constant for the node name <code>jcr:frozenNode</code> declared in
1032
+ * {@link NodeType#NT_VERSION nt:version}.
1033
+
1034
+ */
1035
+ interface Node {
1036
+ /**
1037
+ * Creates a new node at <code>relPath</code>.
1038
+ * <p>
1039
+ * This is <i>session-write</i> method, meaning that the addition of the new
1040
+ * node is dispatch upon {@link Session#save}.
1041
+ * <p>
1042
+ * The <code>relPath</code> provided must not have an index on its final
1043
+ * element, otherwise a Repository
1044
+ * <p>
1045
+ * If ordering is supported by the node type of the parent node of the new
1046
+ * node then the new node is appended to the end of the child node list.
1047
+ * <p>
1048
+ * The new node's primary node type will be determined by the child node
1049
+ * definitions in the node types of its parent. This may occur either
1050
+ * immediately, on dispatch (save, whether within or without transactions)
1051
+ * or on persist (save without transactions, commit within a transaction),
1052
+ * depending on the implementation.
1053
+ * <p>
1054
+ * An <code>ItemExistsException</code> will be thrown either immediately, on
1055
+ * dispatch (save, whether within or without transactions) or on persist
1056
+ * (save without transactions, commit within a transaction), if an item at
1057
+ * the specified path already exists and same-name siblings are not allowed.
1058
+ * Implementations may differ on when this validation is performed.
1059
+ * <p>
1060
+ * A <code>PathNotFoundException</code> will be thrown either immediately,
1061
+ * on dispatch (save, whether within or without transactions) or on persist
1062
+ * (save without transactions, commit within a transaction), if the
1063
+ * specified path implies intermediary nodes that do not exist.
1064
+ * Implementations may differ on when this validation is performed.
1065
+ * <p>
1066
+ * A <code>ConstraintViolationException</code> will be thrown either
1067
+ * immediately, on dispatch (save, whether within or without transactions)
1068
+ * or on persist (save without transactions, commit within a transaction),
1069
+ * if adding the node would violate a node type or implementation-specific
1070
+ * constraint or if an attempt is made to add a node as the child of a
1071
+ * property. Implementations may differ on when this validation is
1072
+ * performed.
1073
+ * <p>
1074
+ * A <code>VersionException</code> will be thrown either immediately, on
1075
+ * dispatch (save, whether within or without transactions) or on persist
1076
+ * (save without transactions, commit within a transaction), if the node to
1077
+ * which the new child is being added is read-only due to a checked-in node.
1078
+ * Implementations may differ on when this validation is performed.
1079
+ * <p>
1080
+ * A <code>LockException</code> will be thrown either immediately, on
1081
+ * dispatch (save, whether within or without transactions) or on persist
1082
+ * (save without transactions, commit within a transaction), if a lock
1083
+ * prevents the addition of the node. Implementations may differ on when
1084
+ * this validation is performed.
1085
+ *
1086
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
1087
+ * @param relPath The path of the new node to be created.
1088
+ * @return The node that was added.
1089
+ * @throws ItemExistsException if an item at the specified path already exists, same-name siblings are not allowed and this implementation performs this validation immediately.
1090
+ * @throws PathNotFoundException if the specified path implies intermediary <code>Node</code>s that do not exist or the last element of <code>relPath</code> has an index, and this implementation performs this validation immediately.
1091
+ * @throws ConstraintViolationException if a node type or implementation-specific constraint is violated or if an attempt is made to add a node as the child of a property and this implementation performs this validation immediately.
1092
+ * @throws VersionException if the node to which the new child is being added is read-only due to a checked-in node and this implementation performs this validation immediately.
1093
+ * @throws LockException if a lock prevents the addition of the node and this implementation performs this validation immediately.
1094
+ * @throws RepositoryException If the last element of <code>relPath</code> has an index or if another error occurs.
1095
+ */
1096
+ addNode(relPath: string): Node;
1097
+
1098
+ /**
1099
+ * Creates a new node at <code>relPath</code> of the specified node type.
1100
+ * The behavior of this method is identical to {@link #addNode(String
1101
+ * relPath)} except that the primary node type of the new node is explicitly
1102
+ * specified.
1103
+ *
1104
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
1105
+ * @param relPath the path of the new node to be created.
1106
+ * @param primaryNodeTypeName The name of the primary node type of the new node.
1107
+ * @return the node that was added.
1108
+ * @throws ItemExistsException if an item at the specified path already exists, same-name siblings are not allowed and this implementation performs this validation immediately instead of waiting until <code>save</code>.
1109
+ * @throws PathNotFoundException if the specified path implies intermediary <code>Node</code>s that do not exist or the last element of <code>relPath</code> has an index, and this implementation performs this validation immediately instead of waiting until <code>save</code>.
1110
+ * @throws NoSuchNodeTypeException if the specified node type is not recognized and this implementation performs this validation immediately instead of waiting until <code>save</code>.
1111
+ * @throws ConstraintViolationException if a node type or implementation-specific constraint is violated or if an attempt is made to add a node as the child of a property and this implementation performs this validation immediately instead of waiting until <code>save</code>.
1112
+ * @throws VersionException if the node to which the new child is being added is read-only due to a checked-in node and this implementation performs this validation immediately instead of waiting until <code>save</code>.
1113
+ * @throws LockException if a lock prevents the addition of the node and this implementation performs this validation immediately instead of waiting until <code>save</code>.
1114
+ * @throws RepositoryException if the last element of <code>relPath</code> has an index or if another error occurs.
1115
+ */
1116
+ addNode(relPath: string, primaryNodeTypeName: string): Node;
1117
+
1118
+ /**
1119
+ * If this node supports child node ordering, this method inserts the child
1120
+ * node at <code>srcChildRelPath</code> into the child node list at the
1121
+ * position immediately the child node at <code>destChildRelPath</code>.
1122
+ * <p>
1123
+ * To place the node <code>srcChildRelPath</code> at the end of the list, a
1124
+ * <code>destChildRelPath</code> of <code>null</code> is used.
1125
+ * <p>
1126
+ * Note that (apart from the case where <code>destChildRelPath</code> is
1127
+ * <code>null</code>) both of these arguments must be relative paths of
1128
+ * depth one, in other words they are the names of the child nodes, possibly
1129
+ * suffixed with an index.
1130
+ * <p>
1131
+ * If <code>srcChildRelPath</code> and <code>destChildRelPath</code> are the
1132
+ * same, then no change is made.
1133
+ * <p>
1134
+ * This is session-write method, meaning that a change made by this method
1135
+ * is dispatched on <code>save</code>
1136
+ * <p>
1137
+ * A <code>ConstraintViolationException</code> will be thrown either
1138
+ * immediately, on dispatch (save whether within or without transactions) or
1139
+ * on persist (save without transactions, commit within a transaction), if
1140
+ * this operation would violate a node type or implementation-specific
1141
+ * constraint. Implementations may differ on when this validation is
1142
+ * performed.
1143
+ * <p>
1144
+ * A <code>VersionException</code> will be thrown either immediately, on
1145
+ * dispatch (save whether within or without transactions) or on persist
1146
+ * (save without transactions, commit within a transaction), if this node is
1147
+ * read-only due to it or a node above it being checked-in Implementations
1148
+ * may differ on when this validation is performed.
1149
+ * <p>
1150
+ * A <code>LockException</code> will be thrown either immediately (by this
1151
+ * method), or on <code>save</code>, if a lock prevents the re-ordering.
1152
+ * Implementations may differ on when this validation is performed.
1153
+ *
1154
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
1155
+ * @param srcChildRelPath the relative path to the child node (that is, name plus possible index) to be moved in the ordering
1156
+ * @param destChildRelPath the the relative path to the child node (that is, name plus possible index) before which the node <code>srcChildRelPath</code> will be placed.
1157
+ * @throws UnsupportedRepositoryOperationException if ordering is not supported on this node.
1158
+ * @throws ConstraintViolationException if an implementation-specific ordering restriction is violated and this implementation performs this validation immediately.
1159
+ * @throws ItemNotFoundException if either parameter is not the relative path of a child node of this node.
1160
+ * @throws VersionException if this node is read-only due to a checked-in node and this implementation performs this validation immediately.
1161
+ * @throws LockException if a lock prevents the re-ordering and this implementation performs this validation immediately.
1162
+ * @throws RepositoryException if another error occurs.
1163
+ */
1164
+ orderBefore(srcChildRelPath: string, destChildRelPath: string): void;
1165
+
1166
+ /**
1167
+ * Sets the single-value property of this node called <code>name</code> to
1168
+ * the specified <code>value</code>.
1169
+ * <p>
1170
+ * If the property does not yet exist, it is created and its property type
1171
+ * determined by the by the node type of this node. If, based on the
1172
+ * <code>name</code> and <code>value</code> passed, there is more than one
1173
+ * property definition that applies, the repository chooses one definition
1174
+ * according to some implementation-specific criteria. Once a property with
1175
+ * name <code>P</code> has been created, the behavior of a subsequent
1176
+ * <code>setProperty(P,V)</code> may differ across implementations. Some
1177
+ * repositories may allow <code>P</code> to be dynamically re-bound to a
1178
+ * different property definition (based for example, on the new value being
1179
+ * of a different type than the original value) while other repositories may
1180
+ * not allow such dynamic re-binding.
1181
+ * <p>
1182
+ * If the property type of the supplied <code>Value</code> object is
1183
+ * different from that required, then a best-effort conversion is
1184
+ * attempted.
1185
+ * <p>
1186
+ * If the node type of this node does not indicate a specific property type,
1187
+ * then the property type of the supplied <code>Value</code> object is used
1188
+ * and if the property already exists it assumes both the new value and new
1189
+ * property type.
1190
+ * <p>
1191
+ * Passing a <code>null</code> as the second parameter removes the property.
1192
+ * It is equivalent to calling <code>remove</code> on the
1193
+ * <code>Property</code> object itself.
1194
+ * <p>
1195
+ * This is a session-write method, meaning that changes made through this
1196
+ * method are dispatched on {@link Session#save}.
1197
+ * <p>
1198
+ * A <code>ConstraintViolationException</code> will be thrown either
1199
+ * immediately, on dispatch (save whether within or without transactions) or
1200
+ * on persist (save without transactions, commit within a transaction), if
1201
+ * the change would violate a node type or implementation-specific
1202
+ * constraint. Implementations may differ on when this validation is
1203
+ * performed.
1204
+ * <p>
1205
+ * A <code>VersionException</code> will be thrown either immediately, on
1206
+ * dispatch (save whether within or without transactions) or on persist
1207
+ * (save without transactions, commit within a transaction), if this node is
1208
+ * read-only due to a checked-in node. Implementations may differ on when
1209
+ * this validation is performed.
1210
+ * <p>
1211
+ * A <code>LockException</code> will be thrown either immediately, on
1212
+ * dispatch (save whether within or without transactions) or on persist
1213
+ * (save without transactions, commit within a transaction), if a lock
1214
+ * prevents the setting of the property. Implementations may differ on when
1215
+ * this validation is performed.
1216
+ *
1217
+ * <p><strong>Sitevision note:</strong> Limited to nodes of primary {@link javax.jcr.nodetype.NodeType}
1218
+ * <code>sv:simpleUser</code></p>
1219
+ * @param name The name of a property of this node
1220
+ * @param value The value to be assigned
1221
+ * @return The updated <code>Property</code> object
1222
+ * @throws ValueFormatException if the specified property is a <code>DATE</code> but the <code>value</code> cannot be expressed in the ISO 8601-based format defined in the JCR 2.0 specification and the implementation does not support dates incompatible with that format or if <code>value</code> cannot be converted to the type of the specified property or if the property already exists and is multi-valued.
1223
+ * @throws VersionException if this node is read-only due to a checked-in node and this implementation performs this validation immediately.
1224
+ * @throws LockException if a lock prevents the setting of the property and this implementation performs this validation immediately.
1225
+ * @throws ConstraintViolationException if the change would violate a node-type or other constraint and this implementation performs this validation immediately.
1226
+ * @throws RepositoryException if another error occurs.
1227
+ */
1228
+ setProperty(name: string, value: Value): Property;
1229
+
1230
+ /**
1231
+ * Sets the single-value property of this node called <code>name</code> to
1232
+ * the specified <code>value</code> and the specified <code>type</code>.
1233
+ * <p>
1234
+ * The behavior of this method is identical to that of {@link
1235
+ * #setProperty(String name, Value value)} except that the intended property
1236
+ * type is explicitly specified.
1237
+ * <p>
1238
+ * If the property does not yet exist, it is created. If the property
1239
+ * already exists it assumes both the new value and the new property type.
1240
+ *
1241
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
1242
+ * @param name the name of the property to be set.
1243
+ * @param value a <code>Value</code> object.
1244
+ * @param type the type of the property.
1245
+ * @return the <code>Property</code> object set, or <code>null</code> if this method was used to remove a property (by setting its value to <code>null</code>).
1246
+ * @throws ValueFormatException if <code>value</code> cannot be converted to the specified type or if the property already exists and is multi-valued.
1247
+ * @throws VersionException if this node is read-only due to a checked-in node and this implementation performs this validation immediately.
1248
+ * @throws LockException if a lock prevents the setting of the property and this implementation performs this validation immediately.
1249
+ * @throws ConstraintViolationException if the change would violate a node-type or other constraint and this implementation performs this validation immediately.
1250
+ * @throws RepositoryException if another error occurs.
1251
+ */
1252
+ setProperty(name: string, value: Value, type: number): Property;
1253
+
1254
+ /**
1255
+ * Sets the multi-value property of this node called <code>name</code> to
1256
+ * the specified array of values.
1257
+ * <p>
1258
+ * If the property does not yet exist, it is created.
1259
+ * <p>
1260
+ * The behavior of this method is identical to that of {@link
1261
+ * #setProperty(String name, Value value)} except that an array of
1262
+ * <code>Value</code> objects is assigned instead of a single
1263
+ * <code>Value</code>.
1264
+ * <p>
1265
+ * The property type of the property will be that specified by the node type
1266
+ * of this node. If the property type of one or more of the supplied
1267
+ * <code>Value</code> objects is different from that required, then a
1268
+ * best-effort conversion is attempted, according to an
1269
+ * implemention-dependent definition of "best effort". If the conversion
1270
+ * fails, a <code>ValueFormatException</code> is thrown.
1271
+ * <p>
1272
+ * If the property is not multi-valued then a <code>ValueFormatException</code>
1273
+ * is also thrown. If another error occurs, a <code>RepositoryException</code>
1274
+ * is thrown.
1275
+ * <p>
1276
+ * If the node type of this node does not indicate a specific property type,
1277
+ * then the property type of the supplied <code>Value</code> objects is used
1278
+ * and if the property already exists it assumes both the new values and the
1279
+ * new property type.
1280
+ * <p>
1281
+ * Passing a <code>null</code> as the second parameter removes the property.
1282
+ * It is equivalent to calling <code>remove</code> on the
1283
+ * <code>Property</code> object itself. Note that this is different from
1284
+ * passing an array that contains <code>null</code> elements. In such a
1285
+ * case, the array is compacted by removing the <code>null</code> values.
1286
+ * The resulting set of values never contains a null. However, the set may
1287
+ * be empty: <code>N.setProperty("P", new Value[]{null})</code> would set
1288
+ * the property to the empty set of values.
1289
+ *
1290
+ * <p><strong>Sitevision note:</strong> Limited to nodes of primary {@link javax.jcr.nodetype.NodeType}
1291
+ * <code>sv:simpleUser</code></p>
1292
+ * @param name the name of the property to be set.
1293
+ * @param values an array of <code>Value</code> objects.
1294
+ * @return the updated <code>Property</code> object.
1295
+ * @throws ValueFormatException if <code>value</code> cannot be converted to the type of the specified property or if the property already exists and is not multi-valued.
1296
+ * @throws VersionException if this node is read-only due to a checked-in node and this implementation performs this validation immediately.
1297
+ * @throws LockException if a lock prevents the setting of the property and this implementation performs this validation immediately.
1298
+ * @throws ConstraintViolationException if the change would violate a node-type or other constraint and this implementation performs this validation immediately.
1299
+ * @throws RepositoryException if another error occurs.
1300
+ */
1301
+ setProperty(name: string, values: Value): Property;
1302
+
1303
+ /**
1304
+ * Sets the multi-value property of this node called <code>name</code> to
1305
+ * the specified array of values.
1306
+ * <p>
1307
+ * The behavior of this method is identical to that of {@link
1308
+ * #setProperty(String name, Value[] values)} except that the type of the
1309
+ * property is explicitly specified.
1310
+ * <p>
1311
+ * If the property does not yet exist, it is created. The type of the
1312
+ * property is determined by the <code>type</code> parameter specified.
1313
+ * <p>
1314
+ * If the property type of one or more of the supplied <code>Value</code>
1315
+ * objects is different from that specified, then a best-effort conversion
1316
+ * is attempted, according to an implemention-dependent definition of "best
1317
+ * effort". If the conversion fails, a <code>ValueFormatException</code> is
1318
+ * thrown.
1319
+ * <p>
1320
+ * If the property already exists it assumes both the new values and the new
1321
+ * property type.
1322
+ * </p>
1323
+ *
1324
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
1325
+ * @param name the name of the property to be set.
1326
+ * @param values an array of <code>Value</code> objects.
1327
+ * @param type the type of the property.
1328
+ * @return the updated <code>Property</code> object.
1329
+ * @throws ValueFormatException if a value cannot be converted to the specified type or if the property already exists and is not multi-valued.
1330
+ * @throws VersionException if this node is read-only due to a checked-in node and this implementation performs this validation immediately.
1331
+ * @throws LockException if a lock prevents the setting of the property and this implementation performs this validation immediately.
1332
+ * @throws ConstraintViolationException if the change would violate a node-type or other constraint and this implementation performs this validation immediately.
1333
+ * @throws RepositoryException if another error occurs.
1334
+ */
1335
+ setProperty(name: string, values: Value, type: number): Property;
1336
+
1337
+ /**
1338
+ * Sets the specified property to the specified array of values. Same as
1339
+ * {@link #setProperty(String name, Value[] values)} except that the values
1340
+ * are specified as <code>String</code> objects instead of
1341
+ * <code>Value</code> objects.
1342
+ *
1343
+ * <p><strong>Sitevision note:</strong> Limited to nodes of primary {@link javax.jcr.nodetype.NodeType}
1344
+ * <code>sv:simpleUser</code></p>
1345
+ * @param name the name of the property to be set.
1346
+ * @param values an array of <code>Value</code> objects.
1347
+ * @return the updated <code>Property</code> object.
1348
+ * @throws ValueFormatException if a value cannot be converted to the type of the specified property or if the property already exists and is not multi-valued.
1349
+ * @throws VersionException if this node is read-only due to a checked-in node and this implementation performs this validation immediately.
1350
+ * @throws LockException if a lock prevents the setting of the property and this implementation performs this validation immediately.
1351
+ * @throws ConstraintViolationException if the change would violate a node-type or other constraint and this implementation performs this validation immediately.
1352
+ * @throws RepositoryException if another error occurs.
1353
+ */
1354
+ setProperty(name: string, values: string): Property;
1355
+
1356
+ /**
1357
+ * Sets the specified property to the specified array of values and to the
1358
+ * specified type. Same as {@link #setProperty(String name, Value[] values,
1359
+ * int type)} except that the values are specified as <code>String</code>
1360
+ * objects instead of <code>Value</code> objects.
1361
+ *
1362
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
1363
+ * @param name the name of the property to be set.
1364
+ * @param values an array of <code>Value</code> objects.
1365
+ * @param type the type of the property.
1366
+ * @return the updated <code>Property</code> object.
1367
+ * @throws ValueFormatException if a value cannot be converted to the specified type or if the property already exists and is not multi-valued.
1368
+ * @throws VersionException if this node is read-only due to a checked-in node and this implementation performs this validation immediately.
1369
+ * @throws LockException if a lock prevents the setting of the property and this implementation performs this validation immediately.
1370
+ * @throws ConstraintViolationException if the change would violate a node-type or other constraint and this implementation performs this validation immediately.
1371
+ * @throws RepositoryException if another error occurs.
1372
+ */
1373
+ setProperty(name: string, values: string, type: number): Property;
1374
+
1375
+ /**
1376
+ * Sets the specified single-value property to the specified value. The
1377
+ * behavior of this method is identical to that of {@link
1378
+ * #setProperty(String name, Value value)} except that the value is
1379
+ * specified as a <code>String</code>. and, if possible, the type assigned
1380
+ * to the property is <code>STRING</code>, otherwise a best-effort
1381
+ * conversion is attempted.
1382
+ *
1383
+ * <p><strong>Sitevision note:</strong> Limited to nodes of primary {@link javax.jcr.nodetype.NodeType}
1384
+ * <code>sv:simpleUser</code></p>
1385
+ * @param name The name of a property of this node
1386
+ * @param value The value to assigned
1387
+ * @return The updated <code>Property</code> object
1388
+ * @throws ValueFormatException if <code>value</code> cannot be converted to the type of the specified property or if the property already exists and is multi-valued.
1389
+ * @throws VersionException if this node is read-only due to a checked-in node and this implementation performs this validation immediately.
1390
+ * @throws LockException if a lock prevents the setting of the property and this implementation performs this validation immediately.
1391
+ * @throws ConstraintViolationException if the change would violate a node-type or other constraint and this implementation performs this validation immediately.
1392
+ * @throws RepositoryException if another error occurs.
1393
+ */
1394
+ setProperty(name: string, value: string): Property;
1395
+
1396
+ /**
1397
+ * Sets the specified single-value property to the specified value. If the
1398
+ * property does not yet exist, it is created.
1399
+ * <p>
1400
+ * The behavior of this method is identical to that of {@link
1401
+ * #setProperty(String name, String value)} except that the intended type of
1402
+ * the property is explicitly specified by the <code>type</code> parameter.
1403
+ * @param name the name of the property to be set.
1404
+ * @param value a <code>String</code> object.
1405
+ * @param type the type of the property.
1406
+ * @return the <code>Property</code> object set, or <code>null</code> if this method was used to remove a property (by setting its value to <code>null</code>).
1407
+ * @throws ValueFormatException if <code>value</code> cannot be converted to the specified type or if the property already exists and is multi-valued.
1408
+ * @throws VersionException if this node is read-only due to a checked-in node and this implementation performs this validation immediately.
1409
+ * @throws LockException if a lock prevents the setting of the property and this implementation performs this validation immediately.
1410
+ * @throws ConstraintViolationException if the change would violate a node-type or other constraint and this implementation performs this validation immediately.
1411
+ * @throws RepositoryException if another error occurs.
1412
+ */
1413
+ setProperty(name: string, value: string, type: number): Property;
1414
+
1415
+ /**
1416
+ * The behavior of this method is identical to that of {@link
1417
+ * #setProperty(String name, Value value)} except that the value is
1418
+ * specified as a {@link InputStream} and, if possible, the type assigned to
1419
+ * the property is <code>BINARY</code>, otherwise a best-effort conversion
1420
+ * is attempted.
1421
+ * <p>
1422
+ * The passed stream is closed before this method returns either normally or
1423
+ * because of an exception.
1424
+ * <p>
1425
+ * @param name The name of a property of this node
1426
+ * @param value The value to assigned
1427
+ * @return The updated <code>Property</code> object
1428
+ * @throws ValueFormatException if <code>value</code> cannot be converted to the type of the specified property or if the property already exists and is multi-valued.
1429
+ * @throws VersionException if this node is read-only due to a checked-in node and this implementation performs this validation immediately.
1430
+ * @throws LockException if a lock prevents the setting of the property and this implementation performs this validation immediately.
1431
+ * @throws ConstraintViolationException if the change would violate a node-type or other constraint and this implementation performs this validation immediately.
1432
+ * @throws RepositoryException if another error occurs.
1433
+ * @deprecated As of JCR 2.0, {@link #setProperty(String, Binary)} should be used instead.
1434
+ */
1435
+ setProperty(name: string, value: unknown): Property;
1436
+
1437
+ /**
1438
+ * The behavior of this method is identical to that of {@link
1439
+ * #setProperty(String name, Value value)} except that the value is
1440
+ * specified as a {@link Binary} and, if possible, the type assigned to the
1441
+ * property is <code>BINARY</code>, otherwise a best-effort conversion is
1442
+ * attempted.
1443
+ *
1444
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
1445
+ * @param name The name of a property of this node
1446
+ * @param value The value to assigned
1447
+ * @return The updated <code>Property</code> object
1448
+ * @throws ValueFormatException if <code>value</code> cannot be converted to the type of the specified property or if the property already exists and is multi-valued.
1449
+ * @throws VersionException if this node is read-only due to a checked-in node and this implementation performs this validation immediately.
1450
+ * @throws LockException if a lock prevents the setting of the property and this implementation performs this validation immediately.
1451
+ * @throws ConstraintViolationException if the change would violate a node-type or other constraint and this implementation performs this validation immediately.
1452
+ * @throws RepositoryException if another error occurs.
1453
+ * @since JCR 2.0
1454
+ */
1455
+ setProperty(name: string, value: Binary): Property;
1456
+
1457
+ /**
1458
+ * The behavior of this method is identical to that of {@link
1459
+ * #setProperty(String name, Value value)} except that the value is
1460
+ * specified as a <code>boolean</code> and, if possible, the type assigned
1461
+ * to the property is <code>BOOLEAN</code>, otherwise a best-effort
1462
+ * conversion is attempted.
1463
+ *
1464
+ * <p><strong>Sitevision note:</strong> Limited to nodes of primary {@link javax.jcr.nodetype.NodeType}
1465
+ * <code>sv:simpleUser</code></p>
1466
+ * @param name The name of a property of this node
1467
+ * @param value The value to assigned
1468
+ * @return The updated <code>Property</code> object
1469
+ * @throws ValueFormatException if <code>value</code> cannot be converted to the type of the specified property or if the property already exists and is multi-valued.
1470
+ * @throws VersionException if this node is read-only due to a checked-in node and this implementation performs this validation immediately.
1471
+ * @throws LockException if a lock prevents the setting of the property and this implementation performs this validation immediately.
1472
+ * @throws ConstraintViolationException if the change would violate a node-type or other constraint and this implementation performs this validation immediately.
1473
+ * @throws RepositoryException if another error occurs.
1474
+ */
1475
+ setProperty(name: string, value: boolean): Property;
1476
+
1477
+ /**
1478
+ * The behavior of this method is identical to that of {@link
1479
+ * #setProperty(String name, Value value)} except that the value is
1480
+ * specified as a <code>double</code> and, if possible, the type assigned to
1481
+ * the property is <code>DOUBLE</code>, otherwise a best-effort conversion
1482
+ * is attempted.
1483
+ *
1484
+ * <p><strong>Sitevision note:</strong> Limited to nodes of primary {@link javax.jcr.nodetype.NodeType}
1485
+ * <code>sv:simpleUser</code></p>
1486
+ * @param name The name of a property of this node
1487
+ * @param value The value to assigned
1488
+ * @return The updated <code>Property</code> object
1489
+ * @throws ValueFormatException if <code>value</code> cannot be converted to the type of the specified property or if the property already exists and is multi-valued.
1490
+ * @throws VersionException if this node is read-only due to a checked-in node and this implementation performs this validation immediately.
1491
+ * @throws LockException if a lock prevents the setting of the property and this implementation performs this validation immediately.
1492
+ * @throws ConstraintViolationException if the change would violate a node-type or other constraint and this implementation performs this validation immediately.
1493
+ * @throws RepositoryException if another error occurs.
1494
+ */
1495
+ setProperty(name: string, value: number): Property;
1496
+
1497
+ /**
1498
+ * The behavior of this method is identical to that of {@link
1499
+ * #setProperty(String name, Value value)} except that the value is
1500
+ * specified as a {@link BigDecimal} and, if possible, the type assigned to
1501
+ * the property is <code>DECIMAL</code>, otherwise a best-effort conversion
1502
+ * is attempted.
1503
+ *
1504
+ * <p><strong>Sitevision note:</strong> Limited to nodes of primary {@link javax.jcr.nodetype.NodeType}
1505
+ * <code>sv:simpleUser</code></p>
1506
+ * @param name The name of a property of this node
1507
+ * @param value The value to assigned
1508
+ * @return The updated <code>Property</code> object
1509
+ * @throws ValueFormatException if <code>value</code> cannot be converted to the type of the specified property or if the property already exists and is multi-valued.
1510
+ * @throws VersionException if this node is read-only due to a checked-in node and this implementation performs this validation immediately.
1511
+ * @throws LockException if a lock prevents the setting of the property and this implementation performs this validation immediately.
1512
+ * @throws ConstraintViolationException if the change would violate a node-type or other constraint and this implementation performs this validation immediately.
1513
+ * @throws RepositoryException if another error occurs.
1514
+ * @since JCR 2.0
1515
+ */
1516
+ setProperty(name: string, value: unknown): Property;
1517
+
1518
+ /**
1519
+ * The behavior of this method is identical to that of {@link
1520
+ * #setProperty(String name, Value value)} except that the value is
1521
+ * specified as a <code>long</code> and, if possible, the type assigned to
1522
+ * the property is <code>LONG</code>, otherwise a best-effort conversion is
1523
+ * attempted.
1524
+ *
1525
+ * <p><strong>Sitevision note:</strong> Limited to nodes of primary {@link javax.jcr.nodetype.NodeType}
1526
+ * <code>sv:simpleUser</code></p>
1527
+ * @param name The name of a property of this node
1528
+ * @param value The value to assigned
1529
+ * @return The updated <code>Property</code> object
1530
+ * @throws ValueFormatException if <code>value</code> cannot be converted to the type of the specified property or if the property already exists and is multi-valued.
1531
+ * @throws VersionException if this node is read-only due to a checked-in node and this implementation performs this validation immediately.
1532
+ * @throws LockException if a lock prevents the setting of the property and this implementation performs this validation immediately.
1533
+ * @throws ConstraintViolationException if the change would violate a node-type or other constraint and this implementation performs this validation immediately.
1534
+ * @throws RepositoryException if another error occurs.
1535
+ */
1536
+ setProperty(name: string, value: number): Property;
1537
+
1538
+ /**
1539
+ * The behavior of this method is identical to that of {@link
1540
+ * #setProperty(String name, Value value)} except that the value is
1541
+ * specified as a {@link Calendar} and, if possible, the type assigned to
1542
+ * the property is <code>DATE</code>, otherwise a best-effort conversion is
1543
+ * attempted.
1544
+ *
1545
+ * <p><strong>Sitevision note:</strong> Limited to nodes of primary {@link javax.jcr.nodetype.NodeType}
1546
+ * <code>sv:simpleUser</code></p>
1547
+ * @param name The name of a property of this node
1548
+ * @param value The value to assigned
1549
+ * @return The updated <code>Property</code> object
1550
+ * @throws ValueFormatException if the specified property is a <code>DATE</code> but the <code>value</code> cannot be expressed in the ISO 8601-based format defined in the JCR 2.0 specification (section 3.6.4.3) and the implementation does not support dates incompatible with that format or if <code>value</code> cannot be converted to the type of the specified property or if the property already exists and is multi-valued.
1551
+ * @throws VersionException if this node is read-only due to a checked-in node and this implementation performs this validation immediately.
1552
+ * @throws LockException if a lock prevents the setting of the property and this implementation performs this validation immediately.
1553
+ * @throws ConstraintViolationException if the change would violate a node-type or other constraint and this implementation performs this validation immediately.
1554
+ * @throws RepositoryException if another error occurs.
1555
+ */
1556
+ setProperty(name: string, value: unknown): Property;
1557
+
1558
+ /**
1559
+ * The behavior of this method is identical to that of {@link
1560
+ * #setProperty(String name, Value value)} except that the value is
1561
+ * specified as a {@link Node} and, if possible, the type assigned to the
1562
+ * property is <code>REFERENCE</code> or <code>WEAKREFERENCE</code>,
1563
+ * otherwise a best-effort conversion is attempted.
1564
+ * <p>
1565
+ * The value to which the property is set is the identifier of the passed
1566
+ * node.
1567
+ * <p>
1568
+ * If the named property does not yet exist and the repository cannot
1569
+ * determine whether a <code>REFERENCE</code> or <code>WEAKREFERENCE</code>
1570
+ * property is intended, then a <code>REFERENCE</code> property is created.
1571
+ *
1572
+ * <p><strong>Sitevision note:</strong> Limited to nodes of primary {@link javax.jcr.nodetype.NodeType}
1573
+ * <code>sv:simpleUser</code></p>
1574
+ * @param name The name of a property of this node
1575
+ * @param value The value to assigned
1576
+ * @return The updated <code>Property</code> object.
1577
+ * @throws ValueFormatException if this property is not of type <code>REFERENCE</code> or <code>WEAKREFERENCE</code> or the specified node is not referenceable or if the specified property already exists and is multi-valued.
1578
+ * @throws VersionException if this node is read-only due to a checked-in node and this implementation performs this validation immediately.
1579
+ * @throws LockException if a lock prevents the setting of the property and this implementation performs this validation immediately.
1580
+ * @throws ConstraintViolationException if the change would violate a node-type or other constraint and this implementation performs this validation immediately.
1581
+ * @throws RepositoryException if another error occurs.
1582
+ */
1583
+ setProperty(name: string, value: Node): Property;
1584
+
1585
+ /**
1586
+ * Returns the node at <code>relPath</code> relative to this node.
1587
+ * <p>
1588
+ * If <code>relPath</code> contains a path element that refers to a node
1589
+ * with same-name sibling nodes without explicitly including an index using
1590
+ * the array-style notation (<code>[x]</code>), then the index [1] is
1591
+ * assumed (indexing of same name siblings begins at 1, not 0, in order to
1592
+ * preserve compatibility with XPath).
1593
+ * <p>
1594
+ * Within the scope of a single <code>Session</code> object, if a
1595
+ * <code>Node</code> object has been acquired, any subsequent call of
1596
+ * <code>getNode</code> reacquiring the same node must return a
1597
+ * <code>Node</code> object reflecting the same state as the earlier
1598
+ * <code>Node</code> object. Whether this object is actually the same
1599
+ * <code>Node</code> instance, or simply one wrapping the same state, is up
1600
+ * to the implementation.
1601
+ * @param relPath The relative path of the node to retrieve.
1602
+ * @return The node at <code>relPath</code>.
1603
+ * @throws PathNotFoundException if no node exists at the specified path or the current <code>Session</code> does not read access to the node at the specified path.
1604
+ * @throws RepositoryException If another error occurs.
1605
+ */
1606
+ getNode(relPath: string): Node;
1607
+
1608
+ /**
1609
+ * Returns all child nodes of this node accessible through the current
1610
+ * <code>Session</code>. Does <i>not</i> include properties of this
1611
+ * <code>Node</code>. The same reacquisition semantics apply as with {@link
1612
+ * #getNode(String)}. If this node has no accessible child nodes, then an
1613
+ * empty iterator is returned.
1614
+ * @return A <code>NodeIterator</code> over all child <code>Node</code>s of this <code>Node</code>.
1615
+ * @throws RepositoryException if an error occurs.
1616
+ */
1617
+ getNodes(): NodeIterator;
1618
+
1619
+ /**
1620
+ * Gets all child nodes of this node accessible through the current
1621
+ * <code>Session</code> that match <code>namePattern</code>. The pattern may
1622
+ * be a full name or a partial name with one or more wildcard characters
1623
+ * ("<code>*</code>"), or a disjunction (using the "<code>|</code>"
1624
+ * character to represent logical <code>OR</code>) of these. For example,
1625
+ * <p>
1626
+ * <code>N.getNodes("jcr:* | myapp:report | my doc")</code>
1627
+ * <p>
1628
+ * would return a <code>NodeIterator</code> holding all accessible child
1629
+ * nodes of <code>N</code> that are either called '<code>myapp:report</code>',
1630
+ * begin with the prefix '<code>jcr:</code>' or are called '<code>my
1631
+ * doc</code>'.
1632
+ * <p>
1633
+ * The substrings within the pattern that are delimited by "<code>|</code>"
1634
+ * characters and which may contain wildcard characters ("<code>*</code>")
1635
+ * are called <i>globs</i>.
1636
+ * <p>
1637
+ * Note that leading and trailing whitespace around a glob is ignored, but
1638
+ * whitespace within a disjunct forms part of the pattern to be matched.
1639
+ * <p>
1640
+ * The pattern is matched against the names (not the paths) of the immediate
1641
+ * child nodes of this node.
1642
+ * <p>
1643
+ * If this node has no accessible matching child nodes, then an empty
1644
+ * iterator is returned.
1645
+ * <p>
1646
+ * The same reacquisition semantics apply as with <code>{@link
1647
+ * #getNode(String)}</code>.
1648
+ * @param namePattern a name pattern.
1649
+ * @return a <code>NodeIterator</code>.
1650
+ * @throws RepositoryException if an unexpected error occurs.
1651
+ */
1652
+ getNodes(namePattern: string): NodeIterator;
1653
+
1654
+ /**
1655
+ * Gets all child nodes of this node accessible through the current
1656
+ * <code>Session</code> that match one or more of the <code>nameGlob</code>
1657
+ * strings in the passed array.
1658
+ * <p>
1659
+ * A glob may be a full name or a partial name with one or more wildcard
1660
+ * characters ("<code>*</code>"). For example,
1661
+ * <p>
1662
+ * <code>N.getNodes(new String[] {"jcr:*", "myapp:report", "my
1663
+ * doc"})</code>
1664
+ * <p>
1665
+ * would return a <code>NodeIterator</code> holding all accessible child
1666
+ * nodes of <code>N</code> that are either called '<code>myapp:report</code>',
1667
+ * begin with the prefix '<code>jcr:</code>' or are called '<code>my
1668
+ * doc</code>'.
1669
+ * <p>
1670
+ * Note that unlike in the case of the {@link #getNodes(String)} leading and
1671
+ * trailing whitespace around a glob is <i>not</i> ignored.
1672
+ * <p>
1673
+ * The globs are matched against the names (not the paths) of the immediate
1674
+ * child nodes of this node.
1675
+ * <p>
1676
+ * If this node has no accessible matching child nodes, then an empty
1677
+ * iterator is returned.
1678
+ * <p>
1679
+ * The same reacquisition semantics apply as with <code>{@link
1680
+ * #getNode(String)}</code>.
1681
+ *
1682
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
1683
+ * @param nameGlobs an array of globbing strings.
1684
+ * @return a <code>NodeIterator</code>.
1685
+ * @throws RepositoryException if an unexpected error occurs.
1686
+ * @since JCR 2.0
1687
+ */
1688
+ getNodes(nameGlobs: string): NodeIterator;
1689
+
1690
+ /**
1691
+ * Returns the property at <code>relPath</code> relative to
1692
+ * <code>this</code> node. The same reacquisition semantics apply as with
1693
+ * <code>{@link #getNode(String)}</code>.
1694
+ * @param relPath The relative path of the property to retrieve.
1695
+ * @return The property at <code>relPath</code>.
1696
+ * @throws PathNotFoundException if no property exists at the specified path or if the current <p> <code>Session</code> does not have read access to the specified property.
1697
+ * @throws RepositoryException If another error occurs.
1698
+ */
1699
+ getProperty(relPath: string): Property;
1700
+
1701
+ /**
1702
+ * Returns all properties of this node accessible through the current
1703
+ * <code>Session</code>. Does <i>not</i> include child <i>nodes</i> of this
1704
+ * node. The same reacquisition semantics apply as with <code>{@link
1705
+ * #getNode(String)}</code>. If this node has no accessible properties, then
1706
+ * an empty iterator is returned.
1707
+ * @return A <code>PropertyIterator</code>.
1708
+ * @throws RepositoryException if an error occurs.
1709
+ */
1710
+ getProperties(): PropertyIterator;
1711
+
1712
+ /**
1713
+ * Gets all properties of this node accessible through the current
1714
+ * <code>Session</code> that match <code>namePattern</code>.
1715
+ *
1716
+ * <p>The pattern may
1717
+ * be a full name or a partial name with one or more wildcard characters
1718
+ * ("<code>*</code>"), or a disjunction (using the "<code>|</code>"
1719
+ * character to represent logical <code>OR</code>) of these. For example,
1720
+ * </p><p>
1721
+ * <code>N.getProperties("jcr:* | myapp:name | my doc")</code>
1722
+ * </p><p>
1723
+ * would return a <code>PropertyIterator</code> holding all accessible
1724
+ * properties of <code>N</code> that are either called
1725
+ * '<code>myapp:name</code>', begin with the prefix '<code>jcr:</code>' or
1726
+ * are called '<code>my doc</code>'.
1727
+ * </p><p>
1728
+ * The substrings within the pattern that are delimited by "<code>|</code>"
1729
+ * characters and which may contain wildcard characters ("<code>*</code>")
1730
+ * are called <i>globs</i>.
1731
+ * </p><p>
1732
+ * Note that leading and trailing whitespace around a glob is ignored, but
1733
+ * whitespace within a disjunct forms part of the pattern to be matched.
1734
+ * </p><p>
1735
+ * The pattern is matched against the names (not the paths) of the immediate
1736
+ * child properties of this node.
1737
+ * </p><p>
1738
+ * If this node has no accessible matching properties, then an empty
1739
+ * iterator is returned.
1740
+ * </p><p>
1741
+ * The same reacquisition semantics apply as with <code>{@link #getNode(String)}</code>.
1742
+ * </p>
1743
+ * @param namePattern a name pattern.
1744
+ * @return a <code>PropertyIterator</code>.
1745
+ * @throws RepositoryException if an unexpected error occurs.
1746
+ */
1747
+ getProperties(namePattern: string): PropertyIterator;
1748
+
1749
+ /**
1750
+ * Gets all properties of this node accessible through the current
1751
+ * <code>Session</code> that match one or more of the <code>nameGlob</code>
1752
+ * strings in the passed array.
1753
+ * <p>
1754
+ * A glob may be a full name or a partial name with one or more wildcard
1755
+ * characters ("<code>*</code>"). For example,
1756
+ * <p>
1757
+ * <code>N.getProperties(new String[] {"jcr:*", "myapp:report", "my
1758
+ * doc"})</code>
1759
+ * <p>
1760
+ * would return a <code>PropertyIterator</code> holding all accessible
1761
+ * properties of <code>N</code> that are either called
1762
+ * '<code>myapp:report</code>', begin with the prefix '<code>jcr:</code>' or
1763
+ * are called '<code>my doc</code>'.
1764
+ * <p>
1765
+ * Note that unlike in the case of the {@link #getProperties(String)}
1766
+ * leading and trailing whitespace around a glob is <i>not</i> ignored.
1767
+ * <p>
1768
+ * The globs are matched against the names (not the paths) of the properties
1769
+ * of this node.
1770
+ * <p>
1771
+ * If this node has no accessible matching properties, then an empty
1772
+ * iterator is returned.
1773
+ * <p>
1774
+ * The same reacquisition semantics apply as with <code>{@link
1775
+ * #getProperty(String)}</code>.
1776
+ *
1777
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
1778
+ * @param nameGlobs an array of globbing strings.
1779
+ * @return a <code>PropertyIterator</code>.
1780
+ * @throws RepositoryException if an unexpected error occurs.
1781
+ * @since JCR 2.0
1782
+ */
1783
+ getProperties(nameGlobs: string): PropertyIterator;
1784
+
1785
+ /**
1786
+ * Returns the primary child item of this node. The primary node type of
1787
+ * this node may specify one child item (child node or property) of this
1788
+ * node as the <i>primary child item</i>. This method returns that item.
1789
+ * <p>
1790
+ * In cases where the primary child item specifies the name of a set
1791
+ * same-name sibling child nodes, the node returned will be the one among
1792
+ * the same-name siblings with index [1].
1793
+ * <p>
1794
+ * The same reacquisition semantics apply as with <code>{@link
1795
+ * #getNode(String)}</code>.
1796
+ *
1797
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
1798
+ * @return the primary child item.
1799
+ * @throws ItemNotFoundException if this node does not have a primary child item, either because none is declared in the node type or because a declared primary item is not present on this node instance, or because none is accessible through the current <code>Session</code>.
1800
+ * @throws RepositoryException if another error occurs.
1801
+ */
1802
+ getPrimaryItem(): Item;
1803
+
1804
+ /**
1805
+ * Returns the UUID of this node as recorded in this node's
1806
+ * <code>jcr:uuid</code> property. This method only works on nodes of mixin
1807
+ * node type <code>mix:referenceable</code>.
1808
+ * <p>
1809
+ * On nonreferenceable nodes, this method throws an <code>UnsupportedRepositoryOperationException</code>.
1810
+ * To avoid throwing an exception to determine whether a node has a UUID, a
1811
+ * call to {@link #isNodeType(String) isNodeType("mix:referenceable")} can
1812
+ * be made.
1813
+ * @return the UUID of this node.
1814
+ * @throws UnsupportedRepositoryOperationException if this node nonreferenceable.
1815
+ * @throws RepositoryException if another error occurs.
1816
+ * @deprecated As of JCR 2.0, {@link #getIdentifier()} should be used instead.
1817
+ */
1818
+ getUUID(): string;
1819
+
1820
+ /**
1821
+ * Returns the identifier of this node. Applies to both referenceable and
1822
+ * non-referenceable nodes.
1823
+ * <p>
1824
+ * A <code>RepositoryException</code> is thrown if an error occurs.
1825
+ * @return the identifier of this node.
1826
+ * @throws RepositoryException if an error occurs.
1827
+ * @since JCR 2.0
1828
+ */
1829
+ getIdentifier(): string;
1830
+
1831
+ /**
1832
+ * This method returns the index of this node within the ordered set of its
1833
+ * same-name sibling nodes. This index is the one used to address same-name
1834
+ * siblings using the square-bracket notation, e.g.,
1835
+ * <code>/a[3]/b[4]</code>. Note that the index always starts at 1 (not 0),
1836
+ * for compatibility with XPath. As a result, for nodes that do not have
1837
+ * same-name-siblings, this method will always return 1.
1838
+ *
1839
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
1840
+ * @return The index of this node within the ordered set of its same-name sibling nodes.
1841
+ * @throws RepositoryException if an error occurs.
1842
+ */
1843
+ getIndex(): number;
1844
+
1845
+ /**
1846
+ * This method returns all <code>REFERENCE</code> properties that refer to
1847
+ * this node and that are accessible through the current
1848
+ * <code>Session</code>. Equivalent to <code>Node.getReferences(null)</code>.
1849
+ * <p>
1850
+ * If this node has no referring <code>REFERENCE</code> properties, an
1851
+ * empty iterator is returned. This includes the case where this node is not referenceable.
1852
+ *
1853
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
1854
+ * @return A <code>PropertyIterator</code>.
1855
+ * @throws RepositoryException if an error occurs.
1856
+ * @see #getReferences(String)
1857
+ */
1858
+ getReferences(): PropertyIterator;
1859
+
1860
+ /**
1861
+ * This method returns all <code>REFERENCE</code> properties that refer to
1862
+ * this node, have the specified <code>name</code> and that are accessible
1863
+ * through the current <code>Session</code>.
1864
+ * <p>
1865
+ * If the <code>name</code> parameter is <code>null</code> then all
1866
+ * referring <code>REFERENCES</code> are returned regardless of name.
1867
+ * <p>
1868
+ * Some implementations may only return properties that have been persisted.
1869
+ * Some may return both properties that have been persisted and those that
1870
+ * have been dispatched but not persisted (for example, those saved within a
1871
+ * transaction but not yet committed) while others implementations may
1872
+ * return these two categories of property as well as properties that are
1873
+ * still pending and not yet dispatched.
1874
+ * <p>
1875
+ * In implementations that support versioning, this method does not return
1876
+ * properties that are part of the frozen state of a version in version
1877
+ * storage.
1878
+ * <p>
1879
+ * If this node has no referring <code>REFERENCE</code> properties with the specified name, an
1880
+ * empty iterator is returned. This includes the case where this node is not referenceable.
1881
+ *
1882
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
1883
+ * @param name name of referring <code>REFERENCE</code> properties to be returned; if <code>null</code> then all referring <code>REFERENCE</code>s are returned.
1884
+ * @return A <code>PropertyIterator</code>.
1885
+ * @throws RepositoryException if an error occurs.
1886
+ * @since JCR 2.0
1887
+ */
1888
+ getReferences(name: string): PropertyIterator;
1889
+
1890
+ /**
1891
+ * This method returns all <code>WEAKREFERENCE</code> properties that refer
1892
+ * to this node and that are accessible through the current
1893
+ * <code>Session</code>. Equivalent to <code>Node.getWeakReferences(null)</code>.
1894
+ * <p>
1895
+ * If this node has no referring <code>WEAKREFERENCE</code> properties, an
1896
+ * empty iterator is returned. This includes the case where this node is not referenceable.
1897
+ *
1898
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
1899
+ * @return A <code>PropertyIterator</code>.
1900
+ * @throws RepositoryException if an error occurs.
1901
+ * @see #getWeakReferences(String)
1902
+ * @since JCR 2.0
1903
+ */
1904
+ getWeakReferences(): PropertyIterator;
1905
+
1906
+ /**
1907
+ * This method returns all <code>WEAKREFERENCE</code> properties that refer
1908
+ * to this node, have the specified <code>name</code> and that are
1909
+ * accessible through the current <code>Session</code>.
1910
+ * <p>
1911
+ * If the <code>name</code> parameter is <code>null</code> then all
1912
+ * referring <code>WEAKREFERENCE</code> are returned regardless of name.
1913
+ * <p>
1914
+ * Some implementations may only return properties that have been persisted.
1915
+ * Some may return both properties that have been persisted and those that
1916
+ * have been dispatched but not persisted (for example, those saved within a
1917
+ * transaction but not yet committed) while others implementations may
1918
+ * return these two categories of property as well as properties that are
1919
+ * still pending and not yet dispatched.
1920
+ * <p>
1921
+ * In implementations that support versioning, this method does not return
1922
+ * properties that are part of the frozen state of a version in version
1923
+ * storage.
1924
+ * <p>
1925
+ * If this node has no referring <code>WEAKREFERENCE</code> properties with the specified name, an
1926
+ * empty iterator is returned. This includes the case where this node is not referenceable.
1927
+ *
1928
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
1929
+ * @param name name of referring <code>WEAKREFERENCE</code> properties to be returned; if <code>null</code> then all referring <code>WEAKREFERENCE</code>s are returned.
1930
+ * @return A <code>PropertyIterator</code>.
1931
+ * @throws RepositoryException if an error occurs.
1932
+ * @since JCR 2.0
1933
+ */
1934
+ getWeakReferences(name: string): PropertyIterator;
1935
+
1936
+ /**
1937
+ * Indicates whether a node exists at <code>relPath</code> Returns
1938
+ * <code>true</code> if a node accessible through the current
1939
+ * <code>Session</code> exists at <code>relPath</code> and
1940
+ * <code>false</code> otherwise.
1941
+ * @param relPath The path of a (possible) node.
1942
+ * @return <code>true</code> if a node exists at <code>relPath</code>; <code>false</code> otherwise.
1943
+ * @throws RepositoryException if an error occurs.
1944
+ */
1945
+ hasNode(relPath: string): boolean;
1946
+
1947
+ /**
1948
+ * Indicates whether a property exists at <code>relPath</code> Returns
1949
+ * <code>true</code> if a property accessible through the current
1950
+ * <code>Session</code> exists at <code>relPath</code> and
1951
+ * <code>false</code> otherwise.
1952
+ * @param relPath The path of a (possible) property.
1953
+ * @return <code>true</code> if a property exists at <code>relPath</code>; <code>false</code> otherwise.
1954
+ * @throws RepositoryException if an error occurs.
1955
+ */
1956
+ hasProperty(relPath: string): boolean;
1957
+
1958
+ /**
1959
+ * Indicates whether this node has child nodes. Returns <code>true</code> if
1960
+ * this node has one or more child nodes accessible through the current
1961
+ * <code>Session</code>; <code>false</code> otherwise.
1962
+ * @return <code>true</code> if this node has one or more child nodes; <code>false</code> otherwise.
1963
+ * @throws RepositoryException if an error occurs.
1964
+ */
1965
+ hasNodes(): boolean;
1966
+
1967
+ /**
1968
+ * Indicates whether this node has properties. Returns <code>true</code> if
1969
+ * this node has one or more properties accessible through the current
1970
+ * <code>Session</code>; <code>false</code> otherwise.
1971
+ * @return <code>true</code> if this node has one or more properties; <code>false</code> otherwise.
1972
+ * @throws RepositoryException if an error occurs.
1973
+ */
1974
+ hasProperties(): boolean;
1975
+
1976
+ /**
1977
+ * Returns the primary node type in effect for this node. Which
1978
+ * <code>NodeType</code> is returned when this method is called on the root
1979
+ * node of a workspace is up to the implementation.
1980
+ * @return a <code>NodeType</code> object.
1981
+ * @throws RepositoryException if an error occurs
1982
+ */
1983
+ getPrimaryNodeType(): NodeType;
1984
+
1985
+ /**
1986
+ * Returns an array of <code>NodeType</code> objects representing the mixin
1987
+ * node types in effect for this node. This includes only those mixin types
1988
+ * explicitly assigned to this node. It does not include mixin types
1989
+ * inherited through the addition of supertypes to the primary type
1990
+ * hierarchy or through the addition of supertypes to the type hierarchy of
1991
+ * any of the declared mixin types.
1992
+ * @return an array of <code>NodeType</code> objects.
1993
+ * @throws RepositoryException if an error occurs
1994
+ */
1995
+ getMixinNodeTypes(): NodeType;
1996
+
1997
+ /**
1998
+ * Returns <code>true</code> if this node is of the specified primary node
1999
+ * type or mixin type, or a subtype thereof. Returns <code>false</code>
2000
+ * otherwise.
2001
+ * <p>
2002
+ * This method respects the effective node type of the node.
2003
+ * @param nodeTypeName the name of a node type.
2004
+ * @return <code>true</code> If this node is of the specified primary node type or mixin type, or a subtype thereof. Returns <code>false</code> otherwise.
2005
+ * @throws RepositoryException if an error occurs.
2006
+ */
2007
+ isNodeType(nodeTypeName: string): boolean;
2008
+
2009
+ /**
2010
+ * Changes the primary node type of this node to <code>nodeTypeName</code>.
2011
+ * Also immediately changes this node's <code>jcr:primaryType</code>
2012
+ * property appropriately. Semantically, the new node type may take effect
2013
+ * immediately or on dispatch but <i>must</i> take effect on persist. The
2014
+ * behavior adopted must be the same as the behavior adopted for {@link
2015
+ * #addMixin} and the behavior that occurs when a node is first created.
2016
+ * <p>
2017
+ * If the presence of an existing property or child node would cause an
2018
+ * incompatibility with the new node type then a <code>ConstraintViolationException</code>
2019
+ * is thrown either immediately, on dispatch or on persist.
2020
+ * <p>
2021
+ * If the new node type would cause this node to be incompatible with the
2022
+ * node type of its parent then a <code>ConstraintViolationException</code>
2023
+ * is thrown either immediately, on dispatch or on persist.
2024
+ * <p>
2025
+ * A <code>ConstraintViolationException</code> is also thrown either
2026
+ * immediately, on dispatch or on persist if a conflict with an already
2027
+ * assigned mixin occurs.
2028
+ * <p>
2029
+ * A <code>ConstraintViolationException</code> may also be thrown either
2030
+ * immediately , on dispatch or on persist if the attempted change violates
2031
+ * implementation-specific node type transition rules. A repository that
2032
+ * disallows all primary node type changes would simple throw this exception
2033
+ * in all cases.
2034
+ * <p>
2035
+ * If the specified node type is not recognized a <code>NoSuchNodeTypeException</code>
2036
+ * is thrown either immediately, on dispatch or on persist.
2037
+ * <p>
2038
+ * A <code>VersionException</code> is thrown either immediately , on
2039
+ * dispatch or on persist if this node is read-only dues to a check-in.
2040
+ * <p>
2041
+ * A <code>LockException</code> is thrown either immediately, on dispatch or
2042
+ * on persist if a lock prevents the change of node type.
2043
+ *
2044
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2045
+ * @param nodeTypeName the name of the new node type.
2046
+ * @throws ConstraintViolationException if the specified primary node type creates a type conflict and this implementation performs this validation immediately.
2047
+ * @throws NoSuchNodeTypeException If the specified <code>nodeTypeName</code> is not recognized and this implementation performs this validation immediately.
2048
+ * @throws VersionException if this node is read-only due to a checked-in node and this implementation performs this validation immediately.
2049
+ * @throws LockException if a lock prevents the change of the primary node type and this implementation performs this validation immediately.
2050
+ * @throws RepositoryException if another error occurs.
2051
+ * @since JCR 2.0
2052
+ */
2053
+ setPrimaryType(nodeTypeName: string): void;
2054
+
2055
+ /**
2056
+ * Adds the mixin node type named <code>mixinName</code> to this node. If
2057
+ * this node is already of type <code>mixinName</code> (either due to a
2058
+ * previously added mixin or due to its primary type, through inheritance)
2059
+ * then this method has no effect. Otherwise <code>mixinName</code> is added
2060
+ * to this node's <code>jcr:mixinTypes</code> property.
2061
+ * <p>
2062
+ * Semantically, the new node type <i>may</i> take effect immediately, on
2063
+ * dispatch or on persist. The behavior adopted must be the same as the
2064
+ * behavior adopted for {@link #setPrimaryType} and the behavior that occurs
2065
+ * when a node is first created.
2066
+ * <p>
2067
+ * A <code>ConstraintViolationException</code> is thrown either immediately,
2068
+ * on dispatch or on persist, if a conflict with another assigned mixin or
2069
+ * the primary node type or for an implementation-specific reason.
2070
+ * Implementations may differ on when this validation is done.
2071
+ * <p>
2072
+ * In some implementations it may only be possible to add mixin types before
2073
+ * a a node is persisted <i>for the first time</i>. I such cases any later
2074
+ * calls to <code>addMixin</code> will throw a <code>ConstraintViolationException</code>
2075
+ * either immediately, on dispatch or on persist.
2076
+ * <p>
2077
+ * A <code>NoSuchNodeTypeException</code> is thrown either immediately, on
2078
+ * dispatch or on persist, if the specified <code>mixinName</code> is not
2079
+ * recognized. Implementations may differ on when this validation is done.
2080
+ * <p>
2081
+ * A <code>VersionException</code> is thrown either immediately, on dispatch
2082
+ * or on persist, if this node is read-only due to a checked-in node.
2083
+ * Implementations may differ on when this validation is done.
2084
+ * <p>
2085
+ * A <code>LockException</code> is thrown either immediately, on dispatch or
2086
+ * on persist, if a lock prevents the addition of the mixin. Implementations
2087
+ * may differ on when this validation is done.
2088
+ *
2089
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2090
+ * @param mixinName the name of the mixin node type to be added
2091
+ * @throws NoSuchNodeTypeException If the specified <code>mixinName</code> is not recognized and this implementation performs this validation immediately.
2092
+ * @throws ConstraintViolationException if the specified mixin node type creates a conflict and this implementation performs this validation immediately.
2093
+ * @throws VersionException if this node is read-only due to a checked-in node and this implementation performs this validation immediately.
2094
+ * @throws LockException if a lock prevents the addition of the mixin and this implementation performs this validation immediately.
2095
+ * @throws RepositoryException if another error occurs.
2096
+ */
2097
+ addMixin(mixinName: string): void;
2098
+
2099
+ /**
2100
+ * Removes the specified mixin node type from this node and removes
2101
+ * <code>mixinName</code> from this node's <code>jcr:mixinTypes</code>
2102
+ * property. Both the semantic change in effective node type and the
2103
+ * persistence of the change to the <code>jcr:mixinTypes</code> property
2104
+ * occur on persist.
2105
+ * <p>
2106
+ * If this node does not have the specified mixin, a
2107
+ * <code>NoSuchNodeTypeException</code> is thrown either immediately, on
2108
+ * dispatch or on persist. Implementations may differ on when this
2109
+ * validation is done.
2110
+ * <p>
2111
+ * A <code>ConstraintViolationException</code> will be thrown either
2112
+ * immediately, on dispatch or on persist, if the removal of a mixin is not
2113
+ * allowed. Implementations are free to enforce any policy with regard to
2114
+ * mixin removal and may differ on when this validation is done.
2115
+ * <p>
2116
+ * A <code>VersionException</code> is thrown either immediately, on dispatch
2117
+ * or on persist, if this node is read-only due to a checked-in node.
2118
+ * Implementations may differ on when this validation is done.
2119
+ * <p>
2120
+ * A <code>LockException</code> is thrown either immediately or on
2121
+ * <code>save</code> if a lock prevents the removal of the mixin.
2122
+ * Implementations may differ on when this validation is done.
2123
+ *
2124
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2125
+ * @param mixinName the name of the mixin node type to be removed.
2126
+ * @throws NoSuchNodeTypeException if the specified <code>mixinName</code> is not currently assigned to this node and this implementation performs this validation immediately.
2127
+ * @throws ConstraintViolationException if the specified mixin node type is prevented from being removed and this implementation performs this validation immediately.
2128
+ * @throws VersionException if this node is read-only due to a checked-in node and this implementation performs this validation immediately.
2129
+ * @throws LockException if a lock prevents the removal of the mixin and this implementation performs this validation immediately.
2130
+ * @throws RepositoryException if another error occurs.
2131
+ */
2132
+ removeMixin(mixinName: string): void;
2133
+
2134
+ /**
2135
+ * Returns <code>true</code> if calling {@link #addMixin} on this node
2136
+ * with the mixn node type <code>mixinName</code> will not fail. Returns
2137
+ * <code>false</code> otherwise.
2138
+ *
2139
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2140
+ * @param mixinName The name of the mixin to be tested.
2141
+ * @return <code>true</code> if addMixin will not fail when called on this node with the specified <code>mixinName</code>; <code>false</code> otherwise.
2142
+ * @throws NoSuchNodeTypeException if the specified mixin node type name is not recognized.
2143
+ * @throws RepositoryException if another error occurs.
2144
+ */
2145
+ canAddMixin(mixinName: string): boolean;
2146
+
2147
+ /**
2148
+ * Returns the node definition that applies to this node. In some cases
2149
+ * there may appear to be more than one definition that could apply to this
2150
+ * node. However, it is assumed that upon creation of this node, a single
2151
+ * particular definition was used and it is <i>that</i> definition that this
2152
+ * method returns. How this governing definition is selected upon node
2153
+ * creation from among others which may have been applicable is an
2154
+ * implementation issue and is not covered by this specification. The
2155
+ * <code>NodeDefinition</code> returned when this method is called on the
2156
+ * root node of a workspace is also up to the implementation.
2157
+ *
2158
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2159
+ * @return a <code>NodeDefinition</code> object.
2160
+ * @throws RepositoryException if an error occurs.
2161
+ * @see NodeType#getChildNodeDefinitions
2162
+ */
2163
+ getDefinition(): NodeDefinition;
2164
+
2165
+ /**
2166
+ * Creates a new version of this node and returns that {@link Version}
2167
+ * object. The new version becomes the <i>base version</i> of this node. The
2168
+ * name of the new version is implementaion determined.
2169
+ * <p>
2170
+ * This node becomes <i>checked-in</i> and its <code>jcr:checkedOut</code>
2171
+ * property is set to false to reflect this. On a successful check-in the
2172
+ * change to this property is made as a workspace-write, and therefore does
2173
+ * not require a <code>save</code>.
2174
+ * <p>
2175
+ * The part of the subgraph of this node that is affected by check-in
2176
+ * becomes read-only (see the specification for details).
2177
+ * <p>
2178
+ * If this node is already checked-in, this method has no effect but returns
2179
+ * the current base version of this node.
2180
+ *
2181
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2182
+ * @return the created version.
2183
+ * @throws VersionException if a child item of this node has an <code>OnParentVersion</code> status of <code>ABORT</code>. This includes the case (under full versioning) where an unresolved merge failure exists on this node, as indicated by the presence of a <code>jcr:mergeFailed</code> property. Under full versioning this exception is also thrown if the <code>jcr:predecessors</code> property of the node has no values.
2184
+ * @throws UnsupportedRepositoryOperationException if this node is not versionable.
2185
+ * @throws InvalidItemStateException if unsaved changes exist on this node.
2186
+ * @throws LockException If a lock prevents the operation.
2187
+ * @throws RepositoryException If another error occurs.
2188
+ * @deprecated As of JCR 2.0, {@link javax.jcr.version.VersionManager#checkin} should be used instead.
2189
+ */
2190
+ checkin(): Version;
2191
+
2192
+ /**
2193
+ * Sets this versionable node to checked-out status by setting its
2194
+ * <code>jcr:isCheckedOut</code> property to <code>true</code>. Under full
2195
+ * versioning it also sets the <code>jcr:predecessors</code> property to be
2196
+ * a reference to the current base version (the same value as held in
2197
+ * <code>jcr:baseVersion</code>). These changes are made by worksapce-write
2198
+ * and therefore do require a <code>save</code>.
2199
+ * <p>
2200
+ * The part of the subgraph of this node that is affected by the checked-out
2201
+ * status of this node becomes no longer read-only.
2202
+ * <p>
2203
+ * If this node is already checked-out, this method has no effect.
2204
+ *
2205
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2206
+ * @throws UnsupportedRepositoryOperationException if this node is not versionable.
2207
+ * @throws LockException if a lock prevents the checkout.
2208
+ * @throws ActivityViolationException if the checkout conflicts with the activity present on the current session.
2209
+ * @throws RepositoryException if another error occurs.
2210
+ * @deprecated As of JCR 2.0, {@link javax.jcr.version.VersionManager#checkout} should be used instead.
2211
+ */
2212
+ checkout(): void;
2213
+
2214
+ /**
2215
+ * <i>Support for this method is only required under full versioning.</i>
2216
+ * <p>
2217
+ * Completes the merge process with respect to this node and the specified
2218
+ * <code>version</code>.
2219
+ * <p>
2220
+ * When the {@link #merge} method is called on a node, every versionable
2221
+ * node in that subgraph is compared with its corresponding node in the
2222
+ * indicated other workspace and a "merge test result" is determined
2223
+ * indicating one of the following: <ol> <li> This node will be updated to
2224
+ * the state of its correspondee (if the base version of the correspondee is
2225
+ * more recent in terms of version history). </li> <li> This node will be
2226
+ * left alone (if this node's base version is more recent in terms of
2227
+ * version history). </li> <li> This node will be marked as having failed
2228
+ * the merge test (if this node's base version is on a different branch of
2229
+ * the version history from the base version of its corresponding node in
2230
+ * the other workspace, thus preventing an automatic determination of which
2231
+ * is more recent). </li> </ol> (See {@link #merge} for more details)
2232
+ * <p>
2233
+ * In the last case the merging of the subgraph of the versionable node in
2234
+ * question must be done by the application (for example, by providing a
2235
+ * merge tool for the user).
2236
+ * <p>
2237
+ * Additionally, once the subgraphs of the nodes has been merged, their
2238
+ * version graph branches must also be merged. The JCR versioning system
2239
+ * provides for this by keeping a record, for each versionable node that
2240
+ * fails the merge test, of the base version of the corresponding node that
2241
+ * caused the merge failure. This record is kept in the
2242
+ * <code>jcr:mergeFailed</code> property of this node. After a
2243
+ * <code>merge</code>, this property will contain one or more (if multiple
2244
+ * merges have been performed) <code>REFERENCE</code>s that point to the
2245
+ * "failed versions".
2246
+ * <p>
2247
+ * To complete the merge process, the client calls <code>doneMerge(Version
2248
+ * v)</code> passing the version object referred to be the
2249
+ * <code>jcr:mergeFailed</code> property that the client wishes to connect
2250
+ * to <code>this</code> node in the version graph. This has the effect of
2251
+ * moving the reference to the indicated version from the
2252
+ * <code>jcr:mergeFailed</code> property of <code>this</code> node to the
2253
+ * <code>jcr:predecessors</code>.
2254
+ * <p>
2255
+ * If the client chooses not to connect this node to a particular version
2256
+ * referenced in the <code>jcr:mergeFailed</code> property, he calls {@link
2257
+ * #cancelMerge(Version version)}. This has the effect of removing the
2258
+ * reference to the specified <code>version</code> from
2259
+ * <code>jcr:mergeFailed</code> <i>without</i> adding it to
2260
+ * <code>jcr:predecessors</code>.
2261
+ * <p>
2262
+ * Once the last reference in <code>jcr:mergeFailed</code> has been either
2263
+ * moved to <code>jcr:predecessors</code> (with <code>doneMerge</code>) or
2264
+ * just removed from <code>jcr:mergeFailed</code> (with
2265
+ * <code>cancelMerge</code>) the <code>jcr:mergeFailed</code> property is
2266
+ * automatically removed, thus enabling <code>this</code> node to be
2267
+ * checked-in, creating a new version (note that before the
2268
+ * <code>jcr:mergeFailed</code> is removed, its <code>OnParentVersion</code>
2269
+ * setting of <code>ABORT</code> prevents checkin). This new version will
2270
+ * have a predecessor connection to each version for which
2271
+ * <code>doneMerge</code> was called, thus joining those branches of the
2272
+ * version graph.
2273
+ * <p>
2274
+ * If successful, these changes are persisted immediately, there is no need
2275
+ * to call <code>save</code>.
2276
+ *
2277
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2278
+ * @param version a version referred to by this node's <code>jcr:mergeFailed</code> property.
2279
+ * @throws VersionException if the version specifed is not among those referenced in this node's <code>jcr:mergeFailed</code> or if this node is currently checked-in.
2280
+ * @throws InvalidItemStateException if there are unsaved changes pending on this node.
2281
+ * @throws UnsupportedRepositoryOperationException if this node is not versionable.
2282
+ * @throws RepositoryException if another error occurs.
2283
+ * @deprecated As of JCR 2.0, {@link javax.jcr.version.VersionManager#doneMerge} should be used instead.
2284
+ */
2285
+ doneMerge(version: Version): void;
2286
+
2287
+ /**
2288
+ * <i>Support for this method is only required under full versioning.</i>
2289
+ * <p>
2290
+ * Cancels the merge process with respect to this node and specified
2291
+ * <code>version</code>.
2292
+ * <p>
2293
+ * See {@link #doneMerge} for a full explanation. Also see {@link #merge}
2294
+ * for more details.
2295
+ * <p>
2296
+ * If successful, these changes are persisted immediately, there is no need
2297
+ * to call <code>save</code>.
2298
+ *
2299
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2300
+ * @param version a version referred to by this node's <code>jcr:mergeFailed</code> property.
2301
+ * @throws VersionException if the version specified is not among those referenced in this node's <code>jcr:mergeFailed</code> or if this node is currently checked-in.
2302
+ * @throws InvalidItemStateException if there are unsaved changes pending on this node.
2303
+ * @throws UnsupportedRepositoryOperationException if this node is not versionable.
2304
+ * @throws RepositoryException if another error occurs.
2305
+ * @deprecated As of JCR 2.0, {@link javax.jcr.version.VersionManager#cancelMerge} should be used instead.
2306
+ */
2307
+ cancelMerge(version: Version): void;
2308
+
2309
+ /**
2310
+ * If this node does have a corresponding node in the workspace
2311
+ * <code>srcWorkspace</code>, then this replaces this node and its subgraph
2312
+ * with a clone of the corresponding node and its subgraph.
2313
+ * <p>
2314
+ * If this node does not have a corresponding node in the workspace
2315
+ * <code>srcWorkspace</code>, then the <code>update</code> method has no
2316
+ * effect.
2317
+ * <p>
2318
+ * If the <code>update</code> succeeds the changes made are persisted
2319
+ * immediately, there is no need to call <code>save</code>.
2320
+ * <p>
2321
+ * Note that <code>update</code> does not respect the checked-in status of
2322
+ * nodes. An <code>update</code> may change a node even if it is currently
2323
+ * checked-in (This fact is only relevant in an implementation that supports
2324
+ * versioning).
2325
+ *
2326
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2327
+ * @param srcWorkspace the name of the source workspace.
2328
+ * @throws NoSuchWorkspaceException If <code>srcWorkspace</code> does not exist.
2329
+ * @throws InvalidItemStateException if this <code>Session</code> (not necessarily this <code>Node</code>) has pending unsaved changes.
2330
+ * @throws AccessDeniedException If the current session does not have sufficent access to perform the operation.
2331
+ * @throws LockException if a lock prevents the update.
2332
+ * @throws RepositoryException If another error occurs.
2333
+ */
2334
+ update(srcWorkspace: string): void;
2335
+
2336
+ /**
2337
+ * <i>Support for this method is only required under full versioning.</i>
2338
+ * <p>
2339
+ * This method can be thought of as a version-sensitive update.
2340
+ * <p>
2341
+ * It recursively tests each versionable node in the subgraph of this node
2342
+ * against its corresponding node in <code>srcWorkspace</code> with respect
2343
+ * to the relation between their respective base versions and either updates
2344
+ * the node in question or not, depending on the outcome of the test.
2345
+ * <p>
2346
+ * A <code>MergeException</code> is thrown if <code>bestEffort</code> is
2347
+ * <code>false</code> and a versionable node is encountered whose
2348
+ * corresponding node's base version is on a divergent branch from this
2349
+ * node's base version.
2350
+ * <p>
2351
+ * If successful, the changes are persisted immediately, there is no need to
2352
+ * call <code>save</code>.
2353
+ * <p>
2354
+ * This method returns a <code>NodeIterator</code> over all versionable
2355
+ * nodes in the subgraph that received a merge result of <i>fail</i>. If
2356
+ * <code>bestEffort</code> is <code>false</code>, this iterator will be
2357
+ * empty (since if <code>merge</code> returns successfully, instead of
2358
+ * throwing an exception, it will be because no failures were encountered).
2359
+ * If <code>bestEffort</code> is <code>true</code>, this iterator will
2360
+ * contain all nodes that received a <i>fail</i> during the course of this
2361
+ * <code>merge</code> operation.
2362
+ *
2363
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2364
+ * @param srcWorkspace the name of the source workspace.
2365
+ * @param bestEffort a boolean
2366
+ * @return iterator over all nodes that received a merge result of "fail" in the course of this operation.
2367
+ * @throws MergeException if <code>bestEffort</code> is <code>false</code> and a failed merge result is encountered.
2368
+ * @throws InvalidItemStateException if this session (not necessarily this <code>node</code>) has pending unsaved changes.
2369
+ * @throws NoSuchWorkspaceException if the specified <code>srcWorkspace</code> does not exist.
2370
+ * @throws AccessDeniedException if the current session does not have sufficient rights to perform the operation.
2371
+ * @throws LockException if a lock prevents the merge.
2372
+ * @throws RepositoryException if another error occurs.
2373
+ * @deprecated As of JCR 2.0, {@link javax.jcr.version.VersionManager#merge} should be used instead.
2374
+ */
2375
+ merge(srcWorkspace: string, bestEffort: boolean): NodeIterator;
2376
+
2377
+ /**
2378
+ * Returns the absolute path of the node in the specified workspace that
2379
+ * corresponds to <code>this</code> node.
2380
+ *
2381
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2382
+ * @param workspaceName the name of the workspace.
2383
+ * @return the absolute path to the corresponding node.
2384
+ * @throws ItemNotFoundException if no corresponding node is found.
2385
+ * @throws NoSuchWorkspaceException if the workspace is unknown.
2386
+ * @throws AccessDeniedException if the current <code>session</code> has insufficent access capabilities to perform this operation.
2387
+ * @throws RepositoryException if another error occurs.
2388
+ */
2389
+ getCorrespondingNodePath(workspaceName: string): string;
2390
+
2391
+ /**
2392
+ * Returns an iterator over all nodes that are in the shared set of this
2393
+ * node. If this node is not shared then the returned iterator contains only
2394
+ * this node.
2395
+ *
2396
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2397
+ * @return a <code>NodeIterator</code>.
2398
+ * @throws RepositoryException if an error occurs.
2399
+ * @since JCR 2.0
2400
+ */
2401
+ getSharedSet(): NodeIterator;
2402
+
2403
+ /**
2404
+ * Removes this node and every other node in the shared set of this node.
2405
+ * <p>
2406
+ * This removal must be done atomically, i.e., if one of the nodes cannot be
2407
+ * removed, the method throws the exception {@link Node#remove()} would have
2408
+ * thrown in that case, and none of the nodes are removed.
2409
+ * <p>
2410
+ * If this node is not shared this method removes only this node.
2411
+ *
2412
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2413
+ * @throws VersionException if the parent node of this item is versionable and checked-in or is non-versionable but its nearest versionable ancestor is checked-in and this implementation performs this validation immediately instead of waiting until <code>save</code>.
2414
+ * @throws LockException if a lock prevents the removal of this item and this implementation performs this validation immediately instead of waiting until <code>save</code>.
2415
+ * @throws ConstraintViolationException if removing the specified item would violate a node type or implementation-specific constraint and this implementation performs this validation immediately instead of waiting until <code>save</code>.
2416
+ * @throws RepositoryException if another error occurs.
2417
+ * @see #removeShare()
2418
+ * @see Item#remove()
2419
+ * @see javax.jcr.Session#removeItem(String)
2420
+ * @since JCR 2.0
2421
+ */
2422
+ removeSharedSet(): void;
2423
+
2424
+ /**
2425
+ * Removes this node, but does not remove any other node in the shared set
2426
+ * of this node.
2427
+ *
2428
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2429
+ * @throws VersionException if the parent node of this item is versionable and checked-in or is non-versionable but its nearest versionable ancestor is checked-in and this implementation performs this validation immediately instead of waiting until <code>save</code>.
2430
+ * @throws LockException if a lock prevents the removal of this item and this implementation performs this validation immediately instead of waiting until <code>save</code>.
2431
+ * @throws ConstraintViolationException if removing the specified item would violate a node type or implementation-specific constraint and this implementation performs this validation immediately instead of waiting until <code>save</code>.
2432
+ * @throws RepositoryException if if this node cannot be removed without removing another node in the shared set of this node or another error occurs.
2433
+ * @see #removeSharedSet()
2434
+ * @see Item#remove()
2435
+ * @see javax.jcr.Session#removeItem(String)
2436
+ * @since JCR 2.0
2437
+ */
2438
+ removeShare(): void;
2439
+
2440
+ /**
2441
+ * Returns <code>false</code> if this node is currently in the checked-in state
2442
+ * (either due to its own status as a versionable node or due to the effect of
2443
+ * a versionable node being checked in above it). Otherwise this method returns
2444
+ * <code>true</code>. This includes the case where the repository does not
2445
+ * support versioning (and therefore all nodes are always "checked-out",
2446
+ * by default).
2447
+ *
2448
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2449
+ * @return a boolean
2450
+ * @throws RepositoryException if an error occurs.
2451
+ */
2452
+ isCheckedOut(): boolean;
2453
+
2454
+ /**
2455
+ * Restores <code>this</code> node to the state defined by the version with
2456
+ * the specified <code>versionName</code>.
2457
+ * <p>
2458
+ * This method will work regardless of whether this node is checked-in or
2459
+ * not.
2460
+ * <p>
2461
+ * An identifier collision occurs when a node exists <i>outside the subgraph
2462
+ * rooted at this node</i> with the same identifier as a node that would be
2463
+ * introduced by the <code>restore</code> operation <i>into the subgraph at
2464
+ * this node</i>. The result in such a case is governed by the
2465
+ * <code>removeExisting</code> flag. If <code>removeExisting</code> is
2466
+ * <code>true</code>, then the incoming node takes precedence, and the
2467
+ * existing node (and its subgraph) is removed (if possible; otherwise a
2468
+ * <code>RepositoryException</code> is thrown). If <code>removeExisting</code>
2469
+ * is <code>false</code>, then a <code>ItemExistsException</code> is thrown
2470
+ * and no changes are made. Note that this applies not only to cases where
2471
+ * the restored node itself conflicts with an existing node but also to
2472
+ * cases where a conflict occurs with any node that would be introduced into
2473
+ * the workspace by the restore operation. In particular, conflicts
2474
+ * involving subnodes of the restored node that have
2475
+ * <code>OnParentVersion</code> settings of <code>COPY</code> or
2476
+ * <code>VERSION</code> are also governed by the <code>removeExisting</code>
2477
+ * flag.
2478
+ *
2479
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2480
+ * @param versionName a <code>Version</code> object
2481
+ * @param removeExisting a boolean flag that governs what happens in case of an identifier collision.
2482
+ * @throws UnsupportedRepositoryOperationException if this node is not versionable.
2483
+ * @throws VersionException if the specified <code>version</code> is not part of this node's version history or if an attempt is made to restore the root version (<code>jcr:rootVersion</code>).
2484
+ * @throws ItemExistsException if <code>removeExisting</code> is <code>false</code> and an identifier collision occurs.
2485
+ * @throws LockException if a lock prevents the restore.
2486
+ * @throws InvalidItemStateException if this <code>Session</code> (not necessarily this <code>Node</code>) has pending unsaved changes.
2487
+ * @throws RepositoryException If another error occurs.
2488
+ * @deprecated As of JCR 2.0, {@link javax.jcr.version.VersionManager#restore} should be used instead.
2489
+ */
2490
+ restore(versionName: string, removeExisting: boolean): void;
2491
+
2492
+ /**
2493
+ * Restores <code>this</code> node to the state defined by the specified
2494
+ * <code>version</code>.
2495
+ * <p>
2496
+ * If successful, the change is persisted immediately and there is no need
2497
+ * to call <code>save</code>.
2498
+ * <p>
2499
+ * This method will work regardless of whether this node is checked-in or
2500
+ * not.
2501
+ * <p>
2502
+ * An identifier collision occurs when a node exists <i>outside the subgraph
2503
+ * rooted at this node</i> with the same identifier as a node that would be
2504
+ * introduced by the <code>restore</code> operation <i>into the subgraph at
2505
+ * this node</i>. The result in such a case is governed by the
2506
+ * <code>removeExisting</code> flag. If <code>removeExisting</code> is
2507
+ * <code>true</code>, then the incoming node takes precedence, and the
2508
+ * existing node (and its subgraph) is removed (if possible; otherwise a
2509
+ * <code>RepositoryException</code> is thrown). If <code>removeExisting</code>
2510
+ * is <code>false</code>, then a <code>ItemExistsException</code> is thrown
2511
+ * and no changes are made. Note that this applies not only to cases where
2512
+ * the restored node itself conflicts with an existing node but also to
2513
+ * cases where a conflict occurs with any node that would be introduced into
2514
+ * the workspace by the restore operation. In particular, conflicts
2515
+ * involving subnodes of the restored node that have
2516
+ * <code>OnParentVersion</code> settings of <code>COPY</code> or
2517
+ * <code>VERSION</code> are also governed by the <code>removeExisting</code>
2518
+ * flag.
2519
+ *
2520
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2521
+ * @param version a <code>Version</code> object
2522
+ * @param removeExisting a boolean flag that governs what happens in case of an identifier collision.
2523
+ * @throws UnsupportedRepositoryOperationException if this node is not versionable.
2524
+ * @throws VersionException if the specified <code>version</code> is not part of this node's version history or if an attempt is made to restore the root version (<code>jcr:rootVersion</code>).
2525
+ * @throws ItemExistsException if <code>removeExisting</code> is <code>false</code> and an identifier collision occurs.
2526
+ * @throws InvalidItemStateException if this <code>Session</code> (not necessarily this <code>Node</code>) has pending unsaved changes.
2527
+ * @throws LockException if a lock prevents the restore.
2528
+ * @throws RepositoryException if another error occurs.
2529
+ * @deprecated As of JCR 2.0, {@link javax.jcr.version.VersionManager#restore} should be used instead.
2530
+ */
2531
+ restore(version: Version, removeExisting: boolean): void;
2532
+
2533
+ /**
2534
+ * Restores the specified version to <code>relPath</code>, relative to this
2535
+ * node.
2536
+ * <p>
2537
+ * If the <code>restore</code> succeeds, the changes made to this node are
2538
+ * persisted immediately, there is no need to call <code>save</code>.
2539
+ * <p>
2540
+ * A node need not exist at relPath, though the parent of
2541
+ * <code>relPath</code> must exist.
2542
+ * <p>
2543
+ * If a node <i>does</i> exist at relPath then it must correspond to the
2544
+ * version being restored (the version must be a version <i>of that
2545
+ * node</i>) and must not be a root version (<code>jcr:rootVersion</code>),
2546
+ * otherwise a <code>VersionException</code> is thrown.
2547
+ * <p>
2548
+ * If no node exists at <code>relPath</code> then a <code>VersionException</code>
2549
+ * is thrown if the parent node of <code>relPath</code> is read-only due to
2550
+ * a check-in. However, If there <i>is</i> a node at <code>relPath</code>
2551
+ * then the read-only status of that node itself and the read-only status of
2552
+ * its parent are irrelevant. The restore will work even if one or both are
2553
+ * read-only due to a checked-in node.
2554
+ * <p>
2555
+ * An identifier collision occurs when a node exists <i>outside the subgraph
2556
+ * rooted at <code>relPath</code></i> with the same identifier as a node
2557
+ * that would be introduced by the <code>restore</code> operation <i>into
2558
+ * the subgraph at <code>relPath</code></i> (Note that in cases where there
2559
+ * is no node at <code>relPath</code>, this amounts to saying that an
2560
+ * identifier collision occurs if there exists a node <i>anywhere</i> in
2561
+ * this workspace with the same identifier as a node that would be
2562
+ * introduced by the <code>restore</code>). The result in such a case is
2563
+ * governed by the <code>removeExisting</code> flag. If
2564
+ * <code>removeExisting</code> is <code>true</code>, then the incoming node
2565
+ * takes precedence, and the existing node (and its subgraph) is removed (if
2566
+ * possible; otherwise a <code>RepositoryException</code> is thrown). If
2567
+ * <code>removeExisting</code> is <code>false</code>, then a
2568
+ * <code>ItemExistsException</code> is thrown and no changes are made. Note
2569
+ * that this applies not only to cases where the restored node itself
2570
+ * conflicts with an existing node but also to cases where a conflict occurs
2571
+ * with any node that would be introduced into the workspace by the restore
2572
+ * operation. In particular, conflicts involving subnodes of the restored
2573
+ * node that have <code>OnParentVersion</code> settings of <code>COPY</code>
2574
+ * or <code>VERSION</code> are also governed by the <code>removeExisting</code>
2575
+ * flag.
2576
+ *
2577
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2578
+ * @param version a version object
2579
+ * @param relPath the path to which the version is to be restored
2580
+ * @param removeExisting governs what happens on identifier collision.
2581
+ * @throws PathNotFoundException if the parent of <code>relPath</code> does not exist.
2582
+ * @throws ItemExistsException if removeExisting is false and an identifier collision occurs
2583
+ * @throws ConstraintViolationException if the would-be parent of the location <code>relPath</code> is actually a property, or if a node type restriction would be violated
2584
+ * @throws VersionException if the parent node of <code>relPath</code> is read-only due to a checked-in node or if a node exists at relPath that is not the node corresponding to the specified <code>version</code> or if an attempt is made to restore the root version (<code>jcr:rootVersion</code>).
2585
+ * @throws UnsupportedRepositoryOperationException if versioning is not supported.
2586
+ * @throws LockException if a lock prevents the restore.
2587
+ * @throws InvalidItemStateException if this <code>Session</code> (not necessarily this <code>Node</code>) has pending unsaved changes.
2588
+ * @throws RepositoryException if another error occurs
2589
+ * @deprecated As of JCR 2.0, {@link javax.jcr.version.VersionManager#restore} should be used instead.
2590
+ */
2591
+ restore(version: Version, relPath: string, removeExisting: boolean): void;
2592
+
2593
+ /**
2594
+ * Restores the version of this node with the specified version label.
2595
+ * <p>
2596
+ * If successful, the change is persisted immediately and there is no need
2597
+ * to call <code>save</code>.
2598
+ * <p>
2599
+ * This method will work regardless of whether this node is checked-in or
2600
+ * not.
2601
+ * <p>
2602
+ * An identifier collision occurs when a node exists <i>outside the subgraph
2603
+ * rooted at this node</i> with the same identifier as a node that would be
2604
+ * introduced by the <code>restoreByLabel</code> operation <i>into the
2605
+ * subgraph at this node</i>. The result in such a case is governed by the
2606
+ * <code>removeExisting</code> flag. If <code>removeExisting</code> is
2607
+ * <code>true</code>, then the incoming node takes precedence, and the
2608
+ * existing node (and its subgraph) is removed (if possible; otherwise a
2609
+ * <code>RepositoryException</code> is thrown). If <code>removeExisting</code>
2610
+ * is <code>false</code>, then a <code>ItemExistsException</code> is thrown
2611
+ * and no changes are made. Note that this applies not only to cases where
2612
+ * the restored node itself conflicts with an existing node but also to
2613
+ * cases where a conflict occurs with any node that would be introduced into
2614
+ * the workspace by the restore operation. In particular, conflicts
2615
+ * involving subnodes of the restored node that have
2616
+ * <code>OnParentVersion</code> settings of <code>COPY</code> or
2617
+ * <code>VERSION</code> are also governed by the <code>removeExisting</code>
2618
+ * flag.
2619
+ * <p>
2620
+ * Note the special behavior in case of chained versions where a child node
2621
+ * of this node has an on <code>OnParentVersion</code>settings of
2622
+ * <code>VERSION</code> and is mix:versionable: If there is a version of the
2623
+ * child node with the specified label, then that version is restored;
2624
+ * otherwise the determination depends on the configuration of the workspace
2625
+ * and is defined by the implementation.
2626
+ *
2627
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2628
+ * @param versionLabel a String
2629
+ * @param removeExisting a boolean flag that governs what happens in case of an identifier collision.
2630
+ * @throws UnsupportedRepositoryOperationException if this node is not versionable.
2631
+ * @throws VersionException if the specified <code>versionLabel</code> does not exist in this node's version history.
2632
+ * @throws ItemExistsException if <code>removeExisting</code> is <code>false</code> and an identifier collision occurs.
2633
+ * @throws LockException if a lock prevents the restore.
2634
+ * @throws InvalidItemStateException if this <code>Session</code> (not necessarily this <code>Node</code>) has pending unsaved changes.
2635
+ * @throws RepositoryException If another error occurs.
2636
+ * @deprecated As of JCR 2.0, {@link javax.jcr.version.VersionManager#restoreByLabel} should be used instead.
2637
+ */
2638
+ restoreByLabel(versionLabel: string, removeExisting: boolean): void;
2639
+
2640
+ /**
2641
+ * Returns the <code>VersionHistory</code> object of this node. Under full
2642
+ * versioning this object provides access to the <code>nt:versionHistory</code>
2643
+ * node holding this node's versions.
2644
+ *
2645
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2646
+ * @return a <code>VersionHistory</code> object
2647
+ * @throws UnsupportedRepositoryOperationException if this node is not versionable.
2648
+ * @throws RepositoryException if another error occurs.
2649
+ * @deprecated As of JCR 2.0, {@link javax.jcr.version.VersionManager#getVersionHistory} should be used instead.
2650
+ */
2651
+ getVersionHistory(): VersionHistory;
2652
+
2653
+ /**
2654
+ * Returns the current base version of this versionable node.
2655
+ *
2656
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2657
+ * @return a <code>Version</code> object.
2658
+ * @throws UnsupportedRepositoryOperationException if this node is not versionable.
2659
+ * @throws RepositoryException if another error occurs.
2660
+ * @deprecated As of JCR 2.0, {@link javax.jcr.version.VersionManager#getBaseVersion} should be used instead.
2661
+ */
2662
+ getBaseVersion(): Version;
2663
+
2664
+ /**
2665
+ * Places a lock on this node. If successful, this node is said to
2666
+ * <i>hold</i> the lock.
2667
+ * <p>
2668
+ * If <code>isDeep</code> is <code>true</code> then the lock applies to this
2669
+ * node and all its descendant nodes; if <code>false</code>, the lock
2670
+ * applies only to this, the holding node.
2671
+ * <p>
2672
+ * If <code>isSessionScoped</code> is <code>true</code> then this lock will
2673
+ * expire upon the expiration of the current session (either through an
2674
+ * automatic or explicit <code>Session.logout</code>); if
2675
+ * <code>false</code>, this lock does not expire until explicitly unlocked
2676
+ * or automatically unlocked due to a implementation-specific limitation,
2677
+ * such as a timeout.
2678
+ * <p>
2679
+ * Returns a <code>Lock</code> object reflecting the state of the new lock.
2680
+ * <p>
2681
+ * If the lock is open-scoped the returned lock will include a lock token.
2682
+ * <p>
2683
+ * The lock token is also automatically added to the set of lock tokens held
2684
+ * by the current <code>Session</code>.
2685
+ * <p>
2686
+ * If successful, then the property <code>jcr:lockOwner</code> is created
2687
+ * and set to the value of <code>Session.getUserID</code> for the current
2688
+ * session and the property <code>jcr:lockIsDeep</code> is set to the value
2689
+ * passed in as <code>isDeep</code>. These changes are persisted
2690
+ * automatically; there is no need to call <code>save</code>.
2691
+ * <p>
2692
+ * Note that it is possible to lock a node even if it is checked-in (the
2693
+ * lock-related properties will be changed despite the checked-in status).
2694
+ *
2695
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2696
+ * @param isDeep if <code>true</code> this lock will apply to this node and all its descendants; if <code>false</code>, it applies only to this node.
2697
+ * @param isSessionScoped if <code>true</code>, this lock expires with the current session; if <code>false</code> it expires when explicitly or automatically unlocked for some other reason.
2698
+ * @return A <code>Lock</code> object containing a lock token.
2699
+ * @throws UnsupportedRepositoryOperationException if this implementation does not support locking.
2700
+ * @throws LockException if this node is not <code>mix:lockable</code> or this node is already locked or <code>isDeep</code> is <code>true</code> and a descendant node of this node already holds a lock or if this node has not yet been persisted.
2701
+ * @throws AccessDeniedException if this session does not have sufficient access capabilities to lock this node.
2702
+ * @throws InvalidItemStateException if this node has pending unsaved changes.
2703
+ * @throws RepositoryException if another error occurs.
2704
+ * @deprecated As of JCR 2.0, {@link LockManager#lock(String, boolean, boolean, long, String)} should be used instead.
2705
+ */
2706
+ lock(isDeep: boolean, isSessionScoped: boolean): Lock;
2707
+
2708
+ /**
2709
+ * Returns the <code>Lock</code> object that applies to this node. This may
2710
+ * be either a lock on this node itself or a deep lock on a node above this
2711
+ * node.
2712
+ *
2713
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2714
+ * @return The applicable <code>Lock</code> object.
2715
+ * @throws UnsupportedRepositoryOperationException if this implementation does not support locking.
2716
+ * @throws LockException if no lock applies to this node.
2717
+ * @throws AccessDeniedException if the curent session does not have sufficent access to get the lock.
2718
+ * @throws RepositoryException if another error occurs.
2719
+ * @deprecated As of JCR 2.0, {@link LockManager#getLock(String)} should be used instead.
2720
+ */
2721
+ getLock(): Lock;
2722
+
2723
+ /**
2724
+ * Removes the lock on this node. Also removes the properties
2725
+ * <code>jcr:lockOwner</code> and <code>jcr:lockIsDeep</code> from this
2726
+ * node. These changes are persisted automatically; there is no need to call
2727
+ * <code>save</code>. As well, the corresponding lock token is removed from
2728
+ * the set of lock tokens held by the current <code>Session</code>.
2729
+ * <p>
2730
+ * If this node does not currently hold a lock or holds a lock for which
2731
+ * this <code>Session</code> is not the owner, then a
2732
+ * <code>LockException</code> is thrown. Note however that the system may
2733
+ * give permission to a non-owning session to unlock a lock. Typically such
2734
+ * "lock-superuser" capability is intended to facilitate administrational
2735
+ * clean-up of orphaned open-scoped locks.
2736
+ * <p>
2737
+ * Note that it is possible to unlock a node even if it is checked-in (the
2738
+ * lock-related properties will be changed despite the checked-in status).
2739
+ *
2740
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2741
+ * @throws UnsupportedRepositoryOperationException if this implementation does not support locking.
2742
+ * @throws LockException if this node does not currently hold a lock or holds a lock for which this Session does not have the correct lock token
2743
+ * @throws AccessDeniedException if the current session does not have sufficent access to unlock this node.
2744
+ * @throws InvalidItemStateException if this node has pending unsaved changes.
2745
+ * @throws RepositoryException if another error occurs.
2746
+ * @deprecated As of JCR 2.0, {@link LockManager#unlock(String)} should be used instead.
2747
+ */
2748
+ unlock(): void;
2749
+
2750
+ /**
2751
+ * Returns <code>true</code> if this node holds a lock; otherwise returns
2752
+ * <code>false</code>. To <i>hold</i> a lock means that this node has
2753
+ * actually had a lock placed on it specifically, as opposed to just having
2754
+ * a lock <i>apply</i> to it due to a deep lock held by a node above.
2755
+ *
2756
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2757
+ * @return a <code>boolean</code>.
2758
+ * @throws RepositoryException if an error occurs.
2759
+ * @deprecated As of JCR 2.0, {@link LockManager#holdsLock(String)} should be used instead.
2760
+ */
2761
+ holdsLock(): boolean;
2762
+
2763
+ /**
2764
+ * Returns <code>true</code> if this node is locked either as a result of a
2765
+ * lock held by this node or by a deep lock on a node above this node;
2766
+ * otherwise returns <code>false</code>. This includes the case
2767
+ * where a repository does not support locking (in which case all
2768
+ * nodes are "unlocked" by default).
2769
+ *
2770
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2771
+ * @return a <code>boolean</code>.
2772
+ * @throws RepositoryException if an error occurs.
2773
+ */
2774
+ isLocked(): boolean;
2775
+
2776
+ /**
2777
+ * Causes the lifecycle state of this node to undergo the specified
2778
+ * <code>transition</code>.
2779
+ * <p>
2780
+ * This method may change the value of the <code>jcr:currentLifecycleState</code>
2781
+ * property, in most cases it is expected that the implementation will
2782
+ * change the value to that of the passed <code>transition</code> parameter,
2783
+ * though this is an implementation-specific issue. If the
2784
+ * <code>jcr:currentLifecycleState</code> property is changed the change is
2785
+ * persisted immediately, there is no need to call <code>save</code>.
2786
+ *
2787
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2788
+ * @param transition a state transition
2789
+ * @throws UnsupportedRepositoryOperationException if this implementation does not support lifecycle actions or if this node does not have the <code>mix:lifecycle</code> mixin.
2790
+ * @throws InvalidLifecycleTransitionException if the lifecycle transition is not successful.
2791
+ * @throws RepositoryException if another error occurs.
2792
+ * @since JCR 2.0
2793
+ */
2794
+ followLifecycleTransition(transition: string): void;
2795
+
2796
+ /**
2797
+ * Returns the list of valid state transitions for this node.
2798
+ *
2799
+ * <p><strong>Sitevision note:</strong> Unsupported operation</p>
2800
+ * @return a <code>String</code> array.
2801
+ * @throws UnsupportedRepositoryOperationException if this implementation does not support lifecycle actions or if this node does not have the <code>mix:lifecycle</code> mixin.
2802
+ * @throws RepositoryException if another error occurs.
2803
+ * @since JCR 2.0
2804
+ */
2805
+ getAllowedLifecycleTransistions(): string;
2806
+ }
2807
+
2808
+ export default Node;