blob: 5ec4850c512e7c2d1e1eb6ce41be37e05c99db92 [file] [log] [blame]
/*
* Copyright (c) 2016 Audi AG
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.eclipse.mdm.mdfsorter.mdf4;
import java.io.IOException;
import java.nio.ByteBuffer;
/**
* <p>
* THE META DATA BLOCK <code>MDBLOCK</code>
* </p>
* The MDBLOCK contains information encoded as XML string. For example this can be comments for the measured data file,
* file history information or the identification of a channel. This information is ruled by the parent block and
* follows specific XML schemas definitions.
*
* @author Christian Rechner, Tobias Leemann
*/
public class MDBLOCK extends MDF4GenBlock {
/** Data section */
// XML string
// UTF-8 encoded, zero terminated, new line indicated by CR and LF.
// CHAR
private String mdData;
/**
* Parse a TXBLOCK from an existing MDFGenBlock
*
* @param parent
* The already existing MDF Generic Block.
*/
public MDBLOCK(MDF4GenBlock parent) {
super(parent.getPos());
setLength(parent.getLength());
setLinkCount(parent.getLinkCount());
setId(parent.getId());
setLinks(parent.getLinks());
parent.setPrec(this);
}
public String getMdData() {
return mdData;
}
private void setMdData(String mdData) {
this.mdData = mdData;
}
@Override
public String toString() {
return "MDBLOCK [mdData=" + mdData + "]";
}
/**
* Reads a MDBLOCK from its content.
*
* @param content The data section of this block
* @throws IOException If an I/O error occurs.
*/
@Override
public void parse(byte[] content) throws IOException {
// ReadXML String
setMdData(MDF4Util.readCharsUTF8(ByteBuffer.wrap(content), content.length));
//TODO: Bytes after zero termination?
}
}