/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.communication.model.impl;
import java.io.Serializable;
import java.util.Map;
import de.rcenvironment.core.communication.common.SerializationException;
import de.rcenvironment.core.communication.model.NetworkRequest;
import de.rcenvironment.core.communication.model.internal.AbstractNetworkMessage;
import de.rcenvironment.toolkit.utils.common.IdGenerator;
/**
* Implementation of a transport-independent network request.
*
* @author Robert Mischke
*/
public class NetworkRequestImpl extends AbstractNetworkMessage implements NetworkRequest, Serializable {
// TODO made this class Serializable for quick prototyping; rework so this is not used anymore
private static final long serialVersionUID = 1608492229624555125L;
public NetworkRequestImpl(byte[] contentBytes, Map<String, String> metaData) {
this(contentBytes, metaData, generateMessageId());
}
// TODO comment: parameters are wrapped, not cloned
public NetworkRequestImpl(Serializable body, Map<String, String> metaData) throws SerializationException {
this(body, metaData, generateMessageId());
}
// TODO comment: parameters are wrapped, not cloned
public NetworkRequestImpl(byte[] contentBytes, Map<String, String> metaData, String requestId) {
super(metaData);
setContentBytes(contentBytes);
setRequestId(requestId);
}
// TODO comment: parameters are wrapped, not cloned
public NetworkRequestImpl(Serializable body, Map<String, String> metaData, String requestId) throws SerializationException {
super(metaData);
setContent(body);
setRequestId(requestId);
}
private static String generateMessageId() {
return IdGenerator.fastRandomHexString(REQUEST_ID_LENGTH);
}
}