All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.milyn.visitors.ctrl.Pause Maven / Gradle / Ivy

The newest version!
/*
 * Milyn - Copyright (C) 2006 - 2010
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License (version 2.1) as published by the Free Software
 * Foundation.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *
 * See the GNU Lesser General Public License for more details:
 * http://www.gnu.org/licenses/lgpl.txt
 */
package org.milyn.visitors.ctrl;

import org.milyn.SmooksException;
import org.milyn.cdr.annotation.ConfigParam;
import org.milyn.container.ExecutionContext;
import org.milyn.delivery.annotation.Initialize;
import org.milyn.delivery.dom.DOMVisitAfter;
import org.milyn.delivery.sax.SAXElement;
import org.milyn.delivery.sax.SAXVisitAfter;
import org.milyn.delivery.sax.SAXVisitBefore;
import org.w3c.dom.Element;

import javax.xml.XMLConstants;
import java.io.IOException;

/**
 * Pause Smooks processing for a period.
 *
 * @author [email protected]
 */
public class Pause implements SAXVisitAfter, DOMVisitAfter {

    private long period;

    @ConfigParam(defaultVal = "1000") // Default pause of 1 second
    public Pause setPeriod(long period) {
        this.period = period;
        return this;
    }

    public void visitAfter(SAXElement element, ExecutionContext executionContext) throws SmooksException, IOException {
        pause();
    }

    public void visitAfter(Element element, ExecutionContext executionContext) throws SmooksException {
        pause();
    }

    private void pause() {
        try {
            Thread.sleep(period);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}
 




© 2015 - 2024 Weber Informatics LLC | Privacy Policy