Mercurial > hg4j
comparison 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 |
comparison
equal
deleted
inserted
replaced
454:36fd1fd06492 | 456:909306e412e2 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2011 TMate Software Ltd | 2 * Copyright (c) 2011-2012 TMate Software Ltd |
3 * | 3 * |
4 * This program is free software; you can redistribute it and/or modify | 4 * This program is free software; you can redistribute it and/or modify |
5 * it under the terms of the GNU General Public License as published by | 5 * it under the terms of the GNU General Public License as published by |
6 * the Free Software Foundation; version 2 of the License. | 6 * the Free Software Foundation; version 2 of the License. |
7 * | 7 * |
14 * the terms of a license other than GNU General Public License | 14 * the terms of a license other than GNU General Public License |
15 * contact TMate Software at support@hg4j.com | 15 * contact TMate Software at support@hg4j.com |
16 */ | 16 */ |
17 package org.tmatesoft.hg.core; | 17 package org.tmatesoft.hg.core; |
18 | 18 |
19 import org.tmatesoft.hg.internal.Experimental; | |
20 import org.tmatesoft.hg.util.LogFacility; | 19 import org.tmatesoft.hg.util.LogFacility; |
21 | 20 |
22 /** | 21 /** |
23 * WORK IN PROGRESS | 22 * Access to objects that might need to be shared between various distinct operations ran during the same working session |
23 * (i.e. caches, log, etc.). It's unspecified whether session context is per repository or can span multiple repositories | |
24 * | 24 * |
25 * Access to objects that might need to be shared between various distinct operations ran during the same working session | 25 * <p>Note, API is likely to be extended in future versions, adding more object to share. |
26 * (i.e. caches, log, etc.). It's unspecified whether session context is per repository or can span multiple repositories | |
27 * | 26 * |
28 * @author Artem Tikhomirov | 27 * @author Artem Tikhomirov |
29 * @author TMate Software Ltd. | 28 * @author TMate Software Ltd. |
30 */ | 29 */ |
31 @Experimental(reason="Work in progress") | 30 public abstract class SessionContext { |
32 public interface SessionContext { | 31 // abstract class to facilitate adding more functionality without API break |
33 LogFacility getLog(); | |
34 | 32 |
35 /** | 33 /** |
36 * LIKELY TO CHANGE TO STANDALONE CONFIGURATION OBJECT | 34 * Access wrapper for a system log facility. |
35 * @return facility to direct dumps to, never <code>null</code> | |
37 */ | 36 */ |
38 Object getProperty(String name, Object defaultValue); | 37 public abstract LogFacility getLog(); |
38 | |
39 /** | |
40 * Access configuration parameters of the session. | |
41 * @param name name of the session configuration parameter | |
42 * @param defaultValue value to return if parameter is not configured | |
43 * @return value of the session parameter, defaultValue if none found | |
44 */ | |
45 public abstract Object getConfigurationProperty(String name, Object defaultValue); | |
46 // perhaps, later may add Configuration object, with PropertyMarshal's helpers | |
47 // e.g. when there's standalone Caches and WritableSessionProperties objects | |
39 } | 48 } |