/*
Copyright (C) 2009 by Claas Wilke (claaswilke@gmx.net)
This file is part of the Model Bus Plug-in of Dresden OCL2 for Eclipse.
Dresden OCL2 for Eclipse 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.
Dresden OCL2 for Eclipse 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 copy of the GNU Lesser General Public License along
with Dresden OCL2 for Eclipse. If not, see <http://www.gnu.org/licenses/>.
*/
package org.dresdenocl.modelinstance;
/**
* <p>
* An interface for the registry which contains all registered file formats for
* {@link IModelInstance}s.
* </p>
*
* @author Claas Wilke
*/
public interface IModelInstanceTypeRegistry {
/**
* <p>
* Adds a {@link IModelInstanceType} to this
* {@link IModelInstanceTypeRegistry}.
* </p>
*
* @param fileFormat
* The {@link IModelInstanceTypeRegistry} which shall be added.
*/
void addModelInstanceType(IModelInstanceType miType);
/**
* <p>
* Disposes the {@link IModelInstanceTypeRegistry}.
* </p>
*/
void dispose();
/**
* <p>
* Returns the {@link IModelInstanceType} with the given id or
* <code>null</code> if no {@link IModelInstanceTypeRegistry} with that id is
* registered.
* </p>
*
* @param id
* An identifier for a {@link IModelInstanceTypeRegistry}.
*
* @return An IModelInstanceFileFormat instance or <code>null</code>.
*/
IModelInstanceType getModelInstanceType(String id);
/**
* <p>
* Returns all {@link IModelInstanceType} registered with this
* {@link IModelInstanceTypeRegistry}.
* </p>
*
* @return An array of {@link IModelInstanceTypeRegistry} instances.
*/
IModelInstanceType[] getModelInstanceTypes();
}