001/* 002 * CDDL HEADER START 003 * 004 * The contents of this file are subject to the terms of the 005 * Common Development and Distribution License, Version 1.0 only 006 * (the "License"). You may not use this file except in compliance 007 * with the License. 008 * 009 * You can obtain a copy of the license at legal-notices/CDDLv1_0.txt 010 * or http://forgerock.org/license/CDDLv1.0.html. 011 * See the License for the specific language governing permissions 012 * and limitations under the License. 013 * 014 * When distributing Covered Code, include this CDDL HEADER in each 015 * file and include the License file at legal-notices/CDDLv1_0.txt. 016 * If applicable, add the following below this CDDL HEADER, with the 017 * fields enclosed by brackets "[]" replaced with your own identifying 018 * information: 019 * Portions Copyright [yyyy] [name of copyright owner] 020 * 021 * CDDL HEADER END 022 * 023 * 024 * Copyright 2008 Sun Microsystems, Inc. 025 */ 026package org.opends.server.admin.std.meta; 027 028 029 030import java.util.Collection; 031import java.util.SortedSet; 032import java.util.TreeSet; 033import org.forgerock.opendj.config.server.ConfigException; 034import org.opends.server.admin.AdministratorAction; 035import org.opends.server.admin.AggregationPropertyDefinition; 036import org.opends.server.admin.AliasDefaultBehaviorProvider; 037import org.opends.server.admin.BooleanPropertyDefinition; 038import org.opends.server.admin.ClassPropertyDefinition; 039import org.opends.server.admin.client.AuthorizationException; 040import org.opends.server.admin.client.CommunicationException; 041import org.opends.server.admin.client.ConcurrentModificationException; 042import org.opends.server.admin.client.IllegalManagedObjectNameException; 043import org.opends.server.admin.client.ManagedObject; 044import org.opends.server.admin.client.ManagedObjectDecodingException; 045import org.opends.server.admin.client.MissingMandatoryPropertiesException; 046import org.opends.server.admin.client.OperationRejectedException; 047import org.opends.server.admin.condition.Conditions; 048import org.opends.server.admin.DefaultBehaviorProvider; 049import org.opends.server.admin.DefinedDefaultBehaviorProvider; 050import org.opends.server.admin.DefinitionDecodingException; 051import org.opends.server.admin.DurationPropertyDefinition; 052import org.opends.server.admin.EnumPropertyDefinition; 053import org.opends.server.admin.GenericConstraint; 054import org.opends.server.admin.InstantiableRelationDefinition; 055import org.opends.server.admin.ManagedObjectAlreadyExistsException; 056import org.opends.server.admin.ManagedObjectDefinition; 057import org.opends.server.admin.ManagedObjectNotFoundException; 058import org.opends.server.admin.PropertyException; 059import org.opends.server.admin.PropertyOption; 060import org.opends.server.admin.PropertyProvider; 061import org.opends.server.admin.server.ConfigurationAddListener; 062import org.opends.server.admin.server.ConfigurationChangeListener; 063import org.opends.server.admin.server.ConfigurationDeleteListener; 064import org.opends.server.admin.server.ServerManagedObject; 065import org.opends.server.admin.std.client.AccessLogFilteringCriteriaCfgClient; 066import org.opends.server.admin.std.client.CsvFileAccessLogPublisherCfgClient; 067import org.opends.server.admin.std.client.LogRetentionPolicyCfgClient; 068import org.opends.server.admin.std.client.LogRotationPolicyCfgClient; 069import org.opends.server.admin.std.meta.AccessLogPublisherCfgDefn.FilteringPolicy; 070import org.opends.server.admin.std.server.AccessLogFilteringCriteriaCfg; 071import org.opends.server.admin.std.server.AccessLogPublisherCfg; 072import org.opends.server.admin.std.server.CsvFileAccessLogPublisherCfg; 073import org.opends.server.admin.std.server.LogPublisherCfg; 074import org.opends.server.admin.std.server.LogRetentionPolicyCfg; 075import org.opends.server.admin.std.server.LogRotationPolicyCfg; 076import org.opends.server.admin.StringPropertyDefinition; 077import org.opends.server.admin.Tag; 078import org.opends.server.admin.UndefinedDefaultBehaviorProvider; 079import org.opends.server.types.DN; 080 081 082 083/** 084 * An interface for querying the Csv File Access Log Publisher managed 085 * object definition meta information. 086 * <p> 087 * Csv File Access Log Publishers publish access messages to CSV 088 * files. 089 */ 090public final class CsvFileAccessLogPublisherCfgDefn extends ManagedObjectDefinition<CsvFileAccessLogPublisherCfgClient, CsvFileAccessLogPublisherCfg> { 091 092 // The singleton configuration definition instance. 093 private static final CsvFileAccessLogPublisherCfgDefn INSTANCE = new CsvFileAccessLogPublisherCfgDefn(); 094 095 096 097 // The "asynchronous" property definition. 098 private static final BooleanPropertyDefinition PD_ASYNCHRONOUS; 099 100 101 102 // The "auto-flush" property definition. 103 private static final BooleanPropertyDefinition PD_AUTO_FLUSH; 104 105 106 107 // The "csv-delimiter-char" property definition. 108 private static final StringPropertyDefinition PD_CSV_DELIMITER_CHAR; 109 110 111 112 // The "csv-eol-symbols" property definition. 113 private static final StringPropertyDefinition PD_CSV_EOL_SYMBOLS; 114 115 116 117 // The "csv-quote-char" property definition. 118 private static final StringPropertyDefinition PD_CSV_QUOTE_CHAR; 119 120 121 122 // The "java-class" property definition. 123 private static final ClassPropertyDefinition PD_JAVA_CLASS; 124 125 126 127 // The "key-store-file" property definition. 128 private static final StringPropertyDefinition PD_KEY_STORE_FILE; 129 130 131 132 // The "key-store-pin-file" property definition. 133 private static final StringPropertyDefinition PD_KEY_STORE_PIN_FILE; 134 135 136 137 // The "log-control-oids" property definition. 138 private static final BooleanPropertyDefinition PD_LOG_CONTROL_OIDS; 139 140 141 142 // The "log-directory" property definition. 143 private static final StringPropertyDefinition PD_LOG_DIRECTORY; 144 145 146 147 // The "retention-policy" property definition. 148 private static final AggregationPropertyDefinition<LogRetentionPolicyCfgClient, LogRetentionPolicyCfg> PD_RETENTION_POLICY; 149 150 151 152 // The "rotation-policy" property definition. 153 private static final AggregationPropertyDefinition<LogRotationPolicyCfgClient, LogRotationPolicyCfg> PD_ROTATION_POLICY; 154 155 156 157 // The "signature-time-interval" property definition. 158 private static final DurationPropertyDefinition PD_SIGNATURE_TIME_INTERVAL; 159 160 161 162 // The "tamper-evident" property definition. 163 private static final BooleanPropertyDefinition PD_TAMPER_EVIDENT; 164 165 166 167 // Build the "asynchronous" property definition. 168 static { 169 BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "asynchronous"); 170 builder.setOption(PropertyOption.MANDATORY); 171 builder.setOption(PropertyOption.ADVANCED); 172 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "asynchronous")); 173 DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("true"); 174 builder.setDefaultBehaviorProvider(provider); 175 PD_ASYNCHRONOUS = builder.getInstance(); 176 INSTANCE.registerPropertyDefinition(PD_ASYNCHRONOUS); 177 } 178 179 180 181 // Build the "auto-flush" property definition. 182 static { 183 BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "auto-flush"); 184 builder.setOption(PropertyOption.ADVANCED); 185 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "auto-flush")); 186 DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("true"); 187 builder.setDefaultBehaviorProvider(provider); 188 PD_AUTO_FLUSH = builder.getInstance(); 189 INSTANCE.registerPropertyDefinition(PD_AUTO_FLUSH); 190 } 191 192 193 194 // Build the "csv-delimiter-char" property definition. 195 static { 196 StringPropertyDefinition.Builder builder = StringPropertyDefinition.createBuilder(INSTANCE, "csv-delimiter-char"); 197 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "csv-delimiter-char")); 198 DefaultBehaviorProvider<String> provider = new DefinedDefaultBehaviorProvider<String>(","); 199 builder.setDefaultBehaviorProvider(provider); 200 builder.setPattern(".*", "DELIMITER CHARACTER"); 201 PD_CSV_DELIMITER_CHAR = builder.getInstance(); 202 INSTANCE.registerPropertyDefinition(PD_CSV_DELIMITER_CHAR); 203 } 204 205 206 207 // Build the "csv-eol-symbols" property definition. 208 static { 209 StringPropertyDefinition.Builder builder = StringPropertyDefinition.createBuilder(INSTANCE, "csv-eol-symbols"); 210 builder.setOption(PropertyOption.ADVANCED); 211 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "csv-eol-symbols")); 212 builder.setDefaultBehaviorProvider(new AliasDefaultBehaviorProvider<String>(INSTANCE, "csv-eol-symbols")); 213 builder.setPattern(".*", "STRING"); 214 PD_CSV_EOL_SYMBOLS = builder.getInstance(); 215 INSTANCE.registerPropertyDefinition(PD_CSV_EOL_SYMBOLS); 216 } 217 218 219 220 // Build the "csv-quote-char" property definition. 221 static { 222 StringPropertyDefinition.Builder builder = StringPropertyDefinition.createBuilder(INSTANCE, "csv-quote-char"); 223 builder.setOption(PropertyOption.ADVANCED); 224 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "csv-quote-char")); 225 DefaultBehaviorProvider<String> provider = new DefinedDefaultBehaviorProvider<String>("\""); 226 builder.setDefaultBehaviorProvider(provider); 227 builder.setPattern(".*", "QUOTE CHARACTER"); 228 PD_CSV_QUOTE_CHAR = builder.getInstance(); 229 INSTANCE.registerPropertyDefinition(PD_CSV_QUOTE_CHAR); 230 } 231 232 233 234 // Build the "java-class" property definition. 235 static { 236 ClassPropertyDefinition.Builder builder = ClassPropertyDefinition.createBuilder(INSTANCE, "java-class"); 237 builder.setOption(PropertyOption.MANDATORY); 238 builder.setOption(PropertyOption.ADVANCED); 239 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "java-class")); 240 DefaultBehaviorProvider<String> provider = new DefinedDefaultBehaviorProvider<String>("org.opends.server.loggers.CsvFileAccessLogPublisher"); 241 builder.setDefaultBehaviorProvider(provider); 242 builder.addInstanceOf("org.opends.server.loggers.LogPublisher"); 243 PD_JAVA_CLASS = builder.getInstance(); 244 INSTANCE.registerPropertyDefinition(PD_JAVA_CLASS); 245 } 246 247 248 249 // Build the "key-store-file" property definition. 250 static { 251 StringPropertyDefinition.Builder builder = StringPropertyDefinition.createBuilder(INSTANCE, "key-store-file"); 252 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "key-store-file")); 253 builder.setDefaultBehaviorProvider(new UndefinedDefaultBehaviorProvider<String>()); 254 builder.setPattern(".*", "FILE"); 255 PD_KEY_STORE_FILE = builder.getInstance(); 256 INSTANCE.registerPropertyDefinition(PD_KEY_STORE_FILE); 257 } 258 259 260 261 // Build the "key-store-pin-file" property definition. 262 static { 263 StringPropertyDefinition.Builder builder = StringPropertyDefinition.createBuilder(INSTANCE, "key-store-pin-file"); 264 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "key-store-pin-file")); 265 builder.setDefaultBehaviorProvider(new UndefinedDefaultBehaviorProvider<String>()); 266 builder.setPattern(".*", "FILE"); 267 PD_KEY_STORE_PIN_FILE = builder.getInstance(); 268 INSTANCE.registerPropertyDefinition(PD_KEY_STORE_PIN_FILE); 269 } 270 271 272 273 // Build the "log-control-oids" property definition. 274 static { 275 BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "log-control-oids"); 276 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "log-control-oids")); 277 DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("false"); 278 builder.setDefaultBehaviorProvider(provider); 279 PD_LOG_CONTROL_OIDS = builder.getInstance(); 280 INSTANCE.registerPropertyDefinition(PD_LOG_CONTROL_OIDS); 281 } 282 283 284 285 // Build the "log-directory" property definition. 286 static { 287 StringPropertyDefinition.Builder builder = StringPropertyDefinition.createBuilder(INSTANCE, "log-directory"); 288 builder.setOption(PropertyOption.MANDATORY); 289 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.COMPONENT_RESTART, INSTANCE, "log-directory")); 290 DefaultBehaviorProvider<String> provider = new DefinedDefaultBehaviorProvider<String>("logs"); 291 builder.setDefaultBehaviorProvider(provider); 292 builder.setPattern(".*", "DIRECTORY"); 293 PD_LOG_DIRECTORY = builder.getInstance(); 294 INSTANCE.registerPropertyDefinition(PD_LOG_DIRECTORY); 295 } 296 297 298 299 // Build the "retention-policy" property definition. 300 static { 301 AggregationPropertyDefinition.Builder<LogRetentionPolicyCfgClient, LogRetentionPolicyCfg> builder = AggregationPropertyDefinition.createBuilder(INSTANCE, "retention-policy"); 302 builder.setOption(PropertyOption.MULTI_VALUED); 303 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "retention-policy")); 304 builder.setDefaultBehaviorProvider(new AliasDefaultBehaviorProvider<String>(INSTANCE, "retention-policy")); 305 builder.setParentPath("/"); 306 builder.setRelationDefinition("log-retention-policy"); 307 PD_RETENTION_POLICY = builder.getInstance(); 308 INSTANCE.registerPropertyDefinition(PD_RETENTION_POLICY); 309 INSTANCE.registerConstraint(PD_RETENTION_POLICY.getSourceConstraint()); 310 } 311 312 313 314 // Build the "rotation-policy" property definition. 315 static { 316 AggregationPropertyDefinition.Builder<LogRotationPolicyCfgClient, LogRotationPolicyCfg> builder = AggregationPropertyDefinition.createBuilder(INSTANCE, "rotation-policy"); 317 builder.setOption(PropertyOption.MULTI_VALUED); 318 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "rotation-policy")); 319 builder.setDefaultBehaviorProvider(new AliasDefaultBehaviorProvider<String>(INSTANCE, "rotation-policy")); 320 builder.setParentPath("/"); 321 builder.setRelationDefinition("log-rotation-policy"); 322 PD_ROTATION_POLICY = builder.getInstance(); 323 INSTANCE.registerPropertyDefinition(PD_ROTATION_POLICY); 324 INSTANCE.registerConstraint(PD_ROTATION_POLICY.getSourceConstraint()); 325 } 326 327 328 329 // Build the "signature-time-interval" property definition. 330 static { 331 DurationPropertyDefinition.Builder builder = DurationPropertyDefinition.createBuilder(INSTANCE, "signature-time-interval"); 332 builder.setOption(PropertyOption.ADVANCED); 333 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "signature-time-interval")); 334 DefaultBehaviorProvider<Long> provider = new DefinedDefaultBehaviorProvider<Long>("3s"); 335 builder.setDefaultBehaviorProvider(provider); 336 builder.setBaseUnit("ms"); 337 builder.setLowerLimit("1"); 338 PD_SIGNATURE_TIME_INTERVAL = builder.getInstance(); 339 INSTANCE.registerPropertyDefinition(PD_SIGNATURE_TIME_INTERVAL); 340 } 341 342 343 344 // Build the "tamper-evident" property definition. 345 static { 346 BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "tamper-evident"); 347 builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "tamper-evident")); 348 DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("false"); 349 builder.setDefaultBehaviorProvider(provider); 350 PD_TAMPER_EVIDENT = builder.getInstance(); 351 INSTANCE.registerPropertyDefinition(PD_TAMPER_EVIDENT); 352 } 353 354 355 356 // Register the tags associated with this managed object definition. 357 static { 358 INSTANCE.registerTag(Tag.valueOf("logging")); 359 } 360 361 362 363 // Register the constraints associated with this managed object definition. 364 static { 365 INSTANCE.registerConstraint(new GenericConstraint(INSTANCE, 1, Conditions.implies(Conditions.and(Conditions.contains("enabled", "true"), Conditions.contains("tamper-evident", "true")), Conditions.and(Conditions.isPresent("key-store-file"), Conditions.isPresent("key-store-pin-file"))))); 366 } 367 368 369 370 /** 371 * Get the Csv File Access Log Publisher configuration definition 372 * singleton. 373 * 374 * @return Returns the Csv File Access Log Publisher configuration 375 * definition singleton. 376 */ 377 public static CsvFileAccessLogPublisherCfgDefn getInstance() { 378 return INSTANCE; 379 } 380 381 382 383 /** 384 * Private constructor. 385 */ 386 private CsvFileAccessLogPublisherCfgDefn() { 387 super("csv-file-access-log-publisher", AccessLogPublisherCfgDefn.getInstance()); 388 } 389 390 391 392 /** 393 * {@inheritDoc} 394 */ 395 public CsvFileAccessLogPublisherCfgClient createClientConfiguration( 396 ManagedObject<? extends CsvFileAccessLogPublisherCfgClient> impl) { 397 return new CsvFileAccessLogPublisherCfgClientImpl(impl); 398 } 399 400 401 402 /** 403 * {@inheritDoc} 404 */ 405 public CsvFileAccessLogPublisherCfg createServerConfiguration( 406 ServerManagedObject<? extends CsvFileAccessLogPublisherCfg> impl) { 407 return new CsvFileAccessLogPublisherCfgServerImpl(impl); 408 } 409 410 411 412 /** 413 * {@inheritDoc} 414 */ 415 public Class<CsvFileAccessLogPublisherCfg> getServerConfigurationClass() { 416 return CsvFileAccessLogPublisherCfg.class; 417 } 418 419 420 421 /** 422 * Get the "asynchronous" property definition. 423 * <p> 424 * Indicates whether the Csv File Access Log Publisher will publish 425 * records asynchronously. 426 * 427 * @return Returns the "asynchronous" property definition. 428 */ 429 public BooleanPropertyDefinition getAsynchronousPropertyDefinition() { 430 return PD_ASYNCHRONOUS; 431 } 432 433 434 435 /** 436 * Get the "auto-flush" property definition. 437 * <p> 438 * Specifies whether to flush the writer after every log record. 439 * <p> 440 * If the asynchronous writes option is used, the writer is flushed 441 * after all the log records in the queue are written. 442 * 443 * @return Returns the "auto-flush" property definition. 444 */ 445 public BooleanPropertyDefinition getAutoFlushPropertyDefinition() { 446 return PD_AUTO_FLUSH; 447 } 448 449 450 451 /** 452 * Get the "csv-delimiter-char" property definition. 453 * <p> 454 * The delimiter character to use when writing in CSV format. 455 * 456 * @return Returns the "csv-delimiter-char" property definition. 457 */ 458 public StringPropertyDefinition getCsvDelimiterCharPropertyDefinition() { 459 return PD_CSV_DELIMITER_CHAR; 460 } 461 462 463 464 /** 465 * Get the "csv-eol-symbols" property definition. 466 * <p> 467 * The string that marks the end of a line. 468 * 469 * @return Returns the "csv-eol-symbols" property definition. 470 */ 471 public StringPropertyDefinition getCsvEolSymbolsPropertyDefinition() { 472 return PD_CSV_EOL_SYMBOLS; 473 } 474 475 476 477 /** 478 * Get the "csv-quote-char" property definition. 479 * <p> 480 * The character to append and prepend to a CSV field when writing 481 * in CSV format. 482 * 483 * @return Returns the "csv-quote-char" property definition. 484 */ 485 public StringPropertyDefinition getCsvQuoteCharPropertyDefinition() { 486 return PD_CSV_QUOTE_CHAR; 487 } 488 489 490 491 /** 492 * Get the "enabled" property definition. 493 * <p> 494 * Indicates whether the Csv File Access Log Publisher is enabled 495 * for use. 496 * 497 * @return Returns the "enabled" property definition. 498 */ 499 public BooleanPropertyDefinition getEnabledPropertyDefinition() { 500 return AccessLogPublisherCfgDefn.getInstance().getEnabledPropertyDefinition(); 501 } 502 503 504 505 /** 506 * Get the "filtering-policy" property definition. 507 * <p> 508 * Specifies how filtering criteria should be applied to log 509 * records. 510 * 511 * @return Returns the "filtering-policy" property definition. 512 */ 513 public EnumPropertyDefinition<FilteringPolicy> getFilteringPolicyPropertyDefinition() { 514 return AccessLogPublisherCfgDefn.getInstance().getFilteringPolicyPropertyDefinition(); 515 } 516 517 518 519 /** 520 * Get the "java-class" property definition. 521 * <p> 522 * The fully-qualified name of the Java class that provides the Csv 523 * File Access Log Publisher implementation. 524 * 525 * @return Returns the "java-class" property definition. 526 */ 527 public ClassPropertyDefinition getJavaClassPropertyDefinition() { 528 return PD_JAVA_CLASS; 529 } 530 531 532 533 /** 534 * Get the "key-store-file" property definition. 535 * <p> 536 * Specifies the path to the file that contains the private key 537 * information. This may be an absolute path, or a path that is 538 * relative to the OpenDJ instance root. 539 * <p> 540 * Changes to this property will take effect the next time that the 541 * key store is accessed. 542 * 543 * @return Returns the "key-store-file" property definition. 544 */ 545 public StringPropertyDefinition getKeyStoreFilePropertyDefinition() { 546 return PD_KEY_STORE_FILE; 547 } 548 549 550 551 /** 552 * Get the "key-store-pin-file" property definition. 553 * <p> 554 * Specifies the path to the text file whose only contents should be 555 * a single line containing the clear-text PIN needed to access the 556 * Csv File Access Log Publisher . 557 * 558 * @return Returns the "key-store-pin-file" property definition. 559 */ 560 public StringPropertyDefinition getKeyStorePinFilePropertyDefinition() { 561 return PD_KEY_STORE_PIN_FILE; 562 } 563 564 565 566 /** 567 * Get the "log-control-oids" property definition. 568 * <p> 569 * Specifies whether control OIDs will be included in operation log 570 * records. 571 * 572 * @return Returns the "log-control-oids" property definition. 573 */ 574 public BooleanPropertyDefinition getLogControlOidsPropertyDefinition() { 575 return PD_LOG_CONTROL_OIDS; 576 } 577 578 579 580 /** 581 * Get the "log-directory" property definition. 582 * <p> 583 * The directory to use for the log files generated by the Csv File 584 * Access Log Publisher. The path to the directory is relative to the 585 * server root. 586 * 587 * @return Returns the "log-directory" property definition. 588 */ 589 public StringPropertyDefinition getLogDirectoryPropertyDefinition() { 590 return PD_LOG_DIRECTORY; 591 } 592 593 594 595 /** 596 * Get the "retention-policy" property definition. 597 * <p> 598 * The retention policy to use for the Csv File Access Log Publisher 599 * . 600 * <p> 601 * When multiple policies are used, log files are cleaned when any 602 * of the policy's conditions are met. 603 * 604 * @return Returns the "retention-policy" property definition. 605 */ 606 public AggregationPropertyDefinition<LogRetentionPolicyCfgClient, LogRetentionPolicyCfg> getRetentionPolicyPropertyDefinition() { 607 return PD_RETENTION_POLICY; 608 } 609 610 611 612 /** 613 * Get the "rotation-policy" property definition. 614 * <p> 615 * The rotation policy to use for the Csv File Access Log Publisher 616 * . 617 * <p> 618 * When multiple policies are used, rotation will occur if any 619 * policy's conditions are met. 620 * 621 * @return Returns the "rotation-policy" property definition. 622 */ 623 public AggregationPropertyDefinition<LogRotationPolicyCfgClient, LogRotationPolicyCfg> getRotationPolicyPropertyDefinition() { 624 return PD_ROTATION_POLICY; 625 } 626 627 628 629 /** 630 * Get the "signature-time-interval" property definition. 631 * <p> 632 * Specifies the interval at which to sign the log file when the 633 * tamper-evident option is enabled. 634 * 635 * @return Returns the "signature-time-interval" property definition. 636 */ 637 public DurationPropertyDefinition getSignatureTimeIntervalPropertyDefinition() { 638 return PD_SIGNATURE_TIME_INTERVAL; 639 } 640 641 642 643 /** 644 * Get the "suppress-internal-operations" property definition. 645 * <p> 646 * Indicates whether internal operations (for example, operations 647 * that are initiated by plugins) should be logged along with the 648 * operations that are requested by users. 649 * 650 * @return Returns the "suppress-internal-operations" property definition. 651 */ 652 public BooleanPropertyDefinition getSuppressInternalOperationsPropertyDefinition() { 653 return AccessLogPublisherCfgDefn.getInstance().getSuppressInternalOperationsPropertyDefinition(); 654 } 655 656 657 658 /** 659 * Get the "suppress-synchronization-operations" property definition. 660 * <p> 661 * Indicates whether access messages that are generated by 662 * synchronization operations should be suppressed. 663 * 664 * @return Returns the "suppress-synchronization-operations" property definition. 665 */ 666 public BooleanPropertyDefinition getSuppressSynchronizationOperationsPropertyDefinition() { 667 return AccessLogPublisherCfgDefn.getInstance().getSuppressSynchronizationOperationsPropertyDefinition(); 668 } 669 670 671 672 /** 673 * Get the "tamper-evident" property definition. 674 * <p> 675 * Specifies whether the log should be signed in order to detect 676 * tampering. 677 * <p> 678 * Every log record will be signed, making it possible to verify 679 * that the log has not been tampered with. This feature has a 680 * significative impact on performance of the server. 681 * 682 * @return Returns the "tamper-evident" property definition. 683 */ 684 public BooleanPropertyDefinition getTamperEvidentPropertyDefinition() { 685 return PD_TAMPER_EVIDENT; 686 } 687 688 689 690 /** 691 * Get the "access-log-filtering-criteria" relation definition. 692 * 693 * @return Returns the "access-log-filtering-criteria" relation definition. 694 */ 695 public InstantiableRelationDefinition<AccessLogFilteringCriteriaCfgClient,AccessLogFilteringCriteriaCfg> getAccessLogFilteringCriteriaRelationDefinition() { 696 return AccessLogPublisherCfgDefn.getInstance().getAccessLogFilteringCriteriaRelationDefinition(); 697 } 698 699 700 701 /** 702 * Managed object client implementation. 703 */ 704 private static class CsvFileAccessLogPublisherCfgClientImpl implements 705 CsvFileAccessLogPublisherCfgClient { 706 707 // Private implementation. 708 private ManagedObject<? extends CsvFileAccessLogPublisherCfgClient> impl; 709 710 711 712 // Private constructor. 713 private CsvFileAccessLogPublisherCfgClientImpl( 714 ManagedObject<? extends CsvFileAccessLogPublisherCfgClient> impl) { 715 this.impl = impl; 716 } 717 718 719 720 /** 721 * {@inheritDoc} 722 */ 723 public boolean isAsynchronous() { 724 return impl.getPropertyValue(INSTANCE.getAsynchronousPropertyDefinition()); 725 } 726 727 728 729 /** 730 * {@inheritDoc} 731 */ 732 public void setAsynchronous(boolean value) { 733 impl.setPropertyValue(INSTANCE.getAsynchronousPropertyDefinition(), value); 734 } 735 736 737 738 /** 739 * {@inheritDoc} 740 */ 741 public boolean isAutoFlush() { 742 return impl.getPropertyValue(INSTANCE.getAutoFlushPropertyDefinition()); 743 } 744 745 746 747 /** 748 * {@inheritDoc} 749 */ 750 public void setAutoFlush(Boolean value) { 751 impl.setPropertyValue(INSTANCE.getAutoFlushPropertyDefinition(), value); 752 } 753 754 755 756 /** 757 * {@inheritDoc} 758 */ 759 public String getCsvDelimiterChar() { 760 return impl.getPropertyValue(INSTANCE.getCsvDelimiterCharPropertyDefinition()); 761 } 762 763 764 765 /** 766 * {@inheritDoc} 767 */ 768 public void setCsvDelimiterChar(String value) { 769 impl.setPropertyValue(INSTANCE.getCsvDelimiterCharPropertyDefinition(), value); 770 } 771 772 773 774 /** 775 * {@inheritDoc} 776 */ 777 public String getCsvEolSymbols() { 778 return impl.getPropertyValue(INSTANCE.getCsvEolSymbolsPropertyDefinition()); 779 } 780 781 782 783 /** 784 * {@inheritDoc} 785 */ 786 public void setCsvEolSymbols(String value) { 787 impl.setPropertyValue(INSTANCE.getCsvEolSymbolsPropertyDefinition(), value); 788 } 789 790 791 792 /** 793 * {@inheritDoc} 794 */ 795 public String getCsvQuoteChar() { 796 return impl.getPropertyValue(INSTANCE.getCsvQuoteCharPropertyDefinition()); 797 } 798 799 800 801 /** 802 * {@inheritDoc} 803 */ 804 public void setCsvQuoteChar(String value) { 805 impl.setPropertyValue(INSTANCE.getCsvQuoteCharPropertyDefinition(), value); 806 } 807 808 809 810 /** 811 * {@inheritDoc} 812 */ 813 public Boolean isEnabled() { 814 return impl.getPropertyValue(INSTANCE.getEnabledPropertyDefinition()); 815 } 816 817 818 819 /** 820 * {@inheritDoc} 821 */ 822 public void setEnabled(boolean value) { 823 impl.setPropertyValue(INSTANCE.getEnabledPropertyDefinition(), value); 824 } 825 826 827 828 /** 829 * {@inheritDoc} 830 */ 831 public FilteringPolicy getFilteringPolicy() { 832 return impl.getPropertyValue(INSTANCE.getFilteringPolicyPropertyDefinition()); 833 } 834 835 836 837 /** 838 * {@inheritDoc} 839 */ 840 public void setFilteringPolicy(FilteringPolicy value) { 841 impl.setPropertyValue(INSTANCE.getFilteringPolicyPropertyDefinition(), value); 842 } 843 844 845 846 /** 847 * {@inheritDoc} 848 */ 849 public String getJavaClass() { 850 return impl.getPropertyValue(INSTANCE.getJavaClassPropertyDefinition()); 851 } 852 853 854 855 /** 856 * {@inheritDoc} 857 */ 858 public void setJavaClass(String value) { 859 impl.setPropertyValue(INSTANCE.getJavaClassPropertyDefinition(), value); 860 } 861 862 863 864 /** 865 * {@inheritDoc} 866 */ 867 public String getKeyStoreFile() { 868 return impl.getPropertyValue(INSTANCE.getKeyStoreFilePropertyDefinition()); 869 } 870 871 872 873 /** 874 * {@inheritDoc} 875 */ 876 public void setKeyStoreFile(String value) { 877 impl.setPropertyValue(INSTANCE.getKeyStoreFilePropertyDefinition(), value); 878 } 879 880 881 882 /** 883 * {@inheritDoc} 884 */ 885 public String getKeyStorePinFile() { 886 return impl.getPropertyValue(INSTANCE.getKeyStorePinFilePropertyDefinition()); 887 } 888 889 890 891 /** 892 * {@inheritDoc} 893 */ 894 public void setKeyStorePinFile(String value) { 895 impl.setPropertyValue(INSTANCE.getKeyStorePinFilePropertyDefinition(), value); 896 } 897 898 899 900 /** 901 * {@inheritDoc} 902 */ 903 public boolean isLogControlOids() { 904 return impl.getPropertyValue(INSTANCE.getLogControlOidsPropertyDefinition()); 905 } 906 907 908 909 /** 910 * {@inheritDoc} 911 */ 912 public void setLogControlOids(Boolean value) { 913 impl.setPropertyValue(INSTANCE.getLogControlOidsPropertyDefinition(), value); 914 } 915 916 917 918 /** 919 * {@inheritDoc} 920 */ 921 public String getLogDirectory() { 922 return impl.getPropertyValue(INSTANCE.getLogDirectoryPropertyDefinition()); 923 } 924 925 926 927 /** 928 * {@inheritDoc} 929 */ 930 public void setLogDirectory(String value) { 931 impl.setPropertyValue(INSTANCE.getLogDirectoryPropertyDefinition(), value); 932 } 933 934 935 936 /** 937 * {@inheritDoc} 938 */ 939 public SortedSet<String> getRetentionPolicy() { 940 return impl.getPropertyValues(INSTANCE.getRetentionPolicyPropertyDefinition()); 941 } 942 943 944 945 /** 946 * {@inheritDoc} 947 */ 948 public void setRetentionPolicy(Collection<String> values) { 949 impl.setPropertyValues(INSTANCE.getRetentionPolicyPropertyDefinition(), values); 950 } 951 952 953 954 /** 955 * {@inheritDoc} 956 */ 957 public SortedSet<String> getRotationPolicy() { 958 return impl.getPropertyValues(INSTANCE.getRotationPolicyPropertyDefinition()); 959 } 960 961 962 963 /** 964 * {@inheritDoc} 965 */ 966 public void setRotationPolicy(Collection<String> values) { 967 impl.setPropertyValues(INSTANCE.getRotationPolicyPropertyDefinition(), values); 968 } 969 970 971 972 /** 973 * {@inheritDoc} 974 */ 975 public long getSignatureTimeInterval() { 976 return impl.getPropertyValue(INSTANCE.getSignatureTimeIntervalPropertyDefinition()); 977 } 978 979 980 981 /** 982 * {@inheritDoc} 983 */ 984 public void setSignatureTimeInterval(Long value) { 985 impl.setPropertyValue(INSTANCE.getSignatureTimeIntervalPropertyDefinition(), value); 986 } 987 988 989 990 /** 991 * {@inheritDoc} 992 */ 993 public boolean isSuppressInternalOperations() { 994 return impl.getPropertyValue(INSTANCE.getSuppressInternalOperationsPropertyDefinition()); 995 } 996 997 998 999 /** 1000 * {@inheritDoc} 1001 */ 1002 public void setSuppressInternalOperations(Boolean value) { 1003 impl.setPropertyValue(INSTANCE.getSuppressInternalOperationsPropertyDefinition(), value); 1004 } 1005 1006 1007 1008 /** 1009 * {@inheritDoc} 1010 */ 1011 public boolean isSuppressSynchronizationOperations() { 1012 return impl.getPropertyValue(INSTANCE.getSuppressSynchronizationOperationsPropertyDefinition()); 1013 } 1014 1015 1016 1017 /** 1018 * {@inheritDoc} 1019 */ 1020 public void setSuppressSynchronizationOperations(Boolean value) { 1021 impl.setPropertyValue(INSTANCE.getSuppressSynchronizationOperationsPropertyDefinition(), value); 1022 } 1023 1024 1025 1026 /** 1027 * {@inheritDoc} 1028 */ 1029 public boolean isTamperEvident() { 1030 return impl.getPropertyValue(INSTANCE.getTamperEvidentPropertyDefinition()); 1031 } 1032 1033 1034 1035 /** 1036 * {@inheritDoc} 1037 */ 1038 public void setTamperEvident(Boolean value) { 1039 impl.setPropertyValue(INSTANCE.getTamperEvidentPropertyDefinition(), value); 1040 } 1041 1042 1043 1044 /** 1045 * {@inheritDoc} 1046 */ 1047 public String[] listAccessLogFilteringCriteria() throws ConcurrentModificationException, 1048 AuthorizationException, CommunicationException { 1049 return impl.listChildren(INSTANCE.getAccessLogFilteringCriteriaRelationDefinition()); 1050 } 1051 1052 1053 1054 /** 1055 * {@inheritDoc} 1056 */ 1057 public AccessLogFilteringCriteriaCfgClient getAccessLogFilteringCriteria(String name) 1058 throws DefinitionDecodingException, ManagedObjectDecodingException, 1059 ManagedObjectNotFoundException, ConcurrentModificationException, 1060 AuthorizationException, CommunicationException { 1061 return impl.getChild(INSTANCE.getAccessLogFilteringCriteriaRelationDefinition(), name).getConfiguration(); 1062 } 1063 1064 1065 1066 /** 1067 * {@inheritDoc} 1068 */ 1069 public <M extends AccessLogFilteringCriteriaCfgClient> M createAccessLogFilteringCriteria( 1070 ManagedObjectDefinition<M, ? extends AccessLogFilteringCriteriaCfg> d, String name, Collection<PropertyException> exceptions) throws IllegalManagedObjectNameException { 1071 return impl.createChild(INSTANCE.getAccessLogFilteringCriteriaRelationDefinition(), d, name, exceptions).getConfiguration(); 1072 } 1073 1074 1075 1076 /** 1077 * {@inheritDoc} 1078 */ 1079 public void removeAccessLogFilteringCriteria(String name) 1080 throws ManagedObjectNotFoundException, ConcurrentModificationException, 1081 OperationRejectedException, AuthorizationException, CommunicationException { 1082 impl.removeChild(INSTANCE.getAccessLogFilteringCriteriaRelationDefinition(), name); 1083 } 1084 1085 1086 1087 /** 1088 * {@inheritDoc} 1089 */ 1090 public ManagedObjectDefinition<? extends CsvFileAccessLogPublisherCfgClient, ? extends CsvFileAccessLogPublisherCfg> definition() { 1091 return INSTANCE; 1092 } 1093 1094 1095 1096 /** 1097 * {@inheritDoc} 1098 */ 1099 public PropertyProvider properties() { 1100 return impl; 1101 } 1102 1103 1104 1105 /** 1106 * {@inheritDoc} 1107 */ 1108 public void commit() throws ManagedObjectAlreadyExistsException, 1109 MissingMandatoryPropertiesException, ConcurrentModificationException, 1110 OperationRejectedException, AuthorizationException, 1111 CommunicationException { 1112 impl.commit(); 1113 } 1114 1115 1116 1117 /** {@inheritDoc} */ 1118 public String toString() { 1119 return impl.toString(); 1120 } 1121 } 1122 1123 1124 1125 /** 1126 * Managed object server implementation. 1127 */ 1128 private static class CsvFileAccessLogPublisherCfgServerImpl implements 1129 CsvFileAccessLogPublisherCfg { 1130 1131 // Private implementation. 1132 private ServerManagedObject<? extends CsvFileAccessLogPublisherCfg> impl; 1133 1134 // The value of the "asynchronous" property. 1135 private final boolean pAsynchronous; 1136 1137 // The value of the "auto-flush" property. 1138 private final boolean pAutoFlush; 1139 1140 // The value of the "csv-delimiter-char" property. 1141 private final String pCsvDelimiterChar; 1142 1143 // The value of the "csv-eol-symbols" property. 1144 private final String pCsvEolSymbols; 1145 1146 // The value of the "csv-quote-char" property. 1147 private final String pCsvQuoteChar; 1148 1149 // The value of the "enabled" property. 1150 private final boolean pEnabled; 1151 1152 // The value of the "filtering-policy" property. 1153 private final FilteringPolicy pFilteringPolicy; 1154 1155 // The value of the "java-class" property. 1156 private final String pJavaClass; 1157 1158 // The value of the "key-store-file" property. 1159 private final String pKeyStoreFile; 1160 1161 // The value of the "key-store-pin-file" property. 1162 private final String pKeyStorePinFile; 1163 1164 // The value of the "log-control-oids" property. 1165 private final boolean pLogControlOids; 1166 1167 // The value of the "log-directory" property. 1168 private final String pLogDirectory; 1169 1170 // The value of the "retention-policy" property. 1171 private final SortedSet<String> pRetentionPolicy; 1172 1173 // The value of the "rotation-policy" property. 1174 private final SortedSet<String> pRotationPolicy; 1175 1176 // The value of the "signature-time-interval" property. 1177 private final long pSignatureTimeInterval; 1178 1179 // The value of the "suppress-internal-operations" property. 1180 private final boolean pSuppressInternalOperations; 1181 1182 // The value of the "suppress-synchronization-operations" property. 1183 private final boolean pSuppressSynchronizationOperations; 1184 1185 // The value of the "tamper-evident" property. 1186 private final boolean pTamperEvident; 1187 1188 1189 1190 // Private constructor. 1191 private CsvFileAccessLogPublisherCfgServerImpl(ServerManagedObject<? extends CsvFileAccessLogPublisherCfg> impl) { 1192 this.impl = impl; 1193 this.pAsynchronous = impl.getPropertyValue(INSTANCE.getAsynchronousPropertyDefinition()); 1194 this.pAutoFlush = impl.getPropertyValue(INSTANCE.getAutoFlushPropertyDefinition()); 1195 this.pCsvDelimiterChar = impl.getPropertyValue(INSTANCE.getCsvDelimiterCharPropertyDefinition()); 1196 this.pCsvEolSymbols = impl.getPropertyValue(INSTANCE.getCsvEolSymbolsPropertyDefinition()); 1197 this.pCsvQuoteChar = impl.getPropertyValue(INSTANCE.getCsvQuoteCharPropertyDefinition()); 1198 this.pEnabled = impl.getPropertyValue(INSTANCE.getEnabledPropertyDefinition()); 1199 this.pFilteringPolicy = impl.getPropertyValue(INSTANCE.getFilteringPolicyPropertyDefinition()); 1200 this.pJavaClass = impl.getPropertyValue(INSTANCE.getJavaClassPropertyDefinition()); 1201 this.pKeyStoreFile = impl.getPropertyValue(INSTANCE.getKeyStoreFilePropertyDefinition()); 1202 this.pKeyStorePinFile = impl.getPropertyValue(INSTANCE.getKeyStorePinFilePropertyDefinition()); 1203 this.pLogControlOids = impl.getPropertyValue(INSTANCE.getLogControlOidsPropertyDefinition()); 1204 this.pLogDirectory = impl.getPropertyValue(INSTANCE.getLogDirectoryPropertyDefinition()); 1205 this.pRetentionPolicy = impl.getPropertyValues(INSTANCE.getRetentionPolicyPropertyDefinition()); 1206 this.pRotationPolicy = impl.getPropertyValues(INSTANCE.getRotationPolicyPropertyDefinition()); 1207 this.pSignatureTimeInterval = impl.getPropertyValue(INSTANCE.getSignatureTimeIntervalPropertyDefinition()); 1208 this.pSuppressInternalOperations = impl.getPropertyValue(INSTANCE.getSuppressInternalOperationsPropertyDefinition()); 1209 this.pSuppressSynchronizationOperations = impl.getPropertyValue(INSTANCE.getSuppressSynchronizationOperationsPropertyDefinition()); 1210 this.pTamperEvident = impl.getPropertyValue(INSTANCE.getTamperEvidentPropertyDefinition()); 1211 } 1212 1213 1214 1215 /** 1216 * {@inheritDoc} 1217 */ 1218 public void addCsvFileAccessChangeListener( 1219 ConfigurationChangeListener<CsvFileAccessLogPublisherCfg> listener) { 1220 impl.registerChangeListener(listener); 1221 } 1222 1223 1224 1225 /** 1226 * {@inheritDoc} 1227 */ 1228 public void removeCsvFileAccessChangeListener( 1229 ConfigurationChangeListener<CsvFileAccessLogPublisherCfg> listener) { 1230 impl.deregisterChangeListener(listener); 1231 } 1232 /** 1233 * {@inheritDoc} 1234 */ 1235 public void addAccessChangeListener( 1236 ConfigurationChangeListener<AccessLogPublisherCfg> listener) { 1237 impl.registerChangeListener(listener); 1238 } 1239 1240 1241 1242 /** 1243 * {@inheritDoc} 1244 */ 1245 public void removeAccessChangeListener( 1246 ConfigurationChangeListener<AccessLogPublisherCfg> listener) { 1247 impl.deregisterChangeListener(listener); 1248 } 1249 /** 1250 * {@inheritDoc} 1251 */ 1252 public void addChangeListener( 1253 ConfigurationChangeListener<LogPublisherCfg> listener) { 1254 impl.registerChangeListener(listener); 1255 } 1256 1257 1258 1259 /** 1260 * {@inheritDoc} 1261 */ 1262 public void removeChangeListener( 1263 ConfigurationChangeListener<LogPublisherCfg> listener) { 1264 impl.deregisterChangeListener(listener); 1265 } 1266 1267 1268 1269 /** 1270 * {@inheritDoc} 1271 */ 1272 public boolean isAsynchronous() { 1273 return pAsynchronous; 1274 } 1275 1276 1277 1278 /** 1279 * {@inheritDoc} 1280 */ 1281 public boolean isAutoFlush() { 1282 return pAutoFlush; 1283 } 1284 1285 1286 1287 /** 1288 * {@inheritDoc} 1289 */ 1290 public String getCsvDelimiterChar() { 1291 return pCsvDelimiterChar; 1292 } 1293 1294 1295 1296 /** 1297 * {@inheritDoc} 1298 */ 1299 public String getCsvEolSymbols() { 1300 return pCsvEolSymbols; 1301 } 1302 1303 1304 1305 /** 1306 * {@inheritDoc} 1307 */ 1308 public String getCsvQuoteChar() { 1309 return pCsvQuoteChar; 1310 } 1311 1312 1313 1314 /** 1315 * {@inheritDoc} 1316 */ 1317 public boolean isEnabled() { 1318 return pEnabled; 1319 } 1320 1321 1322 1323 /** 1324 * {@inheritDoc} 1325 */ 1326 public FilteringPolicy getFilteringPolicy() { 1327 return pFilteringPolicy; 1328 } 1329 1330 1331 1332 /** 1333 * {@inheritDoc} 1334 */ 1335 public String getJavaClass() { 1336 return pJavaClass; 1337 } 1338 1339 1340 1341 /** 1342 * {@inheritDoc} 1343 */ 1344 public String getKeyStoreFile() { 1345 return pKeyStoreFile; 1346 } 1347 1348 1349 1350 /** 1351 * {@inheritDoc} 1352 */ 1353 public String getKeyStorePinFile() { 1354 return pKeyStorePinFile; 1355 } 1356 1357 1358 1359 /** 1360 * {@inheritDoc} 1361 */ 1362 public boolean isLogControlOids() { 1363 return pLogControlOids; 1364 } 1365 1366 1367 1368 /** 1369 * {@inheritDoc} 1370 */ 1371 public String getLogDirectory() { 1372 return pLogDirectory; 1373 } 1374 1375 1376 1377 /** 1378 * {@inheritDoc} 1379 */ 1380 public SortedSet<String> getRetentionPolicy() { 1381 return pRetentionPolicy; 1382 } 1383 1384 1385 1386 /** 1387 * {@inheritDoc} 1388 */ 1389 public SortedSet<DN> getRetentionPolicyDNs() { 1390 SortedSet<String> values = getRetentionPolicy(); 1391 SortedSet<DN> dnValues = new TreeSet<DN>(); 1392 for (String value : values) { 1393 DN dn = INSTANCE.getRetentionPolicyPropertyDefinition().getChildDN(value); 1394 dnValues.add(dn); 1395 } 1396 return dnValues; 1397 } 1398 1399 1400 1401 /** 1402 * {@inheritDoc} 1403 */ 1404 public SortedSet<String> getRotationPolicy() { 1405 return pRotationPolicy; 1406 } 1407 1408 1409 1410 /** 1411 * {@inheritDoc} 1412 */ 1413 public SortedSet<DN> getRotationPolicyDNs() { 1414 SortedSet<String> values = getRotationPolicy(); 1415 SortedSet<DN> dnValues = new TreeSet<DN>(); 1416 for (String value : values) { 1417 DN dn = INSTANCE.getRotationPolicyPropertyDefinition().getChildDN(value); 1418 dnValues.add(dn); 1419 } 1420 return dnValues; 1421 } 1422 1423 1424 1425 /** 1426 * {@inheritDoc} 1427 */ 1428 public long getSignatureTimeInterval() { 1429 return pSignatureTimeInterval; 1430 } 1431 1432 1433 1434 /** 1435 * {@inheritDoc} 1436 */ 1437 public boolean isSuppressInternalOperations() { 1438 return pSuppressInternalOperations; 1439 } 1440 1441 1442 1443 /** 1444 * {@inheritDoc} 1445 */ 1446 public boolean isSuppressSynchronizationOperations() { 1447 return pSuppressSynchronizationOperations; 1448 } 1449 1450 1451 1452 /** 1453 * {@inheritDoc} 1454 */ 1455 public boolean isTamperEvident() { 1456 return pTamperEvident; 1457 } 1458 1459 1460 1461 /** 1462 * {@inheritDoc} 1463 */ 1464 public String[] listAccessLogFilteringCriteria() { 1465 return impl.listChildren(INSTANCE.getAccessLogFilteringCriteriaRelationDefinition()); 1466 } 1467 1468 1469 1470 /** 1471 * {@inheritDoc} 1472 */ 1473 public AccessLogFilteringCriteriaCfg getAccessLogFilteringCriteria(String name) throws ConfigException { 1474 return impl.getChild(INSTANCE.getAccessLogFilteringCriteriaRelationDefinition(), name).getConfiguration(); 1475 } 1476 1477 1478 1479 /** 1480 * {@inheritDoc} 1481 */ 1482 public void addAccessLogFilteringCriteriaAddListener( 1483 ConfigurationAddListener<AccessLogFilteringCriteriaCfg> listener) throws ConfigException { 1484 impl.registerAddListener(INSTANCE.getAccessLogFilteringCriteriaRelationDefinition(), listener); 1485 } 1486 1487 1488 1489 /** 1490 * {@inheritDoc} 1491 */ 1492 public void removeAccessLogFilteringCriteriaAddListener( 1493 ConfigurationAddListener<AccessLogFilteringCriteriaCfg> listener) { 1494 impl.deregisterAddListener(INSTANCE.getAccessLogFilteringCriteriaRelationDefinition(), listener); 1495 } 1496 1497 1498 1499 /** 1500 * {@inheritDoc} 1501 */ 1502 public void addAccessLogFilteringCriteriaDeleteListener( 1503 ConfigurationDeleteListener<AccessLogFilteringCriteriaCfg> listener) throws ConfigException { 1504 impl.registerDeleteListener(INSTANCE.getAccessLogFilteringCriteriaRelationDefinition(), listener); 1505 } 1506 1507 1508 1509 /** 1510 * {@inheritDoc} 1511 */ 1512 public void removeAccessLogFilteringCriteriaDeleteListener( 1513 ConfigurationDeleteListener<AccessLogFilteringCriteriaCfg> listener) { 1514 impl.deregisterDeleteListener(INSTANCE.getAccessLogFilteringCriteriaRelationDefinition(), listener); 1515 } 1516 1517 1518 1519 /** 1520 * {@inheritDoc} 1521 */ 1522 public Class<? extends CsvFileAccessLogPublisherCfg> configurationClass() { 1523 return CsvFileAccessLogPublisherCfg.class; 1524 } 1525 1526 1527 1528 /** 1529 * {@inheritDoc} 1530 */ 1531 public DN dn() { 1532 return impl.getDN(); 1533 } 1534 1535 1536 1537 /** {@inheritDoc} */ 1538 public String toString() { 1539 return impl.toString(); 1540 } 1541 } 1542}