/* * Copyright (c) 2006 Stiftung Deutsches Elektronen-Synchroton, * Member of the Helmholtz Association, (DESY), HAMBURG, GERMANY. * * THIS SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "../AS IS" BASIS. * WITHOUT WARRANTY OF ANY KIND, EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED * TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR PARTICULAR PURPOSE AND * NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE * FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * THE USE OR OTHER DEALINGS IN THE SOFTWARE. SHOULD THE SOFTWARE PROVE DEFECTIVE * IN ANY RESPECT, THE USER ASSUMES THE COST OF ANY NECESSARY SERVICING, REPAIR OR * CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. * NO USE OF ANY SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER. * DESY HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, * OR MODIFICATIONS. * THE FULL LICENSE SPECIFYING FOR THE SOFTWARE THE REDISTRIBUTION, MODIFICATION, * USAGE AND OTHER RIGHTS AND OBLIGATIONS IS INCLUDED WITH THE DISTRIBUTION OF THIS * PROJECT IN THE FILE LICENSE.HTML. IF THE LICENSE IS NOT INCLUDED YOU MAY FIND A COPY * AT HTTP://WWW.DESY.DE/LEGAL/LICENSE.HTM */ package org.csstudio.dal.context; /** * <code>Identifiable</code> interface represents the basic * interface which all objects interacting with the DAL system * should implement. It allows the system to determine the exact name * of the interacting component. It enables easier integration with services, such as * logging, reporting etc. * * @author Gasper Tkacik */ public interface Identifiable { /** * The constant defining the name of <code>debug</code> property. * Useful when the value of the property is stored in a map of some sort, * such as a configuration or the like. */ public static final String DEBUG = "debug"; /** * Returns an object instance implementing the * <code>Identifier</code> interface. This object should be constrcuted as * described in <code>Identifier</code> documentation. The implementation * is allowed (and encouraged) to return the same instance to conserve * memory allocation costs. * * @return an identifier for <code>this</code> */ Identifier getIdentifier(); /** * The <code>debug</code> policy of this identifier. If this flag * is enabled and if loggin service enoconters this identifeable, than * service should generate message logs with FINE, FINER and FINEST * levels. * * @return debug policy */ boolean isDebug(); } /* __oOo__ */