View Javadoc

1   /*
2    * Copyright 1999,2005 The Apache Software Foundation.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  
17  package org.apache.log4j.rolling;
18  
19  import org.apache.log4j.rolling.helper.Action;
20  
21  
22  /***
23   * Description of actions needed to complete rollover.
24   *
25   * @author Curt Arnold
26   *
27   */
28  public final class RolloverDescriptionImpl implements RolloverDescription {
29    /***
30     * Active log file name after rollover.
31     */
32    private final String activeFileName;
33  
34    /***
35     * Should active file be opened for appending.
36     */
37    private final boolean append;
38  
39    /***
40     * Action to be completed after close of current active log file
41     * before returning control to caller.
42     */
43    private final Action synchronous;
44  
45    /***
46     * Action to be completed after close of current active log file
47     * and before next rollover attempt, may be executed asynchronously.
48     */
49    private final Action asynchronous;
50  
51    /***
52     * Create new instance.
53     * @param activeFileName active log file name after rollover, may not be null.
54     * @param append true if active log file after rollover should be opened for appending.
55     * @param synchronous action to be completed after close of current active log file, may be null.
56     * @param asynchronous action to be completed after close of current active log file and
57     * before next rollover attempt.
58     */
59    public RolloverDescriptionImpl(
60      final String activeFileName, final boolean append, final Action synchronous,
61      final Action asynchronous) {
62      if (activeFileName == null) {
63        throw new NullPointerException("activeFileName");
64      }
65  
66      this.append = append;
67      this.activeFileName = activeFileName;
68      this.synchronous = synchronous;
69      this.asynchronous = asynchronous;
70    }
71  
72    /***
73     * Active log file name after rollover.
74     * @return active log file name after rollover.
75     */
76    public String getActiveFileName() {
77      return activeFileName;
78    }
79  
80    /***
81     * {@inheritDoc}
82     */
83    public boolean getAppend() {
84      return append;
85    }
86  
87    /***
88     * Action to be completed after close of current active log file
89     * before returning control to caller.
90     *
91     * @return action, may be null.
92     */
93    public Action getSynchronous() {
94      return synchronous;
95    }
96  
97    /***
98     * Action to be completed after close of current active log file
99     * and before next rollover attempt, may be executed asynchronously.
100    *
101    * @return action, may be null.
102    */
103   public Action getAsynchronous() {
104     return asynchronous;
105   }
106 }