blob: 030150955146f8d2575ebf4763f189b5582d56e1 [file] [log] [blame]
/*******************************************************************************
* Copyright (C) 2021 the Eclipse BaSyx Authors
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
******************************************************************************/
package org.eclipse.basyx.submodel.factory.xml.converters.submodelelement.dataelement;
import java.util.Map;
import org.eclipse.basyx.submodel.factory.xml.XMLHelper;
import org.eclipse.basyx.submodel.factory.xml.converters.submodelelement.SubmodelElementXMLConverter;
import org.eclipse.basyx.submodel.metamodel.api.submodelelement.dataelement.IFile;
import org.eclipse.basyx.submodel.metamodel.map.submodelelement.dataelement.File;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
/**
* Parses &lt;aas:file&gt; and builds the File object from it <br>
* Builds &lt;aas:file&gt; form a given File object
*
* @author conradi
*
*/
public class FileXMLConverter extends SubmodelElementXMLConverter{
public static final String FILE = "aas:file";
/**
* Parses a Map containing the content of XML tag &lt;aas:file&gt;
*
* @param xmlObject the Map with the content of XML tag &lt;aas:file&gt;
* @return the parsed File
*/
public static File parseFile(Map<String, Object> xmlObject) {
String mimeType = XMLHelper.getString(xmlObject.get(MIME_TYPE));
String value = XMLHelper.getString(xmlObject.get(VALUE));
File file = new File(value, mimeType);
populateSubmodelElement(xmlObject, file);
return file;
}
/**
* Builds the &lt;aas:file&gt; XML tag for a File
*
* @param document the XML document
* @param file the IFile to build the XML for
* @return the &lt;aas:file&gt; XML tag for the given File
*/
public static Element buildFile(Document document, IFile file) {
Element fileRoot = document.createElement(FILE);
populateSubmodelElement(document, fileRoot, file);
String mimeType = file.getMimeType();
String value = file.getValue();
if(mimeType != null) {
Element mimeTypeRoot = document.createElement(MIME_TYPE);
mimeTypeRoot.appendChild(document.createTextNode(mimeType));
fileRoot.appendChild(mimeTypeRoot);
}
if(value != null) {
Element valueRoot = document.createElement(VALUE);
valueRoot.appendChild(document.createTextNode(value));
fileRoot.appendChild(valueRoot);
}
return fileRoot;
}
}