View Javadoc
1   package org.apache.maven.shared.release;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import java.io.ByteArrayOutputStream;
23  import java.io.PrintStream;
24  
25  /**
26   * @author Edwin Punzalan
27   */
28  public class ReleaseResult
29  {
30      public static final int UNDEFINED = -1, SUCCESS = 0, ERROR = 1;
31  
32      private StringBuilder stdOut = new StringBuilder();
33  
34      private int resultCode = UNDEFINED;
35  
36      private long startTime;
37  
38      private long endTime;
39  
40      private static final String LS = System.getProperty( "line.separator" );
41  
42      public void appendInfo( String message )
43      {
44          stdOut.append( "[INFO] " ).append( message ).append( LS );
45      }
46  
47      public void appendWarn( String message )
48      {
49          stdOut.append( "[WARN] " ).append( message ).append( LS );
50      }
51  
52      public void appendDebug( String message )
53      {
54          stdOut.append( "[DEBUG] " ).append( message ).append( LS );
55      }
56  
57      public void appendDebug( String message, Exception e )
58      {
59          appendDebug( message );
60  
61          stdOut.append( getStackTrace( e ) ).append( LS );
62      }
63  
64      public void appendError( String message )
65      {
66          stdOut.append( "[ERROR] " ).append( message ).append( LS );
67  
68          setResultCode( ERROR );
69      }
70  
71      public void appendError( Exception e )
72      {
73          appendError( getStackTrace( e ) );
74      }
75  
76      public void appendError( String message, Exception e )
77      {
78          appendError( message );
79  
80          stdOut.append( getStackTrace( e ) ).append( LS );
81      }
82  
83      public void appendOutput( String message )
84      {
85          stdOut.append( message );
86      }
87  
88      public String getOutput()
89      {
90          return stdOut.toString();
91      }
92  
93      public int getResultCode()
94      {
95          return resultCode;
96      }
97  
98      public void setResultCode( int resultCode )
99      {
100         this.resultCode = resultCode;
101     }
102 
103     public long getStartTime()
104     {
105         return startTime;
106     }
107 
108     public void setStartTime( long startTime )
109     {
110         this.startTime = startTime;
111     }
112 
113     public long getEndTime()
114     {
115         return endTime;
116     }
117 
118     public void setEndTime( long endTime )
119     {
120         this.endTime = endTime;
121     }
122 
123     private String getStackTrace( Exception e )
124     {
125         ByteArrayOutputStream byteStream = new ByteArrayOutputStream();
126 
127         PrintStream stream = new PrintStream( byteStream );
128 
129         e.printStackTrace( stream );
130 
131         stream.flush();
132 
133         return byteStream.toString();
134     }
135 
136     @Deprecated
137     public StringBuffer getOutputBuffer()
138     {
139         return new StringBuffer( stdOut );
140     }
141 }