📄 mmiclient.java
字号:
RightsSegment rightsSegment = new RightsSegment();
rightsSegment.setProfileId(new ProfileId("org.omc.dream.profiles.media"));
MMIRightsRequestElement[] mmiRightsRequestElement = new MMIRightsRequestElement[1];
mmiRightsRequestElement[0] = new MMIRightsRequestElement();
mmiRightsRequestElement[0].setReqElemId(new ReqElemId("23"));
ContentId[] contentId = new ContentId[1];
contentId[0] = new ContentId("birds");
mmiRightsRequestElement[0].setContentId(contentId);
VerbElement[] verbElement = new VerbElement[1];
verbElement[0] = new VerbElement();
verbElement[0].setVerbElementId(new VerbElementId("1"));
verbElement[0].setVerb(new Verb("SimplePlay"));
verbElement[0].setCount(new Count("1"));
mmiRightsRequestElement[0].setVerbElement(verbElement);
rightsSegment.setMMIRightsRequestElement(mmiRightsRequestElement);
mmiRequest.setRightsSegment(rightsSegment);
mptm.setMMIDataObject(mmiRequest);
} catch (InvalidMMIObjectException imoe) {
imoe.printStackTrace();
}
return mptm;
}
public MMIPlainTextMessage SimpleRightsRelease2() {
MMIMessageFactory mmf = MMIMessageFactory.PLAINTEXT;
MMIPlainTextMessage mptm = (MMIPlainTextMessage)mmf.createMMIMessage();
mptm.setMMIVersion("1.0");
MMIRequest mmiRequest = new MMIRequest();
try {
mmiRequest.setMMIMessageType("MMIRightsRelease");
IdentitySegment identitySegment = new IdentitySegment(new AuthServiceId("Anakin"), null);
mmiRequest.setIdentitySegment(identitySegment);
DeviceSegment deviceSegment = new DeviceSegment();
DeviceId[] deviceId = new DeviceId[1];
deviceId[0] = new DeviceId("123456abc");
deviceSegment.setDeviceId(deviceId);
mmiRequest.setDeviceSegment(deviceSegment);
RightsSegment rightsSegment = new RightsSegment();
rightsSegment.setProfileId(new ProfileId("org.omc.dream.profiles.media"));
MMIRightsRequestElement[] mmiRightsRequestElement = new MMIRightsRequestElement[1];
mmiRightsRequestElement[0] = new MMIRightsRequestElement();
mmiRightsRequestElement[0].setReqElemId(new ReqElemId("23"));
ContentId[] contentId = new ContentId[1];
contentId[0] = new ContentId("blahblah");
mmiRightsRequestElement[0].setContentId(contentId);
VerbElement[] verbElement = new VerbElement[1];
verbElement[0] = new VerbElement();
verbElement[0].setVerbElementId(new VerbElementId("1"));
verbElement[0].setVerb(new Verb("SimplePlay"));
verbElement[0].setCount(new Count("1"));
mmiRightsRequestElement[0].setVerbElement(verbElement);
rightsSegment.setMMIRightsRequestElement(mmiRightsRequestElement);
mmiRequest.setRightsSegment(rightsSegment);
mptm.setMMIDataObject(mmiRequest);
} catch (InvalidMMIObjectException imoe) {
imoe.printStackTrace();
}
return mptm;
}
public MMIPlainTextMessage SimpleRightsRequest() {
MMIMessageFactory mmf = MMIMessageFactory.PLAINTEXT;
MMIPlainTextMessage mptm = (MMIPlainTextMessage)mmf.createMMIMessage();
mptm.setMMIVersion("1.0");
MMIRequest mmiRequest = new MMIRequest();
try {
mmiRequest.setMMIMessageType("MMIRightsRequest");
IdentitySegment identitySegment = new IdentitySegment(new AuthServiceId("Anakin"), null);
mmiRequest.setIdentitySegment(identitySegment);
DeviceSegment deviceSegment = new DeviceSegment();
DeviceId[] deviceId = new DeviceId[1];
deviceId[0] = new DeviceId("123456abc");
deviceSegment.setDeviceId(deviceId);
mmiRequest.setDeviceSegment(deviceSegment);
RightsSegment rightsSegment = new RightsSegment();
rightsSegment.setProfileId(new ProfileId("org.omc.dream.profiles.media"));
MMIRightsRequestElement[] mmiRightsRequestElement = new MMIRightsRequestElement[1];
mmiRightsRequestElement[0] = new MMIRightsRequestElement();
mmiRightsRequestElement[0].setReqElemId(new ReqElemId("23"));
ContentId[] contentId = new ContentId[1];
contentId[0] = new ContentId("birds");
mmiRightsRequestElement[0].setContentId(contentId);
VerbElement[] verbElement = new VerbElement[1];
verbElement[0] = new VerbElement();
verbElement[0].setVerbElementId(new VerbElementId("1"));
verbElement[0].setVerb(new Verb("SimplePlay"));
verbElement[0].setCount(new Count("1"));
mmiRightsRequestElement[0].setVerbElement(verbElement);
rightsSegment.setMMIRightsRequestElement(mmiRightsRequestElement);
mmiRequest.setRightsSegment(rightsSegment);
mptm.setMMIDataObject(mmiRequest);
} catch (InvalidMMIObjectException imoe) {
imoe.printStackTrace();
}
return mptm;
}
public MMIPlainTextMessage SimpleRightsRequest2() {
MMIMessageFactory mmf = MMIMessageFactory.PLAINTEXT;
MMIPlainTextMessage mptm = (MMIPlainTextMessage)mmf.createMMIMessage();
mptm.setMMIVersion("1.0");
MMIRequest mmiRequest = new MMIRequest();
try {
mmiRequest.setMMIMessageType("MMIRightsRequest");
IdentitySegment identitySegment = new IdentitySegment(new AuthServiceId("Anakin"), null);
mmiRequest.setIdentitySegment(identitySegment);
DeviceSegment deviceSegment = new DeviceSegment();
DeviceId[] deviceId = new DeviceId[1];
deviceId[0] = new DeviceId("123456abc");
deviceSegment.setDeviceId(deviceId);
mmiRequest.setDeviceSegment(deviceSegment);
RightsSegment rightsSegment = new RightsSegment();
rightsSegment.setProfileId(new ProfileId("org.omc.dream.profiles.media"));
MMIRightsRequestElement[] mmiRightsRequestElement = new MMIRightsRequestElement[1];
mmiRightsRequestElement[0] = new MMIRightsRequestElement();
mmiRightsRequestElement[0].setReqElemId(new ReqElemId("23"));
ContentId[] contentId = new ContentId[1];
contentId[0] = new ContentId("blahblah");
mmiRightsRequestElement[0].setContentId(contentId);
VerbElement[] verbElement = new VerbElement[1];
verbElement[0] = new VerbElement();
verbElement[0].setVerbElementId(new VerbElementId("1"));
verbElement[0].setVerb(new Verb("SimplePlay"));
verbElement[0].setCount(new Count("1"));
mmiRightsRequestElement[0].setVerbElement(verbElement);
rightsSegment.setMMIRightsRequestElement(mmiRightsRequestElement);
mmiRequest.setRightsSegment(rightsSegment);
mptm.setMMIDataObject(mmiRequest);
} catch (InvalidMMIObjectException imoe) {
imoe.printStackTrace();
}
return mptm;
}
public MMIPlainTextMessage SimpleResponse() {
MMIMessageFactory mmf = MMIMessageFactory.PLAINTEXT;
MMIPlainTextMessage mptm = (MMIPlainTextMessage)mmf.createMMIMessage();
mptm.setMMIVersion("1.0");
MMIResponse mmiResponse = new MMIResponse();
try {
Status[] status = new Status[1];
status[0] = new Status("RequestOK");
mmiResponse.setStatus(status);
MMIRightsResponseElement[] mmiRightsResponseElement = new MMIRightsResponseElement[1];
mmiRightsResponseElement[0] = new MMIRightsResponseElement();
mmiRightsResponseElement[0].setReqElemId(new ReqElemId("23"));
mmiRightsResponseElement[0].setNotification(new Notification("granted"));
Hint[] hint = new Hint[1];
hint[0] = new Hint();
hint[0].setHintIndexNum(new HintIndexNum("1"));
hint[0].setLabel(new Label("CanDo"));
ContentId[] contentId = new ContentId[3];
contentId[0] = new ContentId("113");
contentId[1] = new ContentId("114");
contentId[2] = new ContentId("115");
VerbElement[] verbElement = new VerbElement[1];
verbElement[0] = new VerbElement();
verbElement[0].setVerbElementId(new VerbElementId("1"));
verbElement[0].setVerb(new Verb("SimplePlay"));
verbElement[0].setCount(new Count("29"));
hint[0].setVerbElement(verbElement);
hint[0].setContentId(contentId);
mmiRightsResponseElement[0].setHint(hint);
mmiRightsResponseElement[0].setKeys(new Keys("OD6Ox9svtSgFJ+iXkZ"));
//mmiRightsResponseElement[0].setRightsErrorStatus();
mmiResponse.setMMIRightsResponseElement(mmiRightsResponseElement);
ResponseId responseId = new ResponseId();
responseId.setResponseId("1003");
mmiResponse.setResponseId(responseId);
RequestHashSegment requestHashSegment = new RequestHashSegment();
requestHashSegment.setHashAlg(new HashAlg("http://www.w3.org/2001/10/xml-exc-c14n#"));
requestHashSegment.setRequestHash(new RequestHash("jAxX0LfgwutvEdJb748IU4L+8obXPXfq TZ"));
mmiResponse.setRequestHashSegment(requestHashSegment);
SignatureSegment signatureSegment = new SignatureSegment();
signatureSegment.setSigAlg(new SigAlg("http://www.w3.org/2001/10/xml-exc-c14n#"));
signatureSegment.setSignature(new Signature("OWqP5Gqm8A1+/2b5gNzF4L4L"));
mmiResponse.setSignatureSegment(signatureSegment);
mptm.setMMIDataObject(mmiResponse);
} catch (InvalidMMIObjectException imoe) {
imoe.printStackTrace();
}
return mptm;
}
/**
*
*
* @poseidon-object-id [Im3611ec07m10a5e3fe01emm6c9d]
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
if (args.length < 1) {
System.out.println("require URL argument");
System.exit(1);
}
MMIClient client = new MMIClient(args[0]);
/* The following two messages are used to create a request and response message
* NOTE: The servlet on the other other side will only read the message, parse it,
* and then send back the same message. This test is only to validate that the parser
* can:
* - parse through a MMI message in plain text and generate MMIObject
* - test if the MMIMessage.print() results in the same message
*/
try {
MMIPlainTextMessage msg = client.sampleMMIMessage( "birds", "SimplePlay", false );
System.out.println("REQUEST message: "+msg.print("&"));
System.out.println("Regurgitated REQUEST message from servlet: "+client.requestRightsByGET(msg).print("\n"));
msg = client.sampleMMIMessage( "birds", "SimplePlay", true );
System.out.println("REQUEST message: "+msg.print("&"));
System.out.println("Regurgitated REQUEST message from servlet: "+client.requestRightsByGET(msg).print("\n"));
msg = client.sampleMMIMessage( "birds", "Record", false );
System.out.println("REQUEST message: "+msg.print("&"));
System.out.println("Regurgitated REQUEST message from servlet: "+client.requestRightsByGET(msg).print("\n"));
msg = client.sampleMMIMessage( "birds", "Record", true );
System.out.println("REQUEST message: "+msg.print("&"));
System.out.println("Regurgitated REQUEST message from servlet: "+client.requestRightsByGET(msg).print("\n"));
msg = client.sampleMMIMessage( "birds", "ForwardPlay", false );
System.out.println("REQUEST message: "+msg.print("&"));
System.out.println("Regurgitated REQUEST message from servlet: "+client.requestRightsByGET(msg).print("\n"));
msg = client.sampleMMIMessage( "birds", "ForwardPlay", true );
System.out.println("REQUEST message: "+msg.print("&"));
System.out.println("Regurgitated REQUEST message from servlet: "+client.requestRightsByGET(msg).print("\n"));
msg = client.sampleMMIMessage( "birds", "ReversePlay", false );
System.out.println("REQUEST message: "+msg.print("&"));
System.out.println("Regurgitated REQUEST message from servlet: "+client.requestRightsByGET(msg).print("\n"));
msg = client.sampleMMIMessage( "birds", "ReversePlay", true );
System.out.println("REQUEST message: "+msg.print("&"));
System.out.println("Regurgitated REQUEST message from servlet: "+client.requestRightsByGET(msg).print("\n"));
msg = client.sampleMMIMessage( "birds", "ClearCopy", false );
System.out.println("REQUEST message: "+msg.print("&"));
System.out.println("Regurgitated REQUEST message from servlet: "+client.requestRightsByGET(msg).print("\n"));
msg = client.sampleMMIMessage( "birds", "ClearCopy", true );
System.out.println("REQUEST message: "+msg.print("&"));
System.out.println("Regurgitated REQUEST message from servlet: "+client.requestRightsByGET(msg).print("\n"));
msg = client.sampleMMIMessage( "birds", "Adapt", false );
System.out.println("REQUEST message: "+msg.print("&"));
System.out.println("Regurgitated REQUEST message from servlet: "+client.requestRightsByGET(msg).print("\n"));
msg = client.sampleMMIMessage( "birds", "Adapt", true );
System.out.println("REQUEST message: "+msg.print("&"));
System.out.println("Regurgitated REQUEST message from servlet: "+client.requestRightsByGET(msg).print("\n"));
} catch (MMIClientException mce) {
mce.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -