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 org.forgerock.opendj.config.server.ConfigException;
022import org.forgerock.opendj.ldap.DN;
023import org.opends.server.admin.AdministratorAction;
024import org.opends.server.admin.BooleanPropertyDefinition;
025import org.opends.server.admin.ClassPropertyDefinition;
026import org.opends.server.admin.client.AuthorizationException;
027import org.opends.server.admin.client.CommunicationException;
028import org.opends.server.admin.client.ConcurrentModificationException;
029import org.opends.server.admin.client.IllegalManagedObjectNameException;
030import org.opends.server.admin.client.ManagedObject;
031import org.opends.server.admin.client.ManagedObjectDecodingException;
032import org.opends.server.admin.client.MissingMandatoryPropertiesException;
033import org.opends.server.admin.client.OperationRejectedException;
034import org.opends.server.admin.DefaultBehaviorProvider;
035import org.opends.server.admin.DefinedDefaultBehaviorProvider;
036import org.opends.server.admin.DefinitionDecodingException;
037import org.opends.server.admin.InstantiableRelationDefinition;
038import org.opends.server.admin.IntegerPropertyDefinition;
039import org.opends.server.admin.ManagedObjectAlreadyExistsException;
040import org.opends.server.admin.ManagedObjectDefinition;
041import org.opends.server.admin.ManagedObjectNotFoundException;
042import org.opends.server.admin.PropertyException;
043import org.opends.server.admin.PropertyOption;
044import org.opends.server.admin.PropertyProvider;
045import org.opends.server.admin.server.ConfigurationAddListener;
046import org.opends.server.admin.server.ConfigurationChangeListener;
047import org.opends.server.admin.server.ConfigurationDeleteListener;
048import org.opends.server.admin.server.ServerManagedObject;
049import org.opends.server.admin.std.client.DebugLogPublisherCfgClient;
050import org.opends.server.admin.std.client.DebugTargetCfgClient;
051import org.opends.server.admin.std.server.DebugLogPublisherCfg;
052import org.opends.server.admin.std.server.DebugTargetCfg;
053import org.opends.server.admin.std.server.LogPublisherCfg;
054import org.opends.server.admin.Tag;
055
056
057
058/**
059 * An interface for querying the Debug Log Publisher managed object
060 * definition meta information.
061 * <p>
062 * Debug Log Publishers are responsible for distributing debug log
063 * messages from the debug logger to a destination.
064 */
065public final class DebugLogPublisherCfgDefn extends ManagedObjectDefinition<DebugLogPublisherCfgClient, DebugLogPublisherCfg> {
066
067  // The singleton configuration definition instance.
068  private static final DebugLogPublisherCfgDefn INSTANCE = new DebugLogPublisherCfgDefn();
069
070
071
072  // The "default-debug-exceptions-only" property definition.
073  private static final BooleanPropertyDefinition PD_DEFAULT_DEBUG_EXCEPTIONS_ONLY;
074
075
076
077  // The "default-include-throwable-cause" property definition.
078  private static final BooleanPropertyDefinition PD_DEFAULT_INCLUDE_THROWABLE_CAUSE;
079
080
081
082  // The "default-omit-method-entry-arguments" property definition.
083  private static final BooleanPropertyDefinition PD_DEFAULT_OMIT_METHOD_ENTRY_ARGUMENTS;
084
085
086
087  // The "default-omit-method-return-value" property definition.
088  private static final BooleanPropertyDefinition PD_DEFAULT_OMIT_METHOD_RETURN_VALUE;
089
090
091
092  // The "default-throwable-stack-frames" property definition.
093  private static final IntegerPropertyDefinition PD_DEFAULT_THROWABLE_STACK_FRAMES;
094
095
096
097  // The "java-class" property definition.
098  private static final ClassPropertyDefinition PD_JAVA_CLASS;
099
100
101
102  // The "debug-targets" relation definition.
103  private static final InstantiableRelationDefinition<DebugTargetCfgClient, DebugTargetCfg> RD_DEBUG_TARGETS;
104
105
106
107  // Build the "default-debug-exceptions-only" property definition.
108  static {
109      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "default-debug-exceptions-only");
110      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "default-debug-exceptions-only"));
111      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("false");
112      builder.setDefaultBehaviorProvider(provider);
113      PD_DEFAULT_DEBUG_EXCEPTIONS_ONLY = builder.getInstance();
114      INSTANCE.registerPropertyDefinition(PD_DEFAULT_DEBUG_EXCEPTIONS_ONLY);
115  }
116
117
118
119  // Build the "default-include-throwable-cause" property definition.
120  static {
121      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "default-include-throwable-cause");
122      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "default-include-throwable-cause"));
123      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("true");
124      builder.setDefaultBehaviorProvider(provider);
125      PD_DEFAULT_INCLUDE_THROWABLE_CAUSE = builder.getInstance();
126      INSTANCE.registerPropertyDefinition(PD_DEFAULT_INCLUDE_THROWABLE_CAUSE);
127  }
128
129
130
131  // Build the "default-omit-method-entry-arguments" property definition.
132  static {
133      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "default-omit-method-entry-arguments");
134      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "default-omit-method-entry-arguments"));
135      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("false");
136      builder.setDefaultBehaviorProvider(provider);
137      PD_DEFAULT_OMIT_METHOD_ENTRY_ARGUMENTS = builder.getInstance();
138      INSTANCE.registerPropertyDefinition(PD_DEFAULT_OMIT_METHOD_ENTRY_ARGUMENTS);
139  }
140
141
142
143  // Build the "default-omit-method-return-value" property definition.
144  static {
145      BooleanPropertyDefinition.Builder builder = BooleanPropertyDefinition.createBuilder(INSTANCE, "default-omit-method-return-value");
146      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "default-omit-method-return-value"));
147      DefaultBehaviorProvider<Boolean> provider = new DefinedDefaultBehaviorProvider<Boolean>("false");
148      builder.setDefaultBehaviorProvider(provider);
149      PD_DEFAULT_OMIT_METHOD_RETURN_VALUE = builder.getInstance();
150      INSTANCE.registerPropertyDefinition(PD_DEFAULT_OMIT_METHOD_RETURN_VALUE);
151  }
152
153
154
155  // Build the "default-throwable-stack-frames" property definition.
156  static {
157      IntegerPropertyDefinition.Builder builder = IntegerPropertyDefinition.createBuilder(INSTANCE, "default-throwable-stack-frames");
158      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "default-throwable-stack-frames"));
159      DefaultBehaviorProvider<Integer> provider = new DefinedDefaultBehaviorProvider<Integer>("2147483647");
160      builder.setDefaultBehaviorProvider(provider);
161      builder.setUpperLimit(2147483647);
162      builder.setLowerLimit(0);
163      PD_DEFAULT_THROWABLE_STACK_FRAMES = builder.getInstance();
164      INSTANCE.registerPropertyDefinition(PD_DEFAULT_THROWABLE_STACK_FRAMES);
165  }
166
167
168
169  // Build the "java-class" property definition.
170  static {
171      ClassPropertyDefinition.Builder builder = ClassPropertyDefinition.createBuilder(INSTANCE, "java-class");
172      builder.setOption(PropertyOption.MANDATORY);
173      builder.setAdministratorAction(new AdministratorAction(AdministratorAction.Type.NONE, INSTANCE, "java-class"));
174      DefaultBehaviorProvider<String> provider = new DefinedDefaultBehaviorProvider<String>("org.opends.server.loggers.DebugLogPublisher");
175      builder.setDefaultBehaviorProvider(provider);
176      builder.addInstanceOf("org.opends.server.loggers.LogPublisher");
177      PD_JAVA_CLASS = builder.getInstance();
178      INSTANCE.registerPropertyDefinition(PD_JAVA_CLASS);
179  }
180
181
182
183  // Build the "debug-targets" relation definition.
184  static {
185    InstantiableRelationDefinition.Builder<DebugTargetCfgClient, DebugTargetCfg> builder =
186      new InstantiableRelationDefinition.Builder<DebugTargetCfgClient, DebugTargetCfg>(INSTANCE, "debug-target", "debug-targets", DebugTargetCfgDefn.getInstance());
187    builder.setNamingProperty(DebugTargetCfgDefn.getInstance().getDebugScopePropertyDefinition());
188    RD_DEBUG_TARGETS = builder.getInstance();
189    INSTANCE.registerRelationDefinition(RD_DEBUG_TARGETS);
190  }
191
192
193
194  // Register the tags associated with this managed object definition.
195  static {
196    INSTANCE.registerTag(Tag.valueOf("logging"));
197  }
198
199
200
201  /**
202   * Get the Debug Log Publisher configuration definition singleton.
203   *
204   * @return Returns the Debug Log Publisher configuration definition
205   *         singleton.
206   */
207  public static DebugLogPublisherCfgDefn getInstance() {
208    return INSTANCE;
209  }
210
211
212
213  /**
214   * Private constructor.
215   */
216  private DebugLogPublisherCfgDefn() {
217    super("debug-log-publisher", LogPublisherCfgDefn.getInstance());
218  }
219
220
221
222  /**
223   * {@inheritDoc}
224   */
225  public DebugLogPublisherCfgClient createClientConfiguration(
226      ManagedObject<? extends DebugLogPublisherCfgClient> impl) {
227    return new DebugLogPublisherCfgClientImpl(impl);
228  }
229
230
231
232  /**
233   * {@inheritDoc}
234   */
235  public DebugLogPublisherCfg createServerConfiguration(
236      ServerManagedObject<? extends DebugLogPublisherCfg> impl) {
237    return new DebugLogPublisherCfgServerImpl(impl);
238  }
239
240
241
242  /**
243   * {@inheritDoc}
244   */
245  public Class<DebugLogPublisherCfg> getServerConfigurationClass() {
246    return DebugLogPublisherCfg.class;
247  }
248
249
250
251  /**
252   * Get the "default-debug-exceptions-only" property definition.
253   * <p>
254   * Indicates whether only logs with exception should be logged.
255   *
256   * @return Returns the "default-debug-exceptions-only" property definition.
257   */
258  public BooleanPropertyDefinition getDefaultDebugExceptionsOnlyPropertyDefinition() {
259    return PD_DEFAULT_DEBUG_EXCEPTIONS_ONLY;
260  }
261
262
263
264  /**
265   * Get the "default-include-throwable-cause" property definition.
266   * <p>
267   * Indicates whether to include the cause of exceptions in exception
268   * thrown and caught messages logged by default.
269   *
270   * @return Returns the "default-include-throwable-cause" property definition.
271   */
272  public BooleanPropertyDefinition getDefaultIncludeThrowableCausePropertyDefinition() {
273    return PD_DEFAULT_INCLUDE_THROWABLE_CAUSE;
274  }
275
276
277
278  /**
279   * Get the "default-omit-method-entry-arguments" property definition.
280   * <p>
281   * Indicates whether to include method arguments in debug messages
282   * logged by default.
283   *
284   * @return Returns the "default-omit-method-entry-arguments" property definition.
285   */
286  public BooleanPropertyDefinition getDefaultOmitMethodEntryArgumentsPropertyDefinition() {
287    return PD_DEFAULT_OMIT_METHOD_ENTRY_ARGUMENTS;
288  }
289
290
291
292  /**
293   * Get the "default-omit-method-return-value" property definition.
294   * <p>
295   * Indicates whether to include the return value in debug messages
296   * logged by default.
297   *
298   * @return Returns the "default-omit-method-return-value" property definition.
299   */
300  public BooleanPropertyDefinition getDefaultOmitMethodReturnValuePropertyDefinition() {
301    return PD_DEFAULT_OMIT_METHOD_RETURN_VALUE;
302  }
303
304
305
306  /**
307   * Get the "default-throwable-stack-frames" property definition.
308   * <p>
309   * Indicates the number of stack frames to include in the stack
310   * trace for method entry and exception thrown messages.
311   *
312   * @return Returns the "default-throwable-stack-frames" property definition.
313   */
314  public IntegerPropertyDefinition getDefaultThrowableStackFramesPropertyDefinition() {
315    return PD_DEFAULT_THROWABLE_STACK_FRAMES;
316  }
317
318
319
320  /**
321   * Get the "enabled" property definition.
322   * <p>
323   * Indicates whether the Debug Log Publisher is enabled for use.
324   *
325   * @return Returns the "enabled" property definition.
326   */
327  public BooleanPropertyDefinition getEnabledPropertyDefinition() {
328    return LogPublisherCfgDefn.getInstance().getEnabledPropertyDefinition();
329  }
330
331
332
333  /**
334   * Get the "java-class" property definition.
335   * <p>
336   * The fully-qualified name of the Java class that provides the
337   * Debug Log Publisher implementation.
338   *
339   * @return Returns the "java-class" property definition.
340   */
341  public ClassPropertyDefinition getJavaClassPropertyDefinition() {
342    return PD_JAVA_CLASS;
343  }
344
345
346
347  /**
348   * Get the "debug-targets" relation definition.
349   *
350   * @return Returns the "debug-targets" relation definition.
351   */
352  public InstantiableRelationDefinition<DebugTargetCfgClient,DebugTargetCfg> getDebugTargetsRelationDefinition() {
353    return RD_DEBUG_TARGETS;
354  }
355
356
357
358  /**
359   * Managed object client implementation.
360   */
361  private static class DebugLogPublisherCfgClientImpl implements
362    DebugLogPublisherCfgClient {
363
364    // Private implementation.
365    private ManagedObject<? extends DebugLogPublisherCfgClient> impl;
366
367
368
369    // Private constructor.
370    private DebugLogPublisherCfgClientImpl(
371        ManagedObject<? extends DebugLogPublisherCfgClient> impl) {
372      this.impl = impl;
373    }
374
375
376
377    /**
378     * {@inheritDoc}
379     */
380    public boolean isDefaultDebugExceptionsOnly() {
381      return impl.getPropertyValue(INSTANCE.getDefaultDebugExceptionsOnlyPropertyDefinition());
382    }
383
384
385
386    /**
387     * {@inheritDoc}
388     */
389    public void setDefaultDebugExceptionsOnly(Boolean value) {
390      impl.setPropertyValue(INSTANCE.getDefaultDebugExceptionsOnlyPropertyDefinition(), value);
391    }
392
393
394
395    /**
396     * {@inheritDoc}
397     */
398    public boolean isDefaultIncludeThrowableCause() {
399      return impl.getPropertyValue(INSTANCE.getDefaultIncludeThrowableCausePropertyDefinition());
400    }
401
402
403
404    /**
405     * {@inheritDoc}
406     */
407    public void setDefaultIncludeThrowableCause(Boolean value) {
408      impl.setPropertyValue(INSTANCE.getDefaultIncludeThrowableCausePropertyDefinition(), value);
409    }
410
411
412
413    /**
414     * {@inheritDoc}
415     */
416    public boolean isDefaultOmitMethodEntryArguments() {
417      return impl.getPropertyValue(INSTANCE.getDefaultOmitMethodEntryArgumentsPropertyDefinition());
418    }
419
420
421
422    /**
423     * {@inheritDoc}
424     */
425    public void setDefaultOmitMethodEntryArguments(Boolean value) {
426      impl.setPropertyValue(INSTANCE.getDefaultOmitMethodEntryArgumentsPropertyDefinition(), value);
427    }
428
429
430
431    /**
432     * {@inheritDoc}
433     */
434    public boolean isDefaultOmitMethodReturnValue() {
435      return impl.getPropertyValue(INSTANCE.getDefaultOmitMethodReturnValuePropertyDefinition());
436    }
437
438
439
440    /**
441     * {@inheritDoc}
442     */
443    public void setDefaultOmitMethodReturnValue(Boolean value) {
444      impl.setPropertyValue(INSTANCE.getDefaultOmitMethodReturnValuePropertyDefinition(), value);
445    }
446
447
448
449    /**
450     * {@inheritDoc}
451     */
452    public int getDefaultThrowableStackFrames() {
453      return impl.getPropertyValue(INSTANCE.getDefaultThrowableStackFramesPropertyDefinition());
454    }
455
456
457
458    /**
459     * {@inheritDoc}
460     */
461    public void setDefaultThrowableStackFrames(Integer value) {
462      impl.setPropertyValue(INSTANCE.getDefaultThrowableStackFramesPropertyDefinition(), value);
463    }
464
465
466
467    /**
468     * {@inheritDoc}
469     */
470    public Boolean isEnabled() {
471      return impl.getPropertyValue(INSTANCE.getEnabledPropertyDefinition());
472    }
473
474
475
476    /**
477     * {@inheritDoc}
478     */
479    public void setEnabled(boolean value) {
480      impl.setPropertyValue(INSTANCE.getEnabledPropertyDefinition(), value);
481    }
482
483
484
485    /**
486     * {@inheritDoc}
487     */
488    public String getJavaClass() {
489      return impl.getPropertyValue(INSTANCE.getJavaClassPropertyDefinition());
490    }
491
492
493
494    /**
495     * {@inheritDoc}
496     */
497    public void setJavaClass(String value) {
498      impl.setPropertyValue(INSTANCE.getJavaClassPropertyDefinition(), value);
499    }
500
501
502
503    /**
504     * {@inheritDoc}
505     */
506    public String[] listDebugTargets() throws ConcurrentModificationException,
507        AuthorizationException, CommunicationException {
508      return impl.listChildren(INSTANCE.getDebugTargetsRelationDefinition());
509    }
510
511
512
513    /**
514     * {@inheritDoc}
515     */
516    public DebugTargetCfgClient getDebugTarget(String name)
517        throws DefinitionDecodingException, ManagedObjectDecodingException,
518        ManagedObjectNotFoundException, ConcurrentModificationException,
519        AuthorizationException, CommunicationException {
520      return impl.getChild(INSTANCE.getDebugTargetsRelationDefinition(), name).getConfiguration();
521    }
522
523
524
525    /**
526     * {@inheritDoc}
527     */
528    public <M extends DebugTargetCfgClient> M createDebugTarget(
529        ManagedObjectDefinition<M, ? extends DebugTargetCfg> d, String name, Collection<PropertyException> exceptions) throws IllegalManagedObjectNameException {
530      return impl.createChild(INSTANCE.getDebugTargetsRelationDefinition(), d, name, exceptions).getConfiguration();
531    }
532
533
534
535    /**
536     * {@inheritDoc}
537     */
538    public void removeDebugTarget(String name)
539        throws ManagedObjectNotFoundException, ConcurrentModificationException,
540        OperationRejectedException, AuthorizationException, CommunicationException {
541      impl.removeChild(INSTANCE.getDebugTargetsRelationDefinition(), name);
542    }
543
544
545
546    /**
547     * {@inheritDoc}
548     */
549    public ManagedObjectDefinition<? extends DebugLogPublisherCfgClient, ? extends DebugLogPublisherCfg> definition() {
550      return INSTANCE;
551    }
552
553
554
555    /**
556     * {@inheritDoc}
557     */
558    public PropertyProvider properties() {
559      return impl;
560    }
561
562
563
564    /**
565     * {@inheritDoc}
566     */
567    public void commit() throws ManagedObjectAlreadyExistsException,
568        MissingMandatoryPropertiesException, ConcurrentModificationException,
569        OperationRejectedException, AuthorizationException,
570        CommunicationException {
571      impl.commit();
572    }
573
574
575
576    /** {@inheritDoc} */
577    public String toString() {
578      return impl.toString();
579    }
580  }
581
582
583
584  /**
585   * Managed object server implementation.
586   */
587  private static class DebugLogPublisherCfgServerImpl implements
588    DebugLogPublisherCfg {
589
590    // Private implementation.
591    private ServerManagedObject<? extends DebugLogPublisherCfg> impl;
592
593    // The value of the "default-debug-exceptions-only" property.
594    private final boolean pDefaultDebugExceptionsOnly;
595
596    // The value of the "default-include-throwable-cause" property.
597    private final boolean pDefaultIncludeThrowableCause;
598
599    // The value of the "default-omit-method-entry-arguments" property.
600    private final boolean pDefaultOmitMethodEntryArguments;
601
602    // The value of the "default-omit-method-return-value" property.
603    private final boolean pDefaultOmitMethodReturnValue;
604
605    // The value of the "default-throwable-stack-frames" property.
606    private final int pDefaultThrowableStackFrames;
607
608    // The value of the "enabled" property.
609    private final boolean pEnabled;
610
611    // The value of the "java-class" property.
612    private final String pJavaClass;
613
614
615
616    // Private constructor.
617    private DebugLogPublisherCfgServerImpl(ServerManagedObject<? extends DebugLogPublisherCfg> impl) {
618      this.impl = impl;
619      this.pDefaultDebugExceptionsOnly = impl.getPropertyValue(INSTANCE.getDefaultDebugExceptionsOnlyPropertyDefinition());
620      this.pDefaultIncludeThrowableCause = impl.getPropertyValue(INSTANCE.getDefaultIncludeThrowableCausePropertyDefinition());
621      this.pDefaultOmitMethodEntryArguments = impl.getPropertyValue(INSTANCE.getDefaultOmitMethodEntryArgumentsPropertyDefinition());
622      this.pDefaultOmitMethodReturnValue = impl.getPropertyValue(INSTANCE.getDefaultOmitMethodReturnValuePropertyDefinition());
623      this.pDefaultThrowableStackFrames = impl.getPropertyValue(INSTANCE.getDefaultThrowableStackFramesPropertyDefinition());
624      this.pEnabled = impl.getPropertyValue(INSTANCE.getEnabledPropertyDefinition());
625      this.pJavaClass = impl.getPropertyValue(INSTANCE.getJavaClassPropertyDefinition());
626    }
627
628
629
630    /**
631     * {@inheritDoc}
632     */
633    public void addDebugChangeListener(
634        ConfigurationChangeListener<DebugLogPublisherCfg> listener) {
635      impl.registerChangeListener(listener);
636    }
637
638
639
640    /**
641     * {@inheritDoc}
642     */
643    public void removeDebugChangeListener(
644        ConfigurationChangeListener<DebugLogPublisherCfg> listener) {
645      impl.deregisterChangeListener(listener);
646    }
647    /**
648     * {@inheritDoc}
649     */
650    public void addChangeListener(
651        ConfigurationChangeListener<LogPublisherCfg> listener) {
652      impl.registerChangeListener(listener);
653    }
654
655
656
657    /**
658     * {@inheritDoc}
659     */
660    public void removeChangeListener(
661        ConfigurationChangeListener<LogPublisherCfg> listener) {
662      impl.deregisterChangeListener(listener);
663    }
664
665
666
667    /**
668     * {@inheritDoc}
669     */
670    public boolean isDefaultDebugExceptionsOnly() {
671      return pDefaultDebugExceptionsOnly;
672    }
673
674
675
676    /**
677     * {@inheritDoc}
678     */
679    public boolean isDefaultIncludeThrowableCause() {
680      return pDefaultIncludeThrowableCause;
681    }
682
683
684
685    /**
686     * {@inheritDoc}
687     */
688    public boolean isDefaultOmitMethodEntryArguments() {
689      return pDefaultOmitMethodEntryArguments;
690    }
691
692
693
694    /**
695     * {@inheritDoc}
696     */
697    public boolean isDefaultOmitMethodReturnValue() {
698      return pDefaultOmitMethodReturnValue;
699    }
700
701
702
703    /**
704     * {@inheritDoc}
705     */
706    public int getDefaultThrowableStackFrames() {
707      return pDefaultThrowableStackFrames;
708    }
709
710
711
712    /**
713     * {@inheritDoc}
714     */
715    public boolean isEnabled() {
716      return pEnabled;
717    }
718
719
720
721    /**
722     * {@inheritDoc}
723     */
724    public String getJavaClass() {
725      return pJavaClass;
726    }
727
728
729
730    /**
731     * {@inheritDoc}
732     */
733    public String[] listDebugTargets() {
734      return impl.listChildren(INSTANCE.getDebugTargetsRelationDefinition());
735    }
736
737
738
739    /**
740     * {@inheritDoc}
741     */
742    public DebugTargetCfg getDebugTarget(String name) throws ConfigException {
743      return impl.getChild(INSTANCE.getDebugTargetsRelationDefinition(), name).getConfiguration();
744    }
745
746
747
748    /**
749     * {@inheritDoc}
750     */
751    public void addDebugTargetAddListener(
752        ConfigurationAddListener<DebugTargetCfg> listener) throws ConfigException {
753      impl.registerAddListener(INSTANCE.getDebugTargetsRelationDefinition(), listener);
754    }
755
756
757
758    /**
759     * {@inheritDoc}
760     */
761    public void removeDebugTargetAddListener(
762        ConfigurationAddListener<DebugTargetCfg> listener) {
763      impl.deregisterAddListener(INSTANCE.getDebugTargetsRelationDefinition(), listener);
764    }
765
766
767
768    /**
769     * {@inheritDoc}
770     */
771    public void addDebugTargetDeleteListener(
772        ConfigurationDeleteListener<DebugTargetCfg> listener) throws ConfigException {
773      impl.registerDeleteListener(INSTANCE.getDebugTargetsRelationDefinition(), listener);
774    }
775
776
777
778    /**
779     * {@inheritDoc}
780     */
781    public void removeDebugTargetDeleteListener(
782        ConfigurationDeleteListener<DebugTargetCfg> listener) {
783      impl.deregisterDeleteListener(INSTANCE.getDebugTargetsRelationDefinition(), listener);
784    }
785
786
787
788    /**
789     * {@inheritDoc}
790     */
791    public Class<? extends DebugLogPublisherCfg> configurationClass() {
792      return DebugLogPublisherCfg.class;
793    }
794
795
796
797    /**
798     * {@inheritDoc}
799     */
800    public DN dn() {
801      return impl.getDN();
802    }
803
804
805
806    /** {@inheritDoc} */
807    public String toString() {
808      return impl.toString();
809    }
810  }
811}