/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.runtime.client.xml; import java.io.InputStream; import org.teiid.designer.xml.IMappingAllNode; import org.teiid.designer.xml.IMappingAttribute; import org.teiid.designer.xml.IMappingChoiceNode; import org.teiid.designer.xml.IMappingCriteriaNode; import org.teiid.designer.xml.IMappingDocument; import org.teiid.designer.xml.IMappingDocumentFactory; import org.teiid.designer.xml.IMappingElement; import org.teiid.designer.xml.IMappingRecursiveElement; import org.teiid.designer.xml.IMappingSequenceNode; import org.teiid.query.mapping.xml.MappingAllNode; import org.teiid.query.mapping.xml.MappingAttribute; import org.teiid.query.mapping.xml.MappingChoiceNode; import org.teiid.query.mapping.xml.MappingCriteriaNode; import org.teiid.query.mapping.xml.MappingDocument; import org.teiid.query.mapping.xml.MappingElement; import org.teiid.query.mapping.xml.MappingLoader; import org.teiid.query.mapping.xml.MappingNodeConstants; import org.teiid.query.mapping.xml.MappingRecursiveElement; import org.teiid.query.mapping.xml.MappingSequenceNode; import org.teiid.query.mapping.xml.Namespace; import org.teiid.designer.runtime.version.spi.ITeiidServerVersion; /** * */ public class MappingDocumentFactory implements IMappingDocumentFactory { private final ITeiidServerVersion teiidVersion; /** * @param teiidVersion */ public MappingDocumentFactory(ITeiidServerVersion teiidVersion) { this.teiidVersion = teiidVersion; } /** * @return the queryFactory */ public ITeiidServerVersion getTeiidVersion() { return this.teiidVersion; } @Override public IMappingDocument loadMappingDocument(InputStream inputStream, String documentName) throws Exception { MappingLoader reader = new MappingLoader(getTeiidVersion()); MappingDocument mappingDoc = null; mappingDoc = reader.loadDocument(inputStream); mappingDoc.setName(documentName); return mappingDoc; } @Override public IMappingDocument createMappingDocument(String encoding, boolean formatted) { return new MappingDocument(getTeiidVersion(), encoding, formatted); } private Namespace getNamespace(final String prefix) { if (prefix != null) return new Namespace(prefix); return MappingNodeConstants.NO_NAMESPACE; } private Namespace getNamespace(final String prefix, final String uri) { return new Namespace(prefix, uri); } @Override public void addNamespace(IMappingElement element, String prefix, String uri) { Namespace namespace = getNamespace(prefix, uri); ((MappingElement) element).addNamespace(namespace); } @Override public IMappingElement createMappingElement(String name, String nsPrefix) { Namespace namespace = getNamespace(nsPrefix); return new MappingElement(getTeiidVersion(), name, namespace); } @Override public IMappingRecursiveElement createMappingRecursiveElement(String name, String nsPrefix, String recursionMappingClass) { Namespace namespace = getNamespace(nsPrefix); return new MappingRecursiveElement(getTeiidVersion(), name, namespace, recursionMappingClass); } @Override public IMappingAttribute createMappingAttribute(String name, String nsPrefix) { Namespace namespace = getNamespace(nsPrefix); return new MappingAttribute(getTeiidVersion(), name, namespace); } @Override public IMappingCriteriaNode createMappingCriteriaNode(String criteria, boolean isDefault) { return new MappingCriteriaNode(getTeiidVersion(), criteria, isDefault); } @Override public IMappingChoiceNode createMappingChoiceNode(boolean exceptionOnDefault) { return new MappingChoiceNode(getTeiidVersion(), exceptionOnDefault); } @Override public IMappingAllNode createMappingAllNode() { return new MappingAllNode(getTeiidVersion()); } @Override public IMappingSequenceNode createMappingSequenceNode() { return new MappingSequenceNode(getTeiidVersion()); } }