001/* 002 * GeoAPI - Java interfaces for OGC/ISO standards 003 * Copyright © 2008-2024 Open Geospatial Consortium, Inc. 004 * http://www.geoapi.org 005 * 006 * Licensed under the Apache License, Version 2.0 (the "License"); 007 * you may not use this file except in compliance with the License. 008 * You may obtain a copy of the License at 009 * 010 * http://www.apache.org/licenses/LICENSE-2.0 011 * 012 * Unless required by applicable law or agreed to in writing, software 013 * distributed under the License is distributed on an "AS IS" BASIS, 014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 015 * See the License for the specific language governing permissions and 016 * limitations under the License. 017 */ 018package org.opengis.test; 019 020import javax.imageio.spi.ImageReaderSpi; 021import javax.imageio.spi.ImageWriterSpi; 022import javax.imageio.metadata.IIOMetadataFormat; 023 024import org.opengis.util.*; 025import org.opengis.metadata.*; 026import org.opengis.metadata.extent.*; 027import org.opengis.metadata.citation.*; 028import org.opengis.geometry.*; 029import org.opengis.metadata.quality.*; 030import org.opengis.metadata.maintenance.*; 031import org.opengis.metadata.maintenance.Scope; // Resolve ambiguity. 032import org.opengis.parameter.*; 033import org.opengis.referencing.*; 034import org.opengis.referencing.cs.*; 035import org.opengis.referencing.crs.*; 036import org.opengis.referencing.datum.*; 037import org.opengis.referencing.operation.*; 038 039// Following imports are for javadoc 040import org.opengis.test.util.*; 041import org.opengis.test.geometry.*; 042import org.opengis.test.metadata.*; 043import org.opengis.test.referencing.*; 044import org.opengis.test.coverage.image.*; 045 046 047/** 048 * A set of convenience static methods for validating GeoAPI implementations. Every 049 * {@code validate} method defined in this class delegate their work to one of many 050 * {@link Validator} objects in various packages. This class is especially convenient 051 * when used with {@code static import} statements. 052 * 053 * <h2>Customization</h2> 054 * To override some validation process on a <em>system-wide</em> basis, vendors can either 055 * assign a new {@link ValidatorContainer} instance to the {@link #DEFAULT} static field, or 056 * modify the fields ({@link ValidatorContainer#cs cs}, {@link ValidatorContainer#crs crs}, 057 * <i>etc.</i>) in the existing instance. The following example alters the existing instance 058 * in order to accept non-standard axis names: 059 * 060 * {@snippet lang="java" : 061 * Validators.DEFAULT.crs.enforceStandardNames = false; 062 * } 063 * 064 * <p>To override some validation process without changing the system-wide setting, 065 * vendors can create a new instance of {@link ValidatorContainer} and invoke its 066 * non-static methods from the vendor's test cases.</p> 067 * 068 * @author Martin Desruisseaux (Geomatys) 069 * @version 3.1 070 * @since 2.2 071 */ 072public class Validators { 073 /** 074 * The default container to be used by all static {@code validate} methods. 075 * Vendors can change the validators referenced by this container, or change 076 * their setting. 077 * 078 * <p>This field is not final in order to allow vendors to switch easily between 079 * different configurations, for example:</p> 080 * 081 * {@snippet lang="java" : 082 * ValidatorContainer original = Validators.DEFAULT; 083 * Validators.DEFAULT = myConfig; 084 * ... do some tests ... 085 * Validators.DEFAULT = original; 086 * } 087 */ 088 public static ValidatorContainer DEFAULT = new ValidatorContainer(); 089 090 /** 091 * For subclass constructors only. 092 */ 093 protected Validators() { 094 } 095 096 /** 097 * For each interface implemented by the given object, invokes the corresponding 098 * {@code validate(…)} method (if any). Use this method only if the type is 099 * unknown at compile-time. 100 * 101 * @param object the object to dispatch to {@code validate(…)} methods, or {@code null}. 102 */ 103 public static void dispatch(final Object object) { 104 DEFAULT.dispatch(object); 105 } 106 107 /** 108 * Tests the conformance of the given object. 109 * 110 * @param object the object to test, or {@code null}. 111 * 112 * @see MetadataBaseValidator#validate(Metadata) 113 * 114 * @since 3.1 115 */ 116 public static void validate(final Metadata object) { 117 DEFAULT.validate(object); 118 } 119 120 /** 121 * Tests the conformance of the given object. 122 * 123 * @param object the object to test, or {@code null}. 124 * 125 * @see CitationValidator#validate(Citation) 126 */ 127 public static void validate(final Citation object) { 128 DEFAULT.validate(object); 129 } 130 131 /** 132 * Tests the conformance of the given objects. 133 * 134 * @param object the objects to test, or {@code null}. 135 * 136 * @see CitationValidator#validate(CitationDate...) 137 * 138 * @since 3.1 139 */ 140 public static void validate(final CitationDate... object) { 141 DEFAULT.validate(object); 142 } 143 144 /** 145 * Tests the conformance of the given object. 146 * 147 * @param object the object to test, or {@code null}. 148 * 149 * @see CitationValidator#validate(Responsibility) 150 * 151 * @since 3.1 152 */ 153 public static void validate(final Responsibility object) { 154 DEFAULT.validate(object); 155 } 156 157 /** 158 * Tests the conformance of the given object. 159 * 160 * @param object the object to test, or {@code null}. 161 * 162 * @see CitationValidator#validate(Party) 163 * 164 * @since 3.1 165 */ 166 public static void validate(final Party object) { 167 DEFAULT.validate(object); 168 } 169 170 /** 171 * Tests the conformance of the given object. 172 * 173 * @param object the object to test, or {@code null}. 174 * 175 * @see CitationValidator#validate(Contact) 176 * 177 * @since 3.1 178 */ 179 public static void validate(final Contact object) { 180 DEFAULT.validate(object); 181 } 182 183 /** 184 * Tests the conformance of the given object. 185 * 186 * @param object the object to test, or {@code null}. 187 * 188 * @see CitationValidator#validate(Telephone) 189 * 190 * @since 3.1 191 */ 192 public static void validate(final Telephone object) { 193 DEFAULT.validate(object); 194 } 195 196 /** 197 * Tests the conformance of the given object. 198 * 199 * @param object the object to test, or {@code null}. 200 * 201 * @see CitationValidator#validate(Address) 202 * 203 * @since 3.1 204 */ 205 public static void validate(final Address object) { 206 DEFAULT.validate(object); 207 } 208 209 /** 210 * Tests the conformance of the given object. 211 * 212 * @param object the object to test, or {@code null}. 213 * 214 * @see CitationValidator#validate(OnlineResource) 215 * 216 * @since 3.1 217 */ 218 public static void validate(final OnlineResource object) { 219 DEFAULT.validate(object); 220 } 221 222 /** 223 * Tests the conformance of the given object. 224 * 225 * @param object the object to test, or {@code null}. 226 * 227 * @see QualityValidator#validate(DataQuality) 228 * 229 * @since 3.1 230 */ 231 public static void validate(final DataQuality object) { 232 DEFAULT.validate(object); 233 } 234 235 /** 236 * Tests the conformance of the given object. 237 * 238 * @param object the object to test, or {@code null}. 239 * 240 * @see QualityValidator#dispatch(Element) 241 * 242 * @since 3.1 243 */ 244 public static void validate(final Element object) { 245 DEFAULT.validate(object); 246 } 247 248 /** 249 * Tests the conformance of the given object. 250 * 251 * @param object the object to test, or {@code null}. 252 * 253 * @see MaintenanceValidator#validate(MaintenanceInformation) 254 * 255 * @since 3.1 256 */ 257 public static void validate(final PositionalAccuracy object) { 258 DEFAULT.validate(object); 259 } 260 261 /** 262 * Tests the conformance of the given object. 263 * 264 * @param object the object to test, or {@code null}. 265 * 266 * @see QualityValidator#dispatch(Result) 267 * 268 * @since 3.1 269 */ 270 public static void validate(final Result object) { 271 DEFAULT.validate(object); 272 } 273 274 /** 275 * Tests the conformance of the given object. 276 * 277 * @param object the object to test, or {@code null}. 278 * 279 * @see QualityValidator#validate(DescriptiveResult) 280 * 281 * @since 3.1 282 */ 283 public static void validate(final DescriptiveResult object) { 284 DEFAULT.validate(object); 285 } 286 287 /** 288 * Tests the conformance of the given object. 289 * 290 * @param object the object to test, or {@code null}. 291 * 292 * @see QualityValidator#validate(ConformanceResult) 293 * 294 * @since 3.1 295 */ 296 public static void validate(final ConformanceResult object) { 297 DEFAULT.validate(object); 298 } 299 300 /** 301 * Tests the conformance of the given object. 302 * 303 * @param object the object to test, or {@code null}. 304 * 305 * @see QualityValidator#validate(QuantitativeResult) 306 * 307 * @since 3.1 308 */ 309 public static void validate(final QuantitativeResult object) { 310 DEFAULT.validate(object); 311 } 312 313 /** 314 * Tests the conformance of the given object. 315 * 316 * @param object the object to test, or {@code null}. 317 * 318 * @see QualityValidator#validate(CoverageResult) 319 * 320 * @since 3.1 321 */ 322 public static void validate(final CoverageResult object) { 323 DEFAULT.validate(object); 324 } 325 326 /** 327 * Tests the conformance of the given object. 328 * 329 * @param object the object to test, or {@code null}. 330 * 331 * @see MaintenanceValidator#validate(MaintenanceInformation) 332 * 333 * @since 3.1 334 */ 335 public static void validate(final MaintenanceInformation object) { 336 DEFAULT.validate(object); 337 } 338 339 /** 340 * Tests the conformance of the given object. 341 * 342 * @param object the object to test, or {@code null}. 343 * 344 * @see MaintenanceValidator#validate(Scope) 345 * 346 * @since 3.1 347 */ 348 public static void validate(final Scope object) { 349 DEFAULT.validate(object); 350 } 351 352 /** 353 * Tests the conformance of the given object. 354 * 355 * @param object the object to test, or {@code null}. 356 * 357 * @see ExtentValidator#validate(Extent) 358 */ 359 public static void validate(final Extent object) { 360 DEFAULT.validate(object); 361 } 362 363 /** 364 * Tests the conformance of the given object. 365 * 366 * @param object the object to test, or {@code null}. 367 * 368 * @see ExtentValidator#validate(TemporalExtent) 369 */ 370 public static void validate(final TemporalExtent object) { 371 DEFAULT.validate(object); 372 } 373 374 /** 375 * Tests the conformance of the given object. 376 * 377 * @param object the object to test, or {@code null}. 378 * 379 * @see ExtentValidator#validate(VerticalExtent) 380 */ 381 public static void validate(final VerticalExtent object) { 382 DEFAULT.validate(object); 383 } 384 385 /** 386 * Tests the conformance of the given object. 387 * 388 * @param object the object to test, or {@code null}. 389 * 390 * @see ExtentValidator#dispatch(GeographicExtent) 391 */ 392 public static void validate(final GeographicExtent object) { 393 DEFAULT.validate(object); 394 } 395 396 /** 397 * Tests the conformance of the given object. 398 * 399 * @param object the object to test, or {@code null}. 400 * 401 * @see ExtentValidator#validate(GeographicDescription) 402 */ 403 public static void validate(final GeographicDescription object) { 404 DEFAULT.validate(object); 405 } 406 407 /** 408 * Tests the conformance of the given object. 409 * 410 * @param object the object to test, or {@code null}. 411 * 412 * @see ExtentValidator#validate(BoundingPolygon) 413 */ 414 public static void validate(final BoundingPolygon object) { 415 DEFAULT.validate(object); 416 } 417 418 /** 419 * Tests the conformance of the given object. 420 * 421 * @param object the object to test, or {@code null}. 422 * 423 * @see ExtentValidator#validate(GeographicBoundingBox) 424 */ 425 public static void validate(final GeographicBoundingBox object) { 426 DEFAULT.validate(object); 427 } 428 429 /** 430 * Tests the conformance of the given object. 431 * 432 * @param object the object to test, or {@code null}. 433 * 434 * @see GeometryValidator#validate(Envelope) 435 */ 436 public static void validate(final Envelope object) { 437 DEFAULT.validate(object); 438 } 439 440 /** 441 * Tests the conformance of the given object. 442 * 443 * @param object the object to test, or {@code null}. 444 * 445 * @see GeometryValidator#validate(DirectPosition) 446 */ 447 public static void validate(final DirectPosition object) { 448 DEFAULT.validate(object); 449 } 450 451 /** 452 * Tests the conformance of the given object. 453 * 454 * @param object the object to test, or {@code null}. 455 * 456 * @see CRSValidator#dispatch(CoordinateReferenceSystem) 457 */ 458 public static void validate(final CoordinateReferenceSystem object) { 459 DEFAULT.validate(object); 460 } 461 462 /** 463 * Tests the conformance of the given object. 464 * 465 * @param object the object to test, or {@code null}. 466 * 467 * @see CRSValidator#validate(GeodeticCRS) 468 * 469 * @since 3.1 470 */ 471 public static void validate(final GeodeticCRS object) { 472 DEFAULT.validate(object); 473 } 474 475 /** 476 * Validates the given coordinate reference system. 477 * 478 * @param object the object to validate, or {@code null}. 479 * 480 * @see CRSValidator#validate(ProjectedCRS) 481 */ 482 public static void validate(final ProjectedCRS object) { 483 DEFAULT.validate(object); 484 } 485 486 /** 487 * Validates the given coordinate reference system. 488 * 489 * @param object the object to validate, or {@code null}. 490 * 491 * @see CRSValidator#validate(DerivedCRS) 492 */ 493 public static void validate(final DerivedCRS object) { 494 DEFAULT.validate(object); 495 } 496 497 /** 498 * Validates the given coordinate reference system. 499 * 500 * @param object the object to validate, or {@code null}. 501 * 502 * @see CRSValidator#validate(ImageCRS) 503 * 504 * @deprecated {@code ImageCRS} is replaced by {@link EngineeringCRS} as of ISO 19111:2019. 505 */ 506 @Deprecated(since="3.1") 507 public static void validate(final ImageCRS object) { 508 DEFAULT.validate(object); 509 } 510 511 /** 512 * Validates the given coordinate reference system. 513 * 514 * @param object the object to validate, or {@code null}. 515 * 516 * @see CRSValidator#validate(EngineeringCRS) 517 */ 518 public static void validate(final EngineeringCRS object) { 519 DEFAULT.validate(object); 520 } 521 522 /** 523 * Validates the given coordinate reference system. 524 * 525 * @param object the object to validate, or {@code null}. 526 * 527 * @see CRSValidator#validate(VerticalCRS) 528 */ 529 public static void validate(final VerticalCRS object) { 530 DEFAULT.validate(object); 531 } 532 533 /** 534 * Validates the given coordinate reference system. 535 * 536 * @param object the object to validate, or {@code null}. 537 * 538 * @see CRSValidator#validate(TemporalCRS) 539 */ 540 public static void validate(final TemporalCRS object) { 541 DEFAULT.validate(object); 542 } 543 544 /** 545 * Validates the given coordinate reference system. 546 * 547 * @param object the object to validate, or {@code null}. 548 * 549 * @see CRSValidator#validate(CompoundCRS) 550 */ 551 public static void validate(final CompoundCRS object) { 552 DEFAULT.validate(object); 553 } 554 555 /** 556 * Tests the conformance of the given object. 557 * 558 * @param object the object to test, or {@code null}. 559 * 560 * @see CSValidator#dispatch(CoordinateSystem) 561 */ 562 public static void validate(final CoordinateSystem object) { 563 DEFAULT.validate(object); 564 } 565 566 /** 567 * Tests the conformance of the given object. 568 * 569 * @param object the object to test, or {@code null}. 570 * 571 * @see CSValidator#validate(CartesianCS) 572 */ 573 public static void validate(final CartesianCS object) { 574 DEFAULT.validate(object); 575 } 576 577 /** 578 * Tests the conformance of the given object. 579 * 580 * @param object the object to test, or {@code null}. 581 * 582 * @see CSValidator#validate(EllipsoidalCS) 583 */ 584 public static void validate(final EllipsoidalCS object) { 585 DEFAULT.validate(object); 586 } 587 588 /** 589 * Tests the conformance of the given object. 590 * 591 * @param object the object to test, or {@code null}. 592 * 593 * @see CSValidator#validate(SphericalCS) 594 */ 595 public static void validate(final SphericalCS object) { 596 DEFAULT.validate(object); 597 } 598 599 /** 600 * Tests the conformance of the given object. 601 * 602 * @param object the object to test, or {@code null}. 603 * 604 * @see CSValidator#validate(CylindricalCS) 605 */ 606 public static void validate(final CylindricalCS object) { 607 DEFAULT.validate(object); 608 } 609 610 /** 611 * Tests the conformance of the given object. 612 * 613 * @param object the object to test, or {@code null}. 614 * 615 * @see CSValidator#validate(PolarCS) 616 */ 617 public static void validate(final PolarCS object) { 618 DEFAULT.validate(object); 619 } 620 621 /** 622 * Tests the conformance of the given object. 623 * 624 * @param object the object to test, or {@code null}. 625 * 626 * @see CSValidator#validate(LinearCS) 627 */ 628 public static void validate(final LinearCS object) { 629 DEFAULT.validate(object); 630 } 631 632 /** 633 * Tests the conformance of the given object. 634 * 635 * @param object the object to test, or {@code null}. 636 * 637 * @see CSValidator#validate(VerticalCS) 638 */ 639 public static void validate(final VerticalCS object) { 640 DEFAULT.validate(object); 641 } 642 643 /** 644 * Tests the conformance of the given object. 645 * 646 * @param object the object to test, or {@code null}. 647 * 648 * @see CSValidator#validate(TimeCS) 649 */ 650 public static void validate(final TimeCS object) { 651 DEFAULT.validate(object); 652 } 653 654 /** 655 * Tests the conformance of the given object. 656 * 657 * @param object the object to test, or {@code null}. 658 * 659 * @see CSValidator#validate(UserDefinedCS) 660 */ 661 @Deprecated(since="3.1") 662 public static void validate(final UserDefinedCS object) { 663 DEFAULT.validate(object); 664 } 665 666 /** 667 * Tests the conformance of the given object. 668 * 669 * @param object the object to test, or {@code null}. 670 * 671 * @see CSValidator#validate(CoordinateSystemAxis) 672 */ 673 public static void validate(final CoordinateSystemAxis object) { 674 DEFAULT.validate(object); 675 } 676 677 /** 678 * Tests the conformance of the given object. 679 * 680 * @param object the object to test, or {@code null}. 681 * 682 * @see DatumValidator#dispatch(Datum) 683 */ 684 public static void validate(final Datum object) { 685 DEFAULT.validate(object); 686 } 687 688 /** 689 * Tests the conformance of the given object. 690 * 691 * @param object the object to test, or {@code null}. 692 * 693 * @see DatumValidator#validate(PrimeMeridian) 694 */ 695 public static void validate(final PrimeMeridian object) { 696 DEFAULT.validate(object); 697 } 698 699 /** 700 * Tests the conformance of the given object. 701 * 702 * @param object the object to test, or {@code null}. 703 * 704 * @see DatumValidator#validate(Ellipsoid) 705 */ 706 public static void validate(final Ellipsoid object) { 707 DEFAULT.validate(object); 708 } 709 710 /** 711 * Tests the conformance of the given object. 712 * 713 * @param object the object to test, or {@code null}. 714 * 715 * @see DatumValidator#validate(GeodeticDatum) 716 */ 717 public static void validate(final GeodeticDatum object) { 718 DEFAULT.validate(object); 719 } 720 721 /** 722 * Tests the conformance of the given object. 723 * 724 * @param object the object to test, or {@code null}. 725 * 726 * @see DatumValidator#validate(VerticalDatum) 727 */ 728 public static void validate(final VerticalDatum object) { 729 DEFAULT.validate(object); 730 } 731 732 /** 733 * Tests the conformance of the given object. 734 * 735 * @param object the object to test, or {@code null}. 736 * 737 * @see DatumValidator#validate(TemporalDatum) 738 */ 739 public static void validate(final TemporalDatum object) { 740 DEFAULT.validate(object); 741 } 742 743 /** 744 * Tests the conformance of the given object. 745 * 746 * @param object the object to test, or {@code null}. 747 * 748 * @see DatumValidator#validate(ImageDatum) 749 * 750 * @deprecated {@code ImageCRS} is replaced by {@link EngineeringCRS} as of ISO 19111:2019. 751 */ 752 @Deprecated(since="3.1") 753 @SuppressWarnings("removal") 754 public static void validate(final ImageDatum object) { 755 DEFAULT.validate(object); 756 } 757 758 /** 759 * Tests the conformance of the given object. 760 * 761 * @param object the object to test, or {@code null}. 762 * 763 * @see DatumValidator#validate(EngineeringDatum) 764 */ 765 public static void validate(final EngineeringDatum object) { 766 DEFAULT.validate(object); 767 } 768 769 /** 770 * Tests the conformance of the given object. 771 * 772 * @param object the object to test, or {@code null}. 773 * 774 * @see DatumValidator#validate(DatumEnsemble) 775 */ 776 public static void validate(final DatumEnsemble<?> object) { 777 DEFAULT.validate(object); 778 } 779 780 /** 781 * Tests the conformance of the given object. 782 * 783 * @param object the object to test, or {@code null}. 784 * 785 * @see OperationValidator#dispatch(CoordinateOperation) 786 */ 787 public static void validate(final CoordinateOperation object) { 788 DEFAULT.validate(object); 789 } 790 791 /** 792 * Tests the conformance of the given object. 793 * 794 * @param object the object to test, or {@code null}. 795 * 796 * @see OperationValidator#validate(Conversion) 797 */ 798 public static void validate(final Conversion object) { 799 DEFAULT.validate(object); 800 } 801 802 /** 803 * Tests the conformance of the given object. 804 * 805 * @param object the object to test, or {@code null}. 806 * 807 * @see OperationValidator#validate(Transformation) 808 */ 809 public static void validate(final Transformation object) { 810 DEFAULT.validate(object); 811 } 812 813 /** 814 * Tests the conformance of the given object. 815 * 816 * @param object the object to test, or {@code null}. 817 * 818 * @see OperationValidator#validate(PointMotionOperation) 819 * @since 3.1 820 */ 821 public static void validate(final PointMotionOperation object) { 822 DEFAULT.validate(object); 823 } 824 825 /** 826 * Tests the conformance of the given object. 827 * 828 * @param object the object to test, or {@code null}. 829 * 830 * @see OperationValidator#validate(ConcatenatedOperation) 831 */ 832 public static void validate(final ConcatenatedOperation object) { 833 DEFAULT.validate(object); 834 } 835 836 /** 837 * Tests the conformance of the given object. 838 * 839 * @param object the object to test, or {@code null}. 840 * 841 * @see OperationValidator#validate(PassThroughOperation) 842 */ 843 public static void validate(final PassThroughOperation object) { 844 DEFAULT.validate(object); 845 } 846 847 /** 848 * Tests the conformance of the given object. 849 * 850 * @param object the object to test, or {@code null}. 851 * 852 * @see OperationValidator#validate(OperationMethod) 853 */ 854 public static void validate(final OperationMethod object) { 855 DEFAULT.validate(object); 856 } 857 858 /** 859 * Tests the conformance of the given object. 860 * 861 * @param object the object to test, or {@code null}. 862 * 863 * @see OperationValidator#validate(Formula) 864 */ 865 public static void validate(final Formula object) { 866 DEFAULT.validate(object); 867 } 868 869 /** 870 * Tests the conformance of the given object. 871 * 872 * @param object the object to test, or {@code null}. 873 * 874 * @see OperationValidator#validate(MathTransform) 875 */ 876 public static void validate(final MathTransform object) { 877 DEFAULT.validate(object); 878 } 879 880 /** 881 * Tests the conformance of the given object. 882 * 883 * @param object the object to test, or {@code null}. 884 * 885 * @see ParameterValidator#dispatch(GeneralParameterDescriptor) 886 */ 887 public static void validate(final GeneralParameterDescriptor object) { 888 DEFAULT.validate(object); 889 } 890 891 /** 892 * Tests the conformance of the given object. 893 * 894 * @param object the object to test, or {@code null}. 895 * 896 * @see ParameterValidator#validate(ParameterDescriptor) 897 */ 898 public static void validate(final ParameterDescriptor<?> object) { 899 DEFAULT.validate(object); 900 } 901 902 /** 903 * Tests the conformance of the given object. 904 * 905 * @param object the object to test, or {@code null}. 906 * 907 * @see ParameterValidator#validate(ParameterDescriptorGroup) 908 */ 909 public static void validate(final ParameterDescriptorGroup object) { 910 DEFAULT.validate(object); 911 } 912 913 /** 914 * Tests the conformance of the given object. 915 * 916 * @param object the object to test, or {@code null}. 917 * 918 * @see ParameterValidator#dispatch(GeneralParameterValue) 919 */ 920 public static void validate(final GeneralParameterValue object) { 921 DEFAULT.validate(object); 922 } 923 924 /** 925 * Tests the conformance of the given object. 926 * 927 * @param object the object to test, or {@code null}. 928 * 929 * @see ParameterValidator#validate(ParameterValue) 930 */ 931 public static void validate(final ParameterValue<?> object) { 932 DEFAULT.validate(object); 933 } 934 935 /** 936 * Tests the conformance of the given object. 937 * 938 * @param object the object to test, or {@code null}. 939 * 940 * @see ParameterValidator#validate(ParameterValueGroup) 941 */ 942 public static void validate(final ParameterValueGroup object) { 943 DEFAULT.validate(object); 944 } 945 946 /** 947 * Tests the conformance of the given object. 948 * 949 * @param object the object to test, or {@code null}. 950 * 951 * @see ReferencingValidator#dispatchObject(IdentifiedObject) 952 */ 953 public static void validate(final IdentifiedObject object) { 954 DEFAULT.validate(object); 955 } 956 957 /** 958 * Tests the conformance of the given object. 959 * 960 * @param object the object to test, or {@code null}. 961 * 962 * @see MetadataBaseValidator#validate(Identifier) 963 * 964 * @since 3.1 965 */ 966 public static void validate(final Identifier object) { 967 DEFAULT.validate(object); 968 } 969 970 /** 971 * Tests the conformance of the given object. 972 * 973 * @param object the object to test, or {@code null}. 974 * 975 * @see NameValidator#dispatch(GenericName) 976 */ 977 public static void validate(final GenericName object) { 978 DEFAULT.validate(object); 979 } 980 981 /** 982 * Tests the conformance of the given object. 983 * 984 * @param object the object to test, or {@code null}. 985 * 986 * @see NameValidator#validate(LocalName) 987 */ 988 public static void validate(final LocalName object) { 989 DEFAULT.validate(object); 990 } 991 992 /** 993 * Tests the conformance of the given object. 994 * 995 * @param object the object to test, or {@code null}. 996 * 997 * @see NameValidator#validate(ScopedName) 998 */ 999 public static void validate(final ScopedName object) { 1000 DEFAULT.validate(object); 1001 } 1002 1003 /** 1004 * Tests the conformance of the given object. 1005 * 1006 * @param object the object to test, or {@code null}. 1007 * 1008 * @see NameValidator#validate(NameSpace) 1009 */ 1010 public static void validate(final NameSpace object) { 1011 DEFAULT.validate(object); 1012 } 1013 1014 /** 1015 * Tests the conformance of the given object. 1016 * 1017 * @param object the object to test, or {@code null}. 1018 * 1019 * @see NameValidator#validate(InternationalString) 1020 */ 1021 public static void validate(final InternationalString object) { 1022 DEFAULT.validate(object); 1023 } 1024 1025 /** 1026 * Tests the conformance of the given object. 1027 * 1028 * @param object the object to test, or {@code null}. 1029 * 1030 * @see ImageValidator#validate(ImageReaderSpi) 1031 */ 1032 public static void validate(final ImageReaderSpi object) { 1033 DEFAULT.validate(object); 1034 } 1035 1036 /** 1037 * Tests the conformance of the given object. 1038 * 1039 * @param object the object to test, or {@code null}. 1040 * 1041 * @see ImageValidator#validate(ImageWriterSpi) 1042 */ 1043 public static void validate(final ImageWriterSpi object) { 1044 DEFAULT.validate(object); 1045 } 1046 1047 /** 1048 * Tests the conformance of the given object. 1049 * 1050 * @param object the object to test, or {@code null}. 1051 * 1052 * @see ImageValidator#validate(IIOMetadataFormat) 1053 */ 1054 public static void validate(final IIOMetadataFormat object) { 1055 DEFAULT.validate(object); 1056 } 1057}