/**
*
*/
package org.openntf.domino.schema;
import java.util.Map;
import org.openntf.domino.Database;
import org.openntf.domino.Document;
import org.openntf.domino.schema.impl.DocumentDefinition;
import org.openntf.domino.schema.impl.ItemDefinition;
/**
* @author Nathan T. Freeman
*
*/
public interface IDatabaseSchema {
public Map<String, DocumentDefinition> getDocumentDefinitions();
public Map<String, ItemDefinition> getItemDefinitions();
public IItemDefinition createItemDefinition(String itemKey, Class<?> type);
public Map<Class<? extends IDominoType>, IDominoType> getTypeDefinitions();
public IDominoType getTypeDefinition(final Class<? extends IDominoType> type);
public Document createDocument(final Database db, final String doctype);
public boolean validateDocument(final Document doc);
}