package com.netifera.platform.net.http.web.model;
import com.netifera.platform.api.model.AbstractEntity;
import com.netifera.platform.api.model.IEntity;
import com.netifera.platform.api.model.IEntityReference;
import com.netifera.platform.api.model.IWorkspace;
import com.netifera.platform.net.model.ClientServiceConnectionEntity;
public class HTTPRequestEntity extends AbstractEntity {
private static final long serialVersionUID = -6097777228498470391L;
final public static String ENTITY_TYPE = "http.request";
private IEntityReference connection;
private String requestLine;
// private Map<String,String> header;
private IEntityReference response;
public HTTPRequestEntity(IWorkspace workspace, ClientServiceConnectionEntity connection, String requestLine) {
super(ENTITY_TYPE, workspace, connection.getRealmId());
this.connection = connection.createReference();
this.requestLine = requestLine;
}
HTTPRequestEntity() {}
public ClientServiceConnectionEntity getConnection() {
return (ClientServiceConnectionEntity) referenceToEntity(connection);
}
public String getRequestLine() {
return requestLine;
}
public String getMethod() {
return getRequestLine().split(" ")[0];
}
public String getURL() {
return getRequestLine().split(" ")[1];
}
public void setResponse(HTTPResponseEntity response) {
this.response = response.createReference();
}
public HTTPResponseEntity getResponse() {
return (HTTPResponseEntity) referenceToEntity(response);
}
@Override
protected void synchronizeEntity(AbstractEntity masterEntity) {
requestLine = ((HTTPRequestEntity)masterEntity).requestLine;
connection = ((HTTPRequestEntity)masterEntity).connection;
response = ((HTTPRequestEntity)masterEntity).response;
}
@Override
protected IEntity cloneEntity() {
HTTPRequestEntity clone = new HTTPRequestEntity(getWorkspace(),getConnection(),requestLine);
clone.response = response;
return clone;
}
}