/* * Carrot2 project. * * Copyright (C) 2002-2016, Dawid Weiss, Stanisław Osiński. * All rights reserved. * * Refer to the full license file "carrot2.LICENSE" * in the root folder of the repository checkout or at: * http://www.carrot2.org/carrot2.LICENSE */ package org.carrot2.core; import java.util.concurrent.ExecutorService; /** * {@link IControllerContextListener} that shuts down a given {@link ExecutorService} * reference in the {@link IControllerContext}. */ class ExecutorServiceShutdownListener implements IControllerContextListener { private final String contextKey; public ExecutorServiceShutdownListener(String contextKey) { this.contextKey = contextKey; } public void beforeDisposal(IControllerContext context) { ExecutorService service = ((ExecutorService) context.getAttribute(contextKey)); if (service != null && !service.isShutdown()) { service.shutdown(); } } }