/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

package org.apache.jackrabbit.oak.upgrade;

import java.util.Iterator;

import org.apache.jackrabbit.guava.common.collect.Iterators;

public class AsciiArtTicker implements ProgressTicker {
    @Override
    public String tick() {
        return ticks.next();
    }

    private final String[] message = new String[] {

            " __        __",
            " \\ \\      / /",
            "  \\ \\ /\\ / / ",
            "   \\ V  V /  ",
            "    \\_/\\_/   ",
            "             ",
            "  _____ ",
            " | ____|",
            " |  _|  ",
            " | |___ ",
            " |_____|",
            "        ",
            "  _     ",
            " | |    ",
            " | |    ",
            " | |___ ",
            " |_____|",
            "        ",
            "   ____ ",
            "  / ___|",
            " | |    ",
            " | |___ ",
            "  \\____|",
            "        ",
            "   ___  ",
            "  / _ \\ ",
            " | | | |",
            " | |_| |",
            "  \\___/ ",
            "        ",
            "  __  __ ",
            " |  \\/  |",
            " | |\\/| |",
            " | |  | |",
            " |_|  |_|",
            "         ",
            "  _____ ",
            " | ____|",
            " |  _|  ",
            " | |___ ",
            " |_____|",
            "        ",
            "  _____ ",
            " |_   _|",
            "   | |  ",
            "   | |  ",
            "   |_|  ",
            "        ",
            "   ___  ",
            "  / _ \\ ",
            " | | | |",
            " | |_| |",
            "  \\___/ ",
            "        ",
            "   ___  ",
            "  / _ \\ ",
            " | | | |",
            " | |_| |",
            "  \\___/ ",
            "        ",
            "     _    ",
            "    / \\   ",
            "   / _ \\  ",
            "  / ___ \\ ",
            " /_/   \\_\\",
            "          ",
            "  _  __",
            " | |/ /",
            " | ' / ",
            " | . \\ ",
            " |_|\\_\\",
            "             ",
            " =========== ",
            "             ",
    };

    private final Iterator<String> ticks = Iterators.cycle(message);
}
