view flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/CacheInvalidationService.java @ 2668:53f42adf4505

Modified states and added new state for fixing analysis. flys-artifacts/trunk@4351 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Mon, 07 May 2012 13:27:45 +0000
parents 247f3e98a14b
children 5642a83420f2
line wrap: on
line source
package de.intevation.flys.artifacts.services;

import de.intevation.artifacts.CallMeta;
import de.intevation.artifacts.GlobalContext;

import de.intevation.artifacts.common.utils.XMLUtils;

import de.intevation.artifactdatabase.XMLService;

import de.intevation.flys.artifacts.cache.CacheFactory;

import net.sf.ehcache.Cache;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

public class CacheInvalidationService 
extends      XMLService
{
    @Override
    public Document processXML(
        Document      data,
        GlobalContext globalContext,
        CallMeta      callMeta
    ) {
        Document result = XMLUtils.newDocument();

        Element all = result.createElement("caches");

        NodeList caches = data.getElementsByTagName("cache");

        for (int i = 0, C = caches.getLength(); i < C; ++i) {
            Element c = (Element)caches.item(i);
            String name = c.getAttribute("name");
            Element e = result.createElement("cache");
            e.setAttribute("name", name);
            Cache cache = CacheFactory.getCache(name);
            if (cache != null) {
                cache.removeAll();
                e.setTextContent("All elements removed.");
            }
            else {
                e.setTextContent("Error: Cache not found.");
            }
            all.appendChild(e);
        }

        result.appendChild(all);

        return result;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf-8 :

http://dive4elements.wald.intevation.org