1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements.  See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License.  You may obtain a copy of the License at
8 *
9 *     http://www.apache.org/licenses/LICENSE-2.0
10 *
11 *  Unless required by applicable law or agreed to in writing, software
12 *  distributed under the License is distributed on an "AS IS" BASIS,
13 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 *
15 *  See the License for the specific language governing permissions and
16 *  limitations under the License.
17 */
18
19/**
20 * @author Vitaly A. Provodin
21 */
22
23/**
24 * Created on 29.01.2005
25 */
26package org.apache.harmony.jpda.tests.framework;
27
28/**
29 * This class defines minimal set of methods logging test execution.
30 */
31public abstract class LogWriter {
32
33    protected String prefix;
34
35    /**
36     * Creates instance of the class with given prefix for log messages.
37     *
38     * @param prefix - specifies a prefix string
39     */
40    public LogWriter(String prefix) {
41        super();
42        setPrefix(prefix);
43    }
44
45    /**
46     * Returns prefix for messages.
47     *
48     * @return prefix for messages
49     */
50    public synchronized String getPrefix() {
51        return prefix;
52    }
53
54    /**
55     * Sets prefix for messages.
56     *
57     * @param prefix to be set
58     */
59    public synchronized void setPrefix(String prefix) {
60        this.prefix = prefix;
61    }
62
63    /**
64     * Prints message to this log.
65     *
66     * @param message message to be printed
67     */
68    public abstract void printError(String message);
69
70    /**
71     * Prints exception info to this log with explaining message.
72     *
73     * @param message message to be printed
74     * @param throwable exception to be printed
75     */
76    public abstract void printError(String message, Throwable throwable);
77
78    /**
79     * Prints exception info to this log with explaining message.
80     *
81     * @param throwable exception to be printed
82     */
83    public abstract void printError(Throwable throwable);
84
85    /**
86     * Prints string to this log w/o line feed.
87     *
88     * @param message message to be printed
89     */
90    public abstract void print(String message);
91
92    /**
93     * Prints a string to this log with line feed.
94     *
95     * @param message message to be printed
96     */
97    public abstract void println(String message);
98}
99