    001/*
    002 * Licensed to the Apache Software Foundation (ASF) under one or more
    003 * contributor license agreements.  See the NOTICE file distributed with
    004 * this work for additional information regarding copyright ownership.
    005 * The ASF licenses this file to You under the Apache License, Version 2.0
    006 * (the "License"); you may not use this file except in compliance with
    007 * the License.  You may obtain a copy of the License at
    008 *
    009 *      http://www.apache.org/licenses/LICENSE-2.0
    010 *
    011 * Unless required by applicable law or agreed to in writing, software
    012 * distributed under the License is distributed on an "AS IS" BASIS,
    013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    014 * See the License for the specific language governing permissions and
    015 * limitations under the License.
    016 */
    017package org.apache.commons.io.input;
    018
    019/**
    020 * Listener for events from a {@link Tailer}.
    021 *
    022 * @since 2.0
    023 */
    024public interface TailerListener {
    025
    026    /**
    027     * The tailer will call this method during construction,
    028     * giving the listener a method of stopping the tailer.
    029     * @param tailer the tailer.
    030     */
    031    void init(Tailer tailer);
    032
    033    /**
    034     * This method is called if the tailed file is not found.
    035     * <p>
    036     * <b>Note:</b> this is called from the tailer thread.
    037     */
    038    void fileNotFound();
    039
    040    /**
    041     * Called if a file rotation is detected.
    042     *
    043     * This method is called before the file is reopened, and fileNotFound may
    044     * be called if the new file has not yet been created.
    045     * <p>
    046     * <b>Note:</b> this is called from the tailer thread.
    047     */
    048    void fileRotated();
    049
    050    /**
    051     * Handles a line from a Tailer.
    052     * <p>
    053     * <b>Note:</b> this is called from the tailer thread.
    054     * @param line the line.
    055     */
    056    void handle(String line);
    057
    058    /**
    059     * Handles an Exception .
    060     * <p>
    061     * <b>Note:</b> this is called from the tailer thread.
    062     * @param ex the exception.
    063     */
    064    void handle(Exception ex);
    065
    066}