    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.core.management;
    015
    016    import org.hornetq.utils.json.JSONObject;
    017
    018    /**
    019     * A AddressSettingsInfo
    020     *
    021     * @author jmesnil
    022     *
    023     *
    024     */
    025    public class AddressSettingsInfo
    026    {
    027
    028       // Constants -----------------------------------------------------
    029
    030       // Attributes ----------------------------------------------------
    031
    032       private String addressFullMessagePolicy;
    033
    034       private long maxSizeBytes;
    035
    036       private int pageSizeBytes;
    037
    038       private int pageCacheMaxSize;
    039
    040       private int maxDeliveryAttempts;
    041
    042       private long redeliveryDelay;
    043
    044       private String deadLetterAddress;
    045
    046       private String expiryAddress;
    047
    048       private boolean lastValueQueue;
    049
    050       private long redistributionDelay;
    051
    052       private boolean sendToDLAOnNoRoute;
    053
    054       // Static --------------------------------------------------------
    055
    056       public static final AddressSettingsInfo from(final String jsonString) throws Exception
    057       {
    058          JSONObject object = new JSONObject(jsonString);
    059          return new AddressSettingsInfo(object.getString("addressFullMessagePolicy"),
    060                                         object.getLong("maxSizeBytes"),
    061                                         object.getInt("pageSizeBytes"),
    062                                         object.getInt("pageCacheMaxSize"),
    063                                         object.getInt("maxDeliveryAttempts"),
    064                                         object.getLong("redeliveryDelay"),
    065                                         object.getString("DLA"),
    066                                         object.getString("expiryAddress"),
    067                                         object.getBoolean("lastValueQueue"),
    068                                         object.getLong("redistributionDelay"),
    069                                         object.getBoolean("sendToDLAOnNoRoute"));
    070       }
    071
    072       // Constructors --------------------------------------------------
    073
    074       public AddressSettingsInfo(String addressFullMessagePolicy,
    075                                  long maxSizeBytes,
    076                                  int pageSizeBytes,
    077                                  int pageCacheMaxSize,
    078                                  int maxDeliveryAttempts,
    079                                  long redeliveryDelay,
    080                                  String deadLetterAddress,
    081                                  String expiryAddress,
    082                                  boolean lastValueQueue,
    083                                  long redistributionDelay,
    084                                  boolean sendToDLAOnNoRoute)
    085       {
    086          this.addressFullMessagePolicy = addressFullMessagePolicy;
    087          this.maxSizeBytes = maxSizeBytes;
    088          this.pageSizeBytes = pageSizeBytes;
    089          this.pageCacheMaxSize = pageCacheMaxSize;
    090          this.maxDeliveryAttempts = maxDeliveryAttempts;
    091          this.redeliveryDelay = redeliveryDelay;
    092          this.deadLetterAddress = deadLetterAddress;
    093          this.expiryAddress = expiryAddress;
    094          this.lastValueQueue = lastValueQueue;
    095          this.redistributionDelay = redistributionDelay;
    096          this.sendToDLAOnNoRoute = sendToDLAOnNoRoute;
    097       }
    098
    099       // Public --------------------------------------------------------
    100
    101       public int getPageCacheMaxSize()
    102       {
    103          return pageCacheMaxSize;
    104       }
    105
    106       public void setPageCacheMaxSize(int pageCacheMaxSize)
    107       {
    108          this.pageCacheMaxSize = pageCacheMaxSize;
    109       }
    110
    111       public String getAddressFullMessagePolicy()
    112       {
    113          return addressFullMessagePolicy;
    114       }
    115
    116       public long getMaxSizeBytes()
    117       {
    118          return maxSizeBytes;
    119       }
    120
    121       public int getPageSizeBytes()
    122       {
    123          return pageSizeBytes;
    124       }
    125
    126       public int getMaxDeliveryAttempts()
    127       {
    128          return maxDeliveryAttempts;
    129       }
    130
    131       public long getRedeliveryDelay()
    132       {
    133          return redeliveryDelay;
    134       }
    135
    136       public String getDeadLetterAddress()
    137       {
    138          return deadLetterAddress;
    139       }
    140
    141       public String getExpiryAddress()
    142       {
    143          return expiryAddress;
    144       }
    145
    146       public boolean isLastValueQueue()
    147       {
    148          return lastValueQueue;
    149       }
    150
    151       public long getRedistributionDelay()
    152       {
    153          return redistributionDelay;
    154       }
    155
    156       public boolean isSendToDLAOnNoRoute()
    157       {
    158          return sendToDLAOnNoRoute;
    159       }
    160
    161       // Package protected ---------------------------------------------
    162
    163       // Protected -----------------------------------------------------
    164
    165       // Private -------------------------------------------------------
    166
    167       // Inner classes -------------------------------------------------
    168
    169    }