| | |
| | | package com.qcloud.cmq; |
| | | |
| | | import java.util.TreeMap; |
| | | import java.util.Vector; |
| | | |
| | | import com.qcloud.cmq.Json.JSONArray; |
| | | import com.qcloud.cmq.Json.JSONObject; |
| | | |
| | | /** |
| | | * TODO subscription class. |
| | | * |
| | | * @author York. |
| | | * Created 2016年9月27日. |
| | | */ |
| | | public class Subscription { |
| | | protected String topicName; |
| | | protected String subscriptionName; |
| | | protected CMQClient client; |
| | | /** |
| | | * TODO construct . |
| | | * |
| | | * @param topicName |
| | | * @param subscriptionName |
| | | * @param client |
| | | */ |
| | | Subscription(final String topicName , final String subscriptionName,CMQClient client) |
| | | { |
| | | this.topicName = topicName; |
| | | this.subscriptionName = subscriptionName; |
| | | this.client = client; |
| | | } |
| | | public void ClearFilterTags() throws Exception |
| | | { |
| | | TreeMap<String, String> param = new TreeMap<String, String>(); |
| | | |
| | | param.put("topicName",this.topicName); |
| | | param.put("subscriptionName", this.subscriptionName); |
| | | String result = this.client.call("ClearSUbscriptionFIlterTags",param); |
| | | |
| | | JSONObject jsonObj = new JSONObject(result); |
| | | int code = jsonObj.getInt("code"); |
| | | if(code != 0) |
| | | throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId")); |
| | | |
| | | } |
| | | /** |
| | | * TODO set subscription attributes. |
| | | * |
| | | * @param meta SubscriptionMeata object |
| | | * @throws Exception |
| | | */ |
| | | public void SetSubscriptionAttributes(SubscriptionMeta meta) throws Exception |
| | | { |
| | | TreeMap<String, String> param = new TreeMap<String, String>(); |
| | | |
| | | param.put("topicName",this.topicName); |
| | | param.put("subscriptionName", this.subscriptionName); |
| | | if( !meta.NotifyStrategy.equals("")) |
| | | param.put("notifyStrategy",meta.NotifyStrategy); |
| | | if( !meta.NotifyContentFormat.equals("")) |
| | | param.put("notifyContentFormat", meta.NotifyContentFormat); |
| | | if( meta.FilterTag != null ) |
| | | { |
| | | int n = 1 ; |
| | | for(String flag : meta.FilterTag) |
| | | { |
| | | param.put("filterTag."+Integer.toString(n), flag); |
| | | ++n; |
| | | } |
| | | } |
| | | if( meta.bindingKey != null ) |
| | | { |
| | | int n = 1 ; |
| | | for(String flag : meta.bindingKey) |
| | | { |
| | | param.put("bindingKey."+Integer.toString(n), flag); |
| | | ++n; |
| | | } |
| | | } |
| | | |
| | | String result = this.client.call("SetSubscriptionAttributes", param); |
| | | |
| | | JSONObject jsonObj = new JSONObject(result); |
| | | int code = jsonObj.getInt("code"); |
| | | if(code != 0) |
| | | throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId")); |
| | | } |
| | | |
| | | /** |
| | | * TODO get subscription attributes. |
| | | * |
| | | * @return subscription meta object |
| | | * @throws Exception |
| | | */ |
| | | public SubscriptionMeta getSubscriptionAttributes() throws Exception |
| | | { |
| | | TreeMap<String, String> param = new TreeMap<String, String>(); |
| | | |
| | | param.put("topicName",this.topicName); |
| | | param.put("subscriptionName", this.subscriptionName); |
| | | |
| | | String result = this.client.call("GetSubscriptionAttributes", param); |
| | | |
| | | JSONObject jsonObj = new JSONObject(result); |
| | | int code = jsonObj.getInt("code"); |
| | | if(code != 0) |
| | | throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId")); |
| | | |
| | | SubscriptionMeta meta = new SubscriptionMeta(); |
| | | meta.FilterTag = new Vector<String>(); |
| | | if(jsonObj.has("endpoint")) |
| | | meta.Endpoint = jsonObj.getString("endpoint"); |
| | | if(jsonObj.has("notifyStrategy")) |
| | | meta.NotifyStrategy = jsonObj.getString("notifyStrategy"); |
| | | if(jsonObj.has("notifyContTentFormat")) |
| | | meta.NotifyContentFormat = jsonObj.getString("notifyContTentFormat"); |
| | | if(jsonObj.has("protocol")) |
| | | meta.Protocal = jsonObj.getString("protocol"); |
| | | if(jsonObj.has("createTime")) |
| | | meta.CreateTime = jsonObj.getInt("createTime"); |
| | | if(jsonObj.has("lastModifyTime")) |
| | | meta.LastModifyTime = jsonObj.getInt("lastModifyTime"); |
| | | if(jsonObj.has("msgCount")) |
| | | meta.msgCount = jsonObj.getInt("msgCount"); |
| | | if(jsonObj.has("filterTag")) |
| | | { |
| | | JSONArray jsonArray = jsonObj.getJSONArray("filterTag"); |
| | | for(int i=0;i<jsonArray.length();i++) |
| | | { |
| | | JSONObject obj = (JSONObject)jsonArray.get(i); |
| | | meta.FilterTag.add(obj.toString()); |
| | | } |
| | | } |
| | | if(jsonObj.has("bindingKey")) |
| | | { |
| | | JSONArray jsonArray = jsonObj.getJSONArray("bindingKey"); |
| | | for(int i=0;i<jsonArray.length();i++) |
| | | { |
| | | JSONObject obj = (JSONObject)jsonArray.get(i); |
| | | meta.bindingKey.add(obj.toString()); |
| | | } |
| | | } |
| | | |
| | | return meta; |
| | | } |
| | | |
| | | } |
| | | package com.qcloud.cmq;
|
| | |
|
| | | import java.util.TreeMap;
|
| | | import java.util.Vector;
|
| | |
|
| | | import com.qcloud.cmq.Json.JSONArray;
|
| | | import com.qcloud.cmq.Json.JSONObject;
|
| | |
|
| | | /**
|
| | | * TODO subscription class.
|
| | | *
|
| | | * @author York.
|
| | | * Created 2016年9月27日.
|
| | | */
|
| | | public class Subscription {
|
| | | protected String topicName;
|
| | | protected String subscriptionName;
|
| | | protected CMQClient client;
|
| | | /**
|
| | | * TODO construct .
|
| | | *
|
| | | * @param topicName
|
| | | * @param subscriptionName
|
| | | * @param client
|
| | | */
|
| | | Subscription(final String topicName , final String subscriptionName,CMQClient client)
|
| | | {
|
| | | this.topicName = topicName;
|
| | | this.subscriptionName = subscriptionName;
|
| | | this.client = client; |
| | | }
|
| | | public void ClearFilterTags() throws Exception
|
| | | {
|
| | | TreeMap<String, String> param = new TreeMap<String, String>();
|
| | |
|
| | | param.put("topicName",this.topicName);
|
| | | param.put("subscriptionName", this.subscriptionName);
|
| | | String result = this.client.call("ClearSUbscriptionFIlterTags",param);
|
| | | |
| | | JSONObject jsonObj = new JSONObject(result);
|
| | | int code = jsonObj.getInt("code");
|
| | | if(code != 0)
|
| | | throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId"));
|
| | | |
| | | }
|
| | | /**
|
| | | * TODO set subscription attributes.
|
| | | *
|
| | | * @param meta SubscriptionMeata object
|
| | | * @throws Exception
|
| | | */
|
| | | public void SetSubscriptionAttributes(SubscriptionMeta meta) throws Exception
|
| | | {
|
| | | TreeMap<String, String> param = new TreeMap<String, String>();
|
| | |
|
| | | param.put("topicName",this.topicName);
|
| | | param.put("subscriptionName", this.subscriptionName);
|
| | | if( !meta.NotifyStrategy.equals(""))
|
| | | param.put("notifyStrategy",meta.NotifyStrategy);
|
| | | if( !meta.NotifyContentFormat.equals(""))
|
| | | param.put("notifyContentFormat", meta.NotifyContentFormat);
|
| | | if( meta.FilterTag != null )
|
| | | {
|
| | | int n = 1 ;
|
| | | for(String flag : meta.FilterTag)
|
| | | {
|
| | | param.put("filterTag."+Integer.toString(n), flag);
|
| | | ++n;
|
| | | }
|
| | | }
|
| | | if( meta.bindingKey != null )
|
| | | {
|
| | | int n = 1 ;
|
| | | for(String flag : meta.bindingKey)
|
| | | {
|
| | | param.put("bindingKey."+Integer.toString(n), flag);
|
| | | ++n;
|
| | | }
|
| | | }
|
| | | |
| | | String result = this.client.call("SetSubscriptionAttributes", param);
|
| | | |
| | | JSONObject jsonObj = new JSONObject(result);
|
| | | int code = jsonObj.getInt("code");
|
| | | if(code != 0)
|
| | | throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId"));
|
| | | }
|
| | | |
| | | /**
|
| | | * TODO get subscription attributes.
|
| | | *
|
| | | * @return subscription meta object
|
| | | * @throws Exception
|
| | | */
|
| | | public SubscriptionMeta getSubscriptionAttributes() throws Exception
|
| | | {
|
| | | TreeMap<String, String> param = new TreeMap<String, String>();
|
| | |
|
| | | param.put("topicName",this.topicName);
|
| | | param.put("subscriptionName", this.subscriptionName);
|
| | | |
| | | String result = this.client.call("GetSubscriptionAttributes", param);
|
| | | |
| | | JSONObject jsonObj = new JSONObject(result);
|
| | | int code = jsonObj.getInt("code");
|
| | | if(code != 0)
|
| | | throw new CMQServerException(code,jsonObj.getString("message"),jsonObj.getString("requestId"));
|
| | |
|
| | | SubscriptionMeta meta = new SubscriptionMeta();
|
| | | meta.FilterTag = new Vector<String>();
|
| | | if(jsonObj.has("endpoint"))
|
| | | meta.Endpoint = jsonObj.getString("endpoint");
|
| | | if(jsonObj.has("notifyStrategy"))
|
| | | meta.NotifyStrategy = jsonObj.getString("notifyStrategy");
|
| | | if(jsonObj.has("notifyContTentFormat"))
|
| | | meta.NotifyContentFormat = jsonObj.getString("notifyContTentFormat");
|
| | | if(jsonObj.has("protocol"))
|
| | | meta.Protocal = jsonObj.getString("protocol");
|
| | | if(jsonObj.has("createTime"))
|
| | | meta.CreateTime = jsonObj.getInt("createTime");
|
| | | if(jsonObj.has("lastModifyTime"))
|
| | | meta.LastModifyTime = jsonObj.getInt("lastModifyTime");
|
| | | if(jsonObj.has("msgCount"))
|
| | | meta.msgCount = jsonObj.getInt("msgCount");
|
| | | if(jsonObj.has("filterTag"))
|
| | | {
|
| | | JSONArray jsonArray = jsonObj.getJSONArray("filterTag");
|
| | | for(int i=0;i<jsonArray.length();i++)
|
| | | { |
| | | JSONObject obj = (JSONObject)jsonArray.get(i);
|
| | | meta.FilterTag.add(obj.toString());
|
| | | } |
| | | }
|
| | | if(jsonObj.has("bindingKey"))
|
| | | {
|
| | | JSONArray jsonArray = jsonObj.getJSONArray("bindingKey");
|
| | | for(int i=0;i<jsonArray.length();i++)
|
| | | { |
| | | JSONObject obj = (JSONObject)jsonArray.get(i);
|
| | | meta.bindingKey.add(obj.toString());
|
| | | } |
| | | }
|
| | | |
| | | return meta;
|
| | | }
|
| | | |
| | | }
|