package com.icbms.appserver.dao.model.onem2m;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import com.icbms.appserver.http.Request;
import com.icbms.appserver.util.Util;
import com.icbms.appserver.util.xml.XMLBuilder2;
/**
* Data class for oneM2M contentInstance resource.
*/
public class ContentInstance extends Resource implements Request {
public String resourceType = null;
public String resourceID = null;
public String parentID = null;
public String creationTime = null;
public String lastModifiedTime = null;
public String expirationTime = null;
public String labels = null;
public String stateTag = null;
public String contentInfo = null;
public String contentSize = null;
public String content = null;
public String linkType = null;
public String containerName = null;
public String appName = null;
public String appId = null;
public String requestId;
public Map<String, String> reqHeader = null;
public ContentInstance() {
requestId = Util.getRequestIdentifier();
}
@Override
public Map<String, String> makeHeader() {
reqHeader = new HashMap<>();
requestId = Util.getRequestIdentifier();
reqHeader.put(OneM2MTypes.HeaderAttr.X_M2M_RI, "" + requestId);
reqHeader.put(OneM2MTypes.HeaderAttr.X_M2M_ORIGIN, "emul");
// reqHeader.put(OneM2MTypes.HeaderAttr.X_M2M_ORIGIN, getOrigin());
reqHeader.put(OneM2MTypes.HeaderAttr.CONTENT_TYPE,
// OneM2MTypes.HeaderAttr.CONTENT_TYPE_JSON_VALUE + OneM2MTypes.ResourceType.CONTENT_INSTANCE);
OneM2MTypes.HeaderAttr.CONTENT_TYPE_XML_VALUE + OneM2MTypes.ResourceType.CONTENT_INSTANCE);
return reqHeader;
}
@Override
public String makeBody() {
XMLBuilder2 builder2 =
XMLBuilder2.create("m2m:cin").ns("xmlns:m2m", "http://www.onem2m.org/xml/protocols");
if(contentInfo != null) {
builder2.e("cnf")
.t(contentInfo)
.up();
}
if (labels != null) {
builder2.e("lbl")
.t(labels)
.up();
}
builder2.e("con")
.t(content)
.up();
Properties outputProperties = new Properties();
outputProperties.put(javax.xml.transform.OutputKeys.ENCODING, "utf-8");
outputProperties.put(javax.xml.transform.OutputKeys.METHOD, "xml");
outputProperties.put(javax.xml.transform.OutputKeys.INDENT, "yes");
outputProperties.put("{http://xml.apache.org/xslt}indent-amount", "2");
outputProperties.put(javax.xml.transform.OutputKeys.OMIT_XML_DECLARATION, "yes");
String body = builder2.asString(outputProperties);
return body;
}
@Override
public String toString() {
StringBuffer result = new StringBuffer();
result.append(super.toString());
if(resourceType != null) result.append("resourceType : " + resourceType + "\n");
if(resourceID != null) result.append("resourceID : " + resourceID + "\n");
if(parentID != null) result.append("parentID : " + parentID + "\n");
if(creationTime != null) result.append("creationTime : " + creationTime + "\n");
if(lastModifiedTime != null) result.append("lastModifiedTime : " + lastModifiedTime+ "\n");
if(expirationTime != null) result.append("expirationTime : " + expirationTime + "\n");
if(labels != null) result.append("labels : " + labels + "\n");
if(stateTag != null) result.append("stateTag : " + stateTag + "\n");
if(contentInfo != null) result.append("contentInfo : " + contentInfo + "\n");
if(contentSize != null) result.append("contentSize : " + contentSize + "\n");
if(content != null) result.append("content : " + content + "\n");
if(linkType != null) result.append("linkType : " + linkType + "\n");
if(containerName != null) result.append("containerName : " + containerName + "\n");
if(appName != null) result.append("appName : " + appName + "\n");
if(appId != null) result.append("appId : " + appId + "\n");
result.append(getRscTypeOfReq());
result.append("\n\n");
return result.toString();
}
@Override
public String getName() {
return containerName;
}
@Override
public String getID() {
return resourceID;
}
@Override
public String getParentID() {
return parentID;
}
@Override
public String getRequestIdentifier() {
return "" + requestId;
}
@Override
public void setParentID(String parentId) {
this.parentID = parentId;
}
@Override
public String getRequestType() {
// TODO Auto-generated method stub
return null;
}
@Override
public String getRscTypeOfReq() {
return OneM2MTypes.ResourceType.CONTENT_INSTANCE;
}
@Override
public String getStructuredPath() {
return getParentPath();
}
@Override
public String getUnstructuredPath() {
// TODO Auto-generated method stub
return null;
}
}