/*
* Rapid Beans Framework: ContainerImpl.java
*
* Copyright (C) 2009 Martin Bluemel
*
* Creation Date: 01/31/2006
*
* This program is free software; you can redistribute it and/or modify it under the terms of the
* GNU Lesser General Public License as published by the Free Software Foundation;
* either version 3 of the License, or (at your option) any later version.
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU Lesser General Public License for more details.
* You should have received a copies of the GNU Lesser General Public License and the
* GNU General Public License along with this program; if not, see <http://www.gnu.org/licenses/>.
*/
package org.rapidbeans.core.basic;
/**
* An abstract implementation to hide special methods from the Container
* interface.
*
* @author Martin Bluemel
*/
public abstract class ContainerImpl implements Container {
/**
* insert (create) a new bean in the DB.
*
* @param bean
* the bean to insert
* @param implicitly
* special for documents. Usually you do not explicitly insert
* beans into a document. Instead insert them implicitly by
* adding them to a parent bean. If you anyway try to insert
* explicitly the document tries to find an appropriate location
* according to the following strategy. <li>
* Find all composition collection properties that have the type of the bean to insert as target type.</li><li>
* If there is exactly one add the bean there. Otherwise throw an appropriate exception.</li>
*/
public abstract void insert(final RapidBean bean, final boolean implicitly);
}