/*
* Copyright 2015 the original author or authors.
* @https://github.com/scouter-project/scouter
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package scouter.lang;
import scouter.util.IntKeyMap;
import scouter.util.ObjectUtil;
import scouter.util.StringIntMap;
public class TimeTypeEnum {
public final static byte REALTIME = 1;
public final static byte ONE_MIN = 2;
public final static byte FIVE_MIN = 3;
public final static byte TEN_MIN = 4;
public final static byte HOUR = 5;
public final static byte DAY = 6;
private static final IntKeyMap<String> lookup = new IntKeyMap<String>();
private static final StringIntMap lookname = new StringIntMap();
static {
add("REALTIME", REALTIME);
add("ONE_MIN", ONE_MIN);
add("FIVE_MIN", FIVE_MIN);
add("TEN_MIN", TEN_MIN);
add("HOUR", HOUR);
add("DAY", DAY);
}
private static void add(String name, byte code) {
lookup.put(code, name);
lookname.put(name, code);
}
public static String get(byte code) {
return lookup.get(code);
}
public static byte get(String name) {
return (byte) lookname.get(name);
}
public static String getString(byte code) {
return ObjectUtil.toString(lookup.get(code));
}
public static byte getCode(String name) {
return get(name);
}
public static byte getCodeBySec(int sec) {
if (sec < 60)
return REALTIME;
switch (sec) {
case 60:
return ONE_MIN;
case 300:
return FIVE_MIN;
case 600:
return TEN_MIN;
case 3600:
return HOUR;
default:
return DAY;
}
}
public static int getTime(byte timeCode) {
switch (timeCode) {
case REALTIME:
return 2000;
case ONE_MIN:
return 60 * 1000;
case FIVE_MIN:
return 300 * 1000;
case HOUR:
return 3600 * 1000;
case DAY:
return 24 * 3600 * 1000;
}
return 0;
}
}