    001    /*
    002     * Copyright 2010 Red Hat, Inc.
    003     * Red Hat licenses this file to you under the Apache License, version
    004     * 2.0 (the "License"); you may not use this file except in compliance
    005     * with the License.  You may obtain a copy of the License at
    006     *    http://www.apache.org/licenses/LICENSE-2.0
    007     * Unless required by applicable law or agreed to in writing, software
    008     * distributed under the License is distributed on an "AS IS" BASIS,
    009     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
    010     * implied.  See the License for the specific language governing
    011     * permissions and limitations under the License.
    012     */
    013
    014    package org.hornetq.api.jms.management;
    015
    016    import org.hornetq.utils.json.JSONArray;
    017    import org.hornetq.utils.json.JSONObject;
    018
    019    /**
    020     * A JMSConnectionInfo
    021     *
    022     * @author jmesnil
    023     *
    024     *
    025     */
    026    public class JMSConnectionInfo
    027    {
    028
    029       // Constants -----------------------------------------------------
    030
    031       // Attributes ----------------------------------------------------
    032
    033       private final String connectionID;
    034
    035       private final String clientAddress;
    036
    037       private final long creationTime;
    038
    039       private final String clientID;
    040
    041       private final String username;
    042
    043
    044       // Static --------------------------------------------------------
    045
    046       public static JMSConnectionInfo[] from(final String jsonString) throws Exception
    047       {
    048          JSONArray array = new JSONArray(jsonString);
    049          JMSConnectionInfo[] infos = new JMSConnectionInfo[array.length()];
    050          for (int i = 0; i < array.length(); i++)
    051          {
    052             JSONObject obj = array.getJSONObject(i);
    053             String cid = obj.isNull("clientID") ? null : obj.getString("clientID");
    054             String uname = obj.isNull("principal") ? null : obj.getString("principal");
    055
    056             JMSConnectionInfo info = new JMSConnectionInfo(obj.getString("connectionID"),
    057                                                            obj.getString("clientAddress"),
    058                                                            obj.getLong("creationTime"),
    059                                                            cid,
    060                                                            uname);
    061             infos[i] = info;
    062          }
    063          return infos;
    064       }
    065
    066       // Constructors --------------------------------------------------
    067
    068       private JMSConnectionInfo(final String connectionID,
    069                                 final String clientAddress,
    070                                 final long creationTime,
    071                                 final String clientID,
    072                                 final String username)
    073       {
    074          this.connectionID = connectionID;
    075          this.clientAddress = clientAddress;
    076          this.creationTime = creationTime;
    077          this.clientID = clientID;
    078          this.username = username;
    079       }
    080
    081       // Public --------------------------------------------------------
    082
    083       public String getConnectionID()
    084       {
    085          return connectionID;
    086       }
    087
    088       public String getClientAddress()
    089       {
    090          return clientAddress;
    091       }
    092
    093       public long getCreationTime()
    094       {
    095          return creationTime;
    096       }
    097
    098       public String getClientID()
    099       {
    100          return clientID;
    101       }
    102
    103       public String getUsername()
    104       {
    105          return username;
    106       }
    107
    108       // Package protected ---------------------------------------------
    109
    110       // Protected -----------------------------------------------------
    111
    112       // Private -------------------------------------------------------
    113
    114       // Inner classes -------------------------------------------------
    115
    116    }