KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > geronimo > console > jsr77 > DynamicServerInfo


1 /**
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */

17 package org.apache.geronimo.console.jsr77;
18
19 import java.io.Serializable JavaDoc;
20 import java.text.NumberFormat JavaDoc;
21
22 /**
23  * @version $Rev: 476061 $ $Date: 2006-11-17 01:36:50 -0500 (Fri, 17 Nov 2006) $
24  */

25 public class DynamicServerInfo implements Serializable JavaDoc {
26     private final static long BYTES_MAX = 2048;
27     private final static long KB_MAX = BYTES_MAX * 1024l;
28     private final static long MB_MAX = KB_MAX * 1024l;
29     private final static long GB_MAX = MB_MAX * 1024l;
30     private final static long TB_MAX = GB_MAX * 1024l;
31     private final static double KB_DIV = 1024;
32     private final static double MB_DIV = KB_DIV*1024d;
33     private final static double GB_DIV = MB_DIV*1024d;
34     private final static double TB_DIV = GB_DIV*1024d;
35     private NumberFormat JavaDoc dec2Format;
36     private String JavaDoc memoryCurrent;
37     private String JavaDoc memoryMost;
38     private String JavaDoc memoryAllocated;
39     private String JavaDoc upTime;
40     private long bytesCurrent, bytesMost, bytesAllocated;
41
42     public DynamicServerInfo(long upTime) {
43         this.upTime = calculateTime(upTime);
44         memoryAllocated = memoryCurrent = memoryMost = "Unknown";
45     }
46
47     public DynamicServerInfo(long memoryCurrent, long memoryMost, long memoryAllocated, long upTime) {
48         dec2Format = NumberFormat.getNumberInstance();
49         dec2Format.setMaximumFractionDigits(2);
50         bytesCurrent = memoryCurrent;
51         bytesMost = memoryMost;
52         bytesAllocated = memoryAllocated;
53         this.memoryCurrent = calculateMemory(memoryCurrent);
54         this.memoryMost = calculateMemory(memoryMost);
55         this.memoryAllocated = calculateMemory(memoryAllocated);
56         this.upTime = calculateTime(upTime);
57     }
58
59     private String JavaDoc calculateMemory(long bytes) {
60         if(bytes < BYTES_MAX) {
61             return bytes+" B";
62         } else if(bytes < KB_MAX) {
63             return dec2Format.format((double)bytes/KB_DIV)+" kB";
64         } else if(bytes < MB_MAX) {
65             return dec2Format.format((double)bytes/MB_DIV)+" MB";
66         } else if(bytes < GB_MAX) {
67             return dec2Format.format((double)bytes/GB_DIV)+" GB";
68         } else if(bytes < TB_MAX) {
69             return dec2Format.format((double)bytes/TB_DIV)+" TB";
70         } else {
71             return "Out of range";
72         }
73     }
74
75     private String JavaDoc calculateTime(long millis) {
76         int secs = (int)(millis/1000L);
77         int days = secs/86400;
78         secs = secs % 86400;
79         int hours = secs/3600;
80         secs = secs % 3600;
81         int minutes = secs / 60;
82         secs = secs % 60;
83         StringBuffer JavaDoc buf = new StringBuffer JavaDoc();
84         if(days > 1) {
85             buf.append(' ').append(days).append(" days");
86         } else if(days > 0) {
87             buf.append(' ').append(days).append(" day");
88         }
89         if(hours > 1) {
90             buf.append(' ').append(hours).append(" hours");
91         } else if(hours > 0) {
92             buf.append(' ').append(hours).append(" hour");
93         }
94         if(minutes > 1) {
95             buf.append(' ').append(minutes).append(" minutes");
96         } else if(minutes > 0) {
97             buf.append(' ').append(minutes).append(" minute");
98         }
99         if(secs > 1) {
100             buf.append(' ').append(secs).append(" seconds");
101         } else if(secs > 0) {
102             buf.append(' ').append(secs).append(" second");
103         }
104         buf.delete(0,1);
105         return buf.toString();
106     }
107
108     public String JavaDoc getMemoryCurrent() {
109         return memoryCurrent;
110     }
111
112     public String JavaDoc getMemoryMost() {
113         return memoryMost;
114     }
115
116     public String JavaDoc getMemoryAllocated() {
117         return memoryAllocated;
118     }
119
120     public String JavaDoc getUpTime() {
121         return upTime;
122     }
123
124     public long getBytesCurrent() {
125         return bytesCurrent;
126     }
127
128     public long getBytesMost() {
129         return bytesMost;
130     }
131
132     public long getBytesAllocated() {
133         return bytesAllocated;
134     }
135 }
136
Popular Tags