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