Mercurial > dive4elements > framework
view artifact-database/src/main/java/de/intevation/artifactdatabase/AbstractCallContext.java @ 241:4253995c970e
Fix for flys/issue8 (part 3)
artifacts/trunk@1676 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Wed, 13 Apr 2011 10:57:45 +0000 |
parents | cabe4c02ab64 |
children | a8a06bbe306c |
line wrap: on
line source
/* * Copyright (c) 2010, 2011 by Intevation GmbH * * This program is free software under the LGPL (>=v2.1) * Read the file LGPL.txt coming with the software for details * or visit http://www.gnu.org/licenses/ if it does not exist. */ package de.intevation.artifactdatabase; import java.util.HashMap; import de.intevation.artifacts.ArtifactDatabase; import de.intevation.artifacts.CallContext; import de.intevation.artifacts.CallMeta; /** * Abstract class that implements some basic methods of a CallContext. * * @author <a href="mailto:sascha.teichmann@intevation.de">Sascha L. Teichmann</a> * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a> */ public abstract class AbstractCallContext implements CallContext { /** * The ArtifactDatabase instance. */ protected ArtifactDatabaseImpl database; /** * The action to be performed after the artifacts or collections calls. */ protected int action; /** * The meta information of the concrete call (preferred languages et. al.) */ protected CallMeta callMeta; /** * The global context. */ protected Object context; /** * Map to act like a clipboard when nesting calls like a proxy artifact. */ protected HashMap customValues; /** * The default constructor of this abstract CallContext. * * @param action The action. * @param callMeta The CallMeta object. * @param context The global context. */ public AbstractCallContext( ArtifactDatabaseImpl artifactDatabase, int action, CallMeta callMeta, Object context) { this.database = artifactDatabase; this.action = action; this.callMeta = callMeta; this.context = context; } public abstract void postCall(); public abstract void afterCall(int action); public abstract Long getTimeToLive(); public abstract void afterBackground(int action); public Object globalContext() { return context; } public ArtifactDatabase getDatabase() { return database; } public CallMeta getMeta() { return callMeta; } public Object getContextValue(Object key) { return customValues != null ? customValues.get(key) : null; } public Object putContextValue(Object key, Object value) { if (customValues == null) { customValues = new HashMap(); } return customValues.put(key, value); } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :