/usr/share/doc/libosgi-compendium-java/api/org/osgi/service/dmt/MetaNode.html is in libosgi-compendium-java-doc 5.0.0-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html>
<head>
<!-- Generated by javadoc -->
<title>MetaNode</title>
<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="MetaNode";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/osgi/service/dmt/DmtSession.html" title="interface in org.osgi.service.dmt"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../org/osgi/service/dmt/Uri.html" title="class in org.osgi.service.dmt"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/osgi/service/dmt/MetaNode.html" target="_top">Frames</a></li>
<li><a href="MetaNode.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary: </li>
<li>Nested | </li>
<li><a href="#field.summary">Field</a> | </li>
<li>Constr | </li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail: </li>
<li><a href="#field.detail">Field</a> | </li>
<li>Constr | </li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.osgi.service.dmt</div>
<h2 title="Interface MetaNode" class="title">Interface MetaNode</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public interface <span class="typeNameLabel">MetaNode</span></pre>
<div class="block">The MetaNode contains meta data as standardized by OMA DM but extends it
(without breaking the compatibility) to provide for better DMT data quality
in an environment where many software components manipulate this data.
<p>
The interface has several types of functions to describe the nodes in the
DMT. Some methods can be used to retrieve standard OMA DM metadata such as
access type, cardinality, default, etc., others are for data extensions such
as valid names and values. In some cases the standard behaviour has been
extended, for example it is possible to provide several valid MIME types, or
to differentiate between normal and automatic dynamic nodes.
<p>
Most methods in this interface receive no input, just return information
about some aspect of the node. However, there are two methods that behave
differently, <a href="../../../../org/osgi/service/dmt/MetaNode.html#isValidName-java.lang.String-"><code>isValidName(String)</code></a> and <a href="../../../../org/osgi/service/dmt/MetaNode.html#isValidValue-org.osgi.service.dmt.DmtData-"><code>isValidValue(DmtData)</code></a>.
These validation methods are given a potential node name or value
(respectively), and can decide whether it is valid for the given node.
Passing the validation methods is a necessary condition for a name or value
to be used, but it is not necessarily sufficient: the plugin may carry out
more thorough (more expensive) checks when the node is actually created or
set.
<p>
If a <code>MetaNode</code> is available for a node, the DmtAdmin must use the
information provided by it to filter out invalid requests on that node.
However, not all methods on this interface are actually used for this
purpose, as many of them (e.g. <a href="../../../../org/osgi/service/dmt/MetaNode.html#getFormat--"><code>getFormat()</code></a> or
<a href="../../../../org/osgi/service/dmt/MetaNode.html#getValidNames--"><code>getValidNames()</code></a>) can be substituted with the validating methods. For
example, <a href="../../../../org/osgi/service/dmt/MetaNode.html#isValidValue-org.osgi.service.dmt.DmtData-"><code>isValidValue(DmtData)</code></a> can be expected to check the format,
minimum, maximum, etc. of a given value, making it unnecessary for the
DmtAdmin to call <a href="../../../../org/osgi/service/dmt/MetaNode.html#getFormat--"><code>getFormat()</code></a>, <a href="../../../../org/osgi/service/dmt/MetaNode.html#getMin--"><code>getMin()</code></a>, <a href="../../../../org/osgi/service/dmt/MetaNode.html#getMax--"><code>getMax()</code></a>
etc. separately. It is indicated in the description of each method if the
DmtAdmin does not enforce the constraints defined by it - such methods are
only for external use, for example in user interfaces.
<p>
Most of the methods of this class return <code>null</code> if a certain piece of
meta information is not defined for the node or providing this information is
not supported. Methods of this class do not throw exceptions.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd"> </span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#AUTOMATIC">AUTOMATIC</a></span></code>
<div class="block">Constant for representing an automatic node in the tree.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#CMD_ADD">CMD_ADD</a></span></code>
<div class="block">Constant for the ADD access type.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#CMD_DELETE">CMD_DELETE</a></span></code>
<div class="block">Constant for the DELETE access type.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#CMD_EXECUTE">CMD_EXECUTE</a></span></code>
<div class="block">Constant for the EXECUTE access type.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#CMD_GET">CMD_GET</a></span></code>
<div class="block">Constant for the GET access type.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#CMD_REPLACE">CMD_REPLACE</a></span></code>
<div class="block">Constant for the REPLACE access type.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#DYNAMIC">DYNAMIC</a></span></code>
<div class="block">Constant for representing a dynamic node in the tree.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#PERMANENT">PERMANENT</a></span></code>
<div class="block">Constant for representing a <code>PERMANENT</code> node in the tree.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd"> </span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#can-int-">can</a></span>(int operation)</code>
<div class="block">Check whether the given operation is valid for this node.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/osgi/service/dmt/DmtData.html" title="class in org.osgi.service.dmt">DmtData</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#getDefault--">getDefault</a></span>()</code>
<div class="block">Get the default value of this node if any.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#getDescription--">getDescription</a></span>()</code>
<div class="block">Get the explanation string associated with this node.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>java.lang.Object</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#getExtensionProperty-java.lang.String-">getExtensionProperty</a></span>(java.lang.String key)</code>
<div class="block">Returns the value for the specified extension property key.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>java.lang.String[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#getExtensionPropertyKeys--">getExtensionPropertyKeys</a></span>()</code>
<div class="block">Returns the list of extension property keys, if the provider of this
<code>MetaNode</code> provides proprietary extensions to node meta data.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#getFormat--">getFormat</a></span>()</code>
<div class="block">Get the node's format, expressed in terms of type constants defined in
<a href="../../../../org/osgi/service/dmt/DmtData.html" title="class in org.osgi.service.dmt"><code>DmtData</code></a>.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#getMax--">getMax</a></span>()</code>
<div class="block">Get the maximum allowed value associated with a node of numeric format.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#getMaxOccurrence--">getMaxOccurrence</a></span>()</code>
<div class="block">Get the number of maximum occurrences of this type of nodes on the same
level in the DMT.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>java.lang.String[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#getMimeTypes--">getMimeTypes</a></span>()</code>
<div class="block">Get the list of MIME types this node can hold.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#getMin--">getMin</a></span>()</code>
<div class="block">Get the minimum allowed value associated with a node of numeric format.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>java.lang.String[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#getRawFormatNames--">getRawFormatNames</a></span>()</code>
<div class="block">Get the format names for any raw formats supported by the node.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#getScope--">getScope</a></span>()</code>
<div class="block">Return the scope of the node.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>java.lang.String[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#getValidNames--">getValidNames</a></span>()</code>
<div class="block">Return an array of Strings if valid names are defined for the node, or
<code>null</code> if no valid name list is defined or if this piece of meta
info is not supported.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../org/osgi/service/dmt/DmtData.html" title="class in org.osgi.service.dmt">DmtData</a>[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#getValidValues--">getValidValues</a></span>()</code>
<div class="block">Return an array of DmtData objects if valid values are defined for the
node, or <code>null</code> otherwise.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#isLeaf--">isLeaf</a></span>()</code>
<div class="block">Check whether the node is a leaf node or an internal one.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#isValidName-java.lang.String-">isValidName</a></span>(java.lang.String name)</code>
<div class="block">Checks whether the given name is a valid name for this node.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#isValidValue-org.osgi.service.dmt.DmtData-">isValidValue</a></span>(<a href="../../../../org/osgi/service/dmt/DmtData.html" title="class in org.osgi.service.dmt">DmtData</a> value)</code>
<div class="block">Checks whether the given value is valid for this node.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/osgi/service/dmt/MetaNode.html#isZeroOccurrenceAllowed--">isZeroOccurrenceAllowed</a></span>()</code>
<div class="block">Check whether zero occurrence of this node is valid.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="CMD_ADD">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CMD_ADD</h4>
<pre>static final int CMD_ADD</pre>
<div class="block">Constant for the ADD access type. If <a href="../../../../org/osgi/service/dmt/MetaNode.html#can-int-"><code>can(int)</code></a> returns
<code>true</code> for this operation, this node can potentially be added to
its parent. Nodes with <a href="../../../../org/osgi/service/dmt/MetaNode.html#PERMANENT"><code>PERMANENT</code></a> or <a href="../../../../org/osgi/service/dmt/MetaNode.html#AUTOMATIC"><code>AUTOMATIC</code></a> scope
typically do not have this access type.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.osgi.service.dmt.MetaNode.CMD_ADD">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CMD_DELETE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CMD_DELETE</h4>
<pre>static final int CMD_DELETE</pre>
<div class="block">Constant for the DELETE access type. If <a href="../../../../org/osgi/service/dmt/MetaNode.html#can-int-"><code>can(int)</code></a> returns
<code>true</code> for this operation, the node can potentially be deleted.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.osgi.service.dmt.MetaNode.CMD_DELETE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CMD_EXECUTE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CMD_EXECUTE</h4>
<pre>static final int CMD_EXECUTE</pre>
<div class="block">Constant for the EXECUTE access type. If <a href="../../../../org/osgi/service/dmt/MetaNode.html#can-int-"><code>can(int)</code></a> returns
<code>true</code> for this operation, the node can potentially be executed.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.osgi.service.dmt.MetaNode.CMD_EXECUTE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CMD_REPLACE">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CMD_REPLACE</h4>
<pre>static final int CMD_REPLACE</pre>
<div class="block">Constant for the REPLACE access type. If <a href="../../../../org/osgi/service/dmt/MetaNode.html#can-int-"><code>can(int)</code></a> returns
<code>true</code> for this operation, the value and other properties of the
node can potentially be modified.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.osgi.service.dmt.MetaNode.CMD_REPLACE">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="CMD_GET">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>CMD_GET</h4>
<pre>static final int CMD_GET</pre>
<div class="block">Constant for the GET access type. If <a href="../../../../org/osgi/service/dmt/MetaNode.html#can-int-"><code>can(int)</code></a> returns
<code>true</code> for this operation, the value, the list of child nodes (in
case of interior nodes) and the properties of the node can potentially be
retrieved.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.osgi.service.dmt.MetaNode.CMD_GET">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="PERMANENT">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>PERMANENT</h4>
<pre>static final int PERMANENT</pre>
<div class="block">Constant for representing a <code>PERMANENT</code> node in the tree. This must
be returned by <a href="../../../../org/osgi/service/dmt/MetaNode.html#getScope--"><code>getScope()</code></a> if the node cannot be added, deleted
or modified in any way through tree operations. <code>PERMANENT</code> nodes
in general map to the roots of Plugins.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.osgi.service.dmt.MetaNode.PERMANENT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="DYNAMIC">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>DYNAMIC</h4>
<pre>static final int DYNAMIC</pre>
<div class="block">Constant for representing a dynamic node in the tree. This must be
returned by <a href="../../../../org/osgi/service/dmt/MetaNode.html#getScope--"><code>getScope()</code></a>. Dynamic nodes can be added and deleted.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.osgi.service.dmt.MetaNode.DYNAMIC">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="AUTOMATIC">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AUTOMATIC</h4>
<pre>static final int AUTOMATIC</pre>
<div class="block">Constant for representing an automatic node in the tree. This must be
returned by <a href="../../../../org/osgi/service/dmt/MetaNode.html#getScope--"><code>getScope()</code></a>. <code>AUTOMATIC</code> nodes are part of the
life cycle of their parent node, they usually describe
attributes/properties of the parent.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../constant-values.html#org.osgi.service.dmt.MetaNode.AUTOMATIC">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="can-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>can</h4>
<pre>boolean can(int operation)</pre>
<div class="block">Check whether the given operation is valid for this node. If no meta-data
is provided for a node, all operations are valid.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>operation</code> - One of the <code>MetaNode.CMD_...</code> constants.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>false</code> if the operation is not valid for this node or the
operation code is not one of the allowed constants</dd>
</dl>
</li>
</ul>
<a name="isLeaf--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLeaf</h4>
<pre>boolean isLeaf()</pre>
<div class="block">Check whether the node is a leaf node or an internal one.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the node is a leaf node</dd>
</dl>
</li>
</ul>
<a name="getScope--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getScope</h4>
<pre>int getScope()</pre>
<div class="block">Return the scope of the node. Valid values are <a href="../../../../org/osgi/service/dmt/MetaNode.html#PERMANENT"><code>MetaNode.PERMANENT</code></a>, <a href="../../../../org/osgi/service/dmt/MetaNode.html#DYNAMIC"><code>MetaNode.DYNAMIC</code></a> and
<a href="../../../../org/osgi/service/dmt/MetaNode.html#AUTOMATIC"><code>MetaNode.AUTOMATIC</code></a>. Note that a permanent node is not
the same as a node where the DELETE operation is not allowed. Permanent
nodes never can be deleted, whereas a non-deletable node can disappear in
a recursive DELETE operation issued on one of its parents. If no
meta-data is provided for a node, it can be assumed to be a dynamic node.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><a href="../../../../org/osgi/service/dmt/MetaNode.html#PERMANENT"><code>PERMANENT</code></a> for permanent nodes, <a href="../../../../org/osgi/service/dmt/MetaNode.html#AUTOMATIC"><code>AUTOMATIC</code></a> for
nodes that are automatically created, and <a href="../../../../org/osgi/service/dmt/MetaNode.html#DYNAMIC"><code>DYNAMIC</code></a>
otherwise</dd>
</dl>
</li>
</ul>
<a name="getDescription--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDescription</h4>
<pre>java.lang.String getDescription()</pre>
<div class="block">Get the explanation string associated with this node. Can be <code>null</code>
if no description is provided for this node.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>node description string or <code>null</code> for no description</dd>
</dl>
</li>
</ul>
<a name="getMaxOccurrence--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxOccurrence</h4>
<pre>int getMaxOccurrence()</pre>
<div class="block">Get the number of maximum occurrences of this type of nodes on the same
level in the DMT. Returns <code>Integer.MAX_VALUE</code> if there is no upper
limit. Note that if the occurrence is greater than 1 then this node can
not have siblings with different metadata. In other words, if different
types of nodes coexist on the same level, their occurrence can not be
greater than 1. If no meta-data is provided for a node, there is no upper
limit on the number of occurrences.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The maximum allowed occurrence of this node type</dd>
</dl>
</li>
</ul>
<a name="isZeroOccurrenceAllowed--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isZeroOccurrenceAllowed</h4>
<pre>boolean isZeroOccurrenceAllowed()</pre>
<div class="block">Check whether zero occurrence of this node is valid. If no meta-data is
returned for a node, zero occurrences are allowed.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if zero occurrence of this node is valid</dd>
</dl>
</li>
</ul>
<a name="getDefault--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDefault</h4>
<pre><a href="../../../../org/osgi/service/dmt/DmtData.html" title="class in org.osgi.service.dmt">DmtData</a> getDefault()</pre>
<div class="block">Get the default value of this node if any.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The default value or <code>null</code> if not defined</dd>
</dl>
</li>
</ul>
<a name="getMimeTypes--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMimeTypes</h4>
<pre>java.lang.String[] getMimeTypes()</pre>
<div class="block">Get the list of MIME types this node can hold. The first element of the
returned list must be the default MIME type.
<p>
All MIME types are considered valid if no meta-data is provided for a
node or if <code>null</code> is returned by this method. In this case the
default MIME type cannot be retrieved from the meta-data, but the node
may still have a default. This hidden default (if it exists) can be
utilized by passing <code>null</code> as the type parameter of
<a href="../../../../org/osgi/service/dmt/DmtSession.html#setNodeType-java.lang.String-java.lang.String-"><code>DmtSession.setNodeType(String, String)</code></a> or
<a href="../../../../org/osgi/service/dmt/DmtSession.html#createLeafNode-java.lang.String-org.osgi.service.dmt.DmtData-java.lang.String-"><code>DmtSession.createLeafNode(String, DmtData, String)</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the list of allowed MIME types for this node, starting with the
default MIME type, or <code>null</code> if all types are allowed</dd>
</dl>
</li>
</ul>
<a name="getMax--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMax</h4>
<pre>double getMax()</pre>
<div class="block">Get the maximum allowed value associated with a node of numeric format.
If no meta-data is provided for a node, there is no upper limit to its
value. This method is only meaningful if the node has one of the numeric
formats: integer, float, or long. format. The returned limit has
<code>double</code> type, as this can be used to denote all numeric limits
with full precision. The actual maximum should be the largest integer,
float or long number that does not exceed the returned value.
<p>
The information returned by this method is not checked by DmtAdmin, it is
only for external use, for example in user interfaces. DmtAdmin only
calls <a href="../../../../org/osgi/service/dmt/MetaNode.html#isValidValue-org.osgi.service.dmt.DmtData-"><code>isValidValue(DmtData)</code></a> for checking the value, its behavior
should be consistent with this method.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the allowed maximum, or <code>Double.MAX_VALUE</code> if there is no
upper limit defined or the node's format is not one of the
numeric formats integer, float, or long</dd>
</dl>
</li>
</ul>
<a name="getMin--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMin</h4>
<pre>double getMin()</pre>
<div class="block">Get the minimum allowed value associated with a node of numeric format.
If no meta-data is provided for a node, there is no lower limit to its
value. This method is only meaningful if the node has one of the numeric
formats: integer, float, or long format. The returned limit has
<code>double</code> type, as this can be used to denote both integer and float
limits with full precision. The actual minimum should be the smallest
integer, float or long value that is equal or larger than the returned
value.
<p>
The information returned by this method is not checked by DmtAdmin, it is
only for external use, for example in user interfaces. DmtAdmin only
calls <a href="../../../../org/osgi/service/dmt/MetaNode.html#isValidValue-org.osgi.service.dmt.DmtData-"><code>isValidValue(DmtData)</code></a> for checking the value, its behavior
should be consistent with this method.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the allowed minimum, or <code>Double.MIN_VALUE</code> if there is no
lower limit defined or the node's format is not one of the
numeric formats integer, float, or long</dd>
</dl>
</li>
</ul>
<a name="getValidValues--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getValidValues</h4>
<pre><a href="../../../../org/osgi/service/dmt/DmtData.html" title="class in org.osgi.service.dmt">DmtData</a>[] getValidValues()</pre>
<div class="block">Return an array of DmtData objects if valid values are defined for the
node, or <code>null</code> otherwise. If no meta-data is provided for a node,
all values are considered valid.
<p>
The information returned by this method is not checked by DmtAdmin, it is
only for external use, for example in user interfaces. DmtAdmin only
calls <a href="../../../../org/osgi/service/dmt/MetaNode.html#isValidValue-org.osgi.service.dmt.DmtData-"><code>isValidValue(DmtData)</code></a> for checking the value, its behavior
should be consistent with this method.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the valid values for this node, or <code>null</code> if not defined</dd>
</dl>
</li>
</ul>
<a name="getFormat--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFormat</h4>
<pre>int getFormat()</pre>
<div class="block">Get the node's format, expressed in terms of type constants defined in
<a href="../../../../org/osgi/service/dmt/DmtData.html" title="class in org.osgi.service.dmt"><code>DmtData</code></a>. If there are multiple formats allowed for the node then
the format constants are OR-ed. Interior nodes must have
<a href="../../../../org/osgi/service/dmt/DmtData.html#FORMAT_NODE"><code>DmtData.FORMAT_NODE</code></a> format, and this code must not be returned
for leaf nodes. If no meta-data is provided for a node, all applicable
formats are considered valid (with the above constraints regarding
interior and leaf nodes).
<p>
Note that the 'format' term is a legacy from OMA DM, it is more customary
to think of this as 'type'.
<p>
The formats returned by this method are not checked by DmtAdmin, they are
only for external use, for example in user interfaces. DmtAdmin only
calls <a href="../../../../org/osgi/service/dmt/MetaNode.html#isValidValue-org.osgi.service.dmt.DmtData-"><code>isValidValue(DmtData)</code></a> for checking the value, its behavior
should be consistent with this method.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the allowed format(s) of the node</dd>
</dl>
</li>
</ul>
<a name="getRawFormatNames--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRawFormatNames</h4>
<pre>java.lang.String[] getRawFormatNames()</pre>
<div class="block">Get the format names for any raw formats supported by the node. This
method is only meaningful if the list of supported formats returned by
<a href="../../../../org/osgi/service/dmt/MetaNode.html#getFormat--"><code>getFormat()</code></a> contains <a href="../../../../org/osgi/service/dmt/DmtData.html#FORMAT_RAW_STRING"><code>DmtData.FORMAT_RAW_STRING</code></a> or
<a href="../../../../org/osgi/service/dmt/DmtData.html#FORMAT_RAW_BINARY"><code>DmtData.FORMAT_RAW_BINARY</code></a>: it specifies precisely which raw
format(s) are actually supported. If the node cannot contain data in one
of the raw types, this method must return <code>null</code>.
<p>
The format names returned by this method are not checked by DmtAdmin,
they are only for external use, for example in user interfaces. DmtAdmin
only calls <a href="../../../../org/osgi/service/dmt/MetaNode.html#isValidValue-org.osgi.service.dmt.DmtData-"><code>isValidValue(DmtData)</code></a> for checking the value, its
behavior should be consistent with this method.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the allowed format name(s) of raw data stored by the node, or
<code>null</code> if raw formats are not supported</dd>
</dl>
</li>
</ul>
<a name="isValidValue-org.osgi.service.dmt.DmtData-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValidValue</h4>
<pre>boolean isValidValue(<a href="../../../../org/osgi/service/dmt/DmtData.html" title="class in org.osgi.service.dmt">DmtData</a> value)</pre>
<div class="block">Checks whether the given value is valid for this node. This method can be
used to ensure that the value has the correct format and range, that it
is well formed, etc. This method should be consistent with the
constraints defined by the <a href="../../../../org/osgi/service/dmt/MetaNode.html#getFormat--"><code>getFormat()</code></a>,
<a href="../../../../org/osgi/service/dmt/MetaNode.html#getValidValues--"><code>getValidValues()</code></a>, <a href="../../../../org/osgi/service/dmt/MetaNode.html#getMin--"><code>getMin()</code></a> and <a href="../../../../org/osgi/service/dmt/MetaNode.html#getMax--"><code>getMax()</code></a>
methods (if applicable), as the Dmt Admin only calls this method for
value validation.
<p>
This method may return <code>true</code> even if not all aspects of the value
have been checked, expensive operations (for example those that require
external resources) need not be performed here. The actual value setting
method may still indicate that the value is invalid.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - the value to check for validity</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>false</code> if the specified value is found to be invalid for
the node described by this meta-node, <code>true</code> otherwise</dd>
</dl>
</li>
</ul>
<a name="getValidNames--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getValidNames</h4>
<pre>java.lang.String[] getValidNames()</pre>
<div class="block">Return an array of Strings if valid names are defined for the node, or
<code>null</code> if no valid name list is defined or if this piece of meta
info is not supported. If no meta-data is provided for a node, all names
are considered valid.
<p>
The information returned by this method is not checked by DmtAdmin, it is
only for external use, for example in user interfaces. DmtAdmin only
calls <a href="../../../../org/osgi/service/dmt/MetaNode.html#isValidName-java.lang.String-"><code>isValidName(String)</code></a> for checking the name, its behavior
should be consistent with this method.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the valid values for this node name, or <code>null</code> if not
defined</dd>
</dl>
</li>
</ul>
<a name="isValidName-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isValidName</h4>
<pre>boolean isValidName(java.lang.String name)</pre>
<div class="block">Checks whether the given name is a valid name for this node. This method
can be used for example to ensure that the node name is always one of a
predefined set of valid names, or that it matches a specific pattern.
This method should be consistent with the values returned by
<a href="../../../../org/osgi/service/dmt/MetaNode.html#getValidNames--"><code>getValidNames()</code></a> (if any), the DmtAdmin only calls this method
for name validation.
<p>
This method may return <code>true</code> even if not all aspects of the name
have been checked, expensive operations (for example those that require
external resources) need not be performed here. The actual node creation
may still indicate that the node name is invalid.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>name</code> - the node name to check for validity</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>false</code> if the specified name is found to be invalid for
the node described by this meta-node, <code>true</code> otherwise</dd>
</dl>
</li>
</ul>
<a name="getExtensionPropertyKeys--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExtensionPropertyKeys</h4>
<pre>java.lang.String[] getExtensionPropertyKeys()</pre>
<div class="block">Returns the list of extension property keys, if the provider of this
<code>MetaNode</code> provides proprietary extensions to node meta data. The
method returns <code>null</code> if the node doesn't provide such extensions.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the array of supported extension property keys</dd>
</dl>
</li>
</ul>
<a name="getExtensionProperty-java.lang.String-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getExtensionProperty</h4>
<pre>java.lang.Object getExtensionProperty(java.lang.String key)</pre>
<div class="block">Returns the value for the specified extension property key. This method
only works if the provider of this <code>MetaNode</code> provides proprietary
extensions to node meta data.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - the key for the extension property</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the value of the requested property, cannot be <code>null</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.IllegalArgumentException</code> - if the specified key is not supported by
this <code>MetaNode</code></dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../index-all.html">Index</a></li>
<li><a href="../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../org/osgi/service/dmt/DmtSession.html" title="interface in org.osgi.service.dmt"><span class="typeNameLink">Prev Class</span></a></li>
<li><a href="../../../../org/osgi/service/dmt/Uri.html" title="class in org.osgi.service.dmt"><span class="typeNameLink">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/osgi/service/dmt/MetaNode.html" target="_top">Frames</a></li>
<li><a href="MetaNode.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary: </li>
<li>Nested | </li>
<li><a href="#field.summary">Field</a> | </li>
<li>Constr | </li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail: </li>
<li><a href="#field.detail">Field</a> | </li>
<li>Constr | </li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
|