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    }