001 /*
002 * jDTAUS Core API
003 * Copyright (c) 2005 Christian Schulte
004 *
005 * Christian Schulte, Haldener Strasse 72, 58095 Hagen, Germany
006 * <schulte2005@users.sourceforge.net> (+49 2331 3543887)
007 *
008 * This library is free software; you can redistribute it and/or
009 * modify it under the terms of the GNU Lesser General Public
010 * License as published by the Free Software Foundation; either
011 * version 2.1 of the License, or any later version.
012 *
013 * This library is distributed in the hope that it will be useful,
014 * but WITHOUT ANY WARRANTY; without even the implied warranty of
015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
016 * Lesser General Public License for more details.
017 *
018 * You should have received a copy of the GNU Lesser General Public
019 * License along with this library; if not, write to the Free Software
020 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
021 *
022 */
023 package org.jdtaus.core.container;
024
025 /**
026 * Object management and configuration model.
027 * <p>The object management and configuration model destinguishes between
028 * specifications and implementations defined in modules. Specifications specify
029 * some public programming interface to be implemented by implementations.
030 * Implementations may define configuration properties and may depend on other
031 * implementations. When defining dependencies, properties defined for the
032 * implementation of the dependency may be overwritten by properties defined for
033 * the dependency.</p>
034 *
035 * @author <a href="mailto:schulte2005@users.sourceforge.net">Christian Schulte</a>
036 * @version $Id: Model.java 8044 2009-07-02 01:29:05Z schulte2005 $
037 *
038 * @see ModelFactory
039 */
040 public interface Model
041 {
042 //--Model-------------------------------------------------------------------
043
044 /**
045 * Gets the modules of the model.
046 *
047 * @return the modules of the model.
048 *
049 * @throws ModelError for unrecoverable model errors.
050 */
051 Modules getModules();
052
053 //-------------------------------------------------------------------Model--
054 }