/* * Copyright (c) 2013-2015 Josef Hardi <josef.hardi@gmail.com> * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.obidea.semantika.mapping; import com.obidea.semantika.io.IDocumentSource; import com.obidea.semantika.knowledgebase.IPrefixManager; import com.obidea.semantika.mapping.exception.MappingCreationException; import com.obidea.semantika.mapping.parser.MappingParserConfiguration; public interface IMappingFactory { /** * Sets the meta-information about the data model and domain model. These * objects are required to to construct and validate the mapping assertions. * * @param metaModel * The meta-model for constructing the mapping. Cannot be null. */ void setMetaModel(IMetaModel metaModel); /** * Loads and creates a mapping set. * * @param inputDocument * The document source that contains the mapping assertions. * @param mediator * A pointer to the loader to notify the creation of a mapping set. * @param configuration * A configuration object which can be used to pass various options * to the parser. * @return The newly loaded and created mapping set * @throws MappingCreationException * if the mapping set could not be created */ IMappingSet loadMappingSet(IDocumentSource inputDocument, IMappingLoadHandler mediator, MappingParserConfiguration configuration) throws MappingCreationException; /** * Determines if the factory can load the mappings from a specified input * source. * * @param inputDocument * The input source from which the mapping assertions can be found. * @return Returns <code>true</code> if the factory can load from the * specified input source. */ boolean canLoad(IDocumentSource inputDocument); public interface IMappingLoadHandler { void mappingLoaded(IMappingSet mappingSet, IPrefixManager prefixManager); } }