view flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/CacheInvalidationService.java @ 4496:d8992459b408

Add method to return the facets of an artifact This methos should be used to get the facets of an artifact instead of accessing the facets member variable directly.
author Björn Ricks <bjoern.ricks@intevation.de>
date Wed, 14 Nov 2012 11:11:04 +0100
parents 5642a83420f2
children
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