Mercurial > jhg
diff src/org/tmatesoft/hg/core/SessionContext.java @ 456:909306e412e2
Refactor LogFacility and SessionContext, better API for both
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Mon, 18 Jun 2012 16:54:00 +0200 |
parents | 3cfa4d908fc9 |
children | b3c16d1aede0 |
line wrap: on
line diff
--- a/src/org/tmatesoft/hg/core/SessionContext.java Wed Jun 13 21:07:39 2012 +0200 +++ b/src/org/tmatesoft/hg/core/SessionContext.java Mon Jun 18 16:54:00 2012 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011 TMate Software Ltd + * Copyright (c) 2011-2012 TMate Software Ltd * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -16,24 +16,33 @@ */ package org.tmatesoft.hg.core; -import org.tmatesoft.hg.internal.Experimental; import org.tmatesoft.hg.util.LogFacility; /** - * WORK IN PROGRESS + * Access to objects that might need to be shared between various distinct operations ran during the same working session + * (i.e. caches, log, etc.). It's unspecified whether session context is per repository or can span multiple repositories * - * Access to objects that might need to be shared between various distinct operations ran during the same working session - * (i.e. caches, log, etc.). It's unspecified whether session context is per repository or can span multiple repositories + * <p>Note, API is likely to be extended in future versions, adding more object to share. * * @author Artem Tikhomirov * @author TMate Software Ltd. */ -@Experimental(reason="Work in progress") -public interface SessionContext { - LogFacility getLog(); +public abstract class SessionContext { + // abstract class to facilitate adding more functionality without API break /** - * LIKELY TO CHANGE TO STANDALONE CONFIGURATION OBJECT + * Access wrapper for a system log facility. + * @return facility to direct dumps to, never <code>null</code> */ - Object getProperty(String name, Object defaultValue); + public abstract LogFacility getLog(); + + /** + * Access configuration parameters of the session. + * @param name name of the session configuration parameter + * @param defaultValue value to return if parameter is not configured + * @return value of the session parameter, defaultValue if none found + */ + public abstract Object getConfigurationProperty(String name, Object defaultValue); + // perhaps, later may add Configuration object, with PropertyMarshal's helpers + // e.g. when there's standalone Caches and WritableSessionProperties objects }