/*
* Copyright 2014 NAVER Corp.
*
* 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 com.navercorp.pinpoint.common.util;
import com.navercorp.pinpoint.common.trace.AnnotationKey;
/**
* @author emeroad
*/
public final class AnnotationKeyUtils {
private AnnotationKeyUtils() {
}
public static AnnotationKey getArgs(int index) {
if (index < 0) {
throw new IllegalArgumentException("negative index:" + index);
}
switch (index) {
case 0:
return AnnotationKey.ARGS0;
case 1:
return AnnotationKey.ARGS1;
case 2:
return AnnotationKey.ARGS2;
case 3:
return AnnotationKey.ARGS3;
case 4:
return AnnotationKey.ARGS4;
case 5:
return AnnotationKey.ARGS5;
case 6:
return AnnotationKey.ARGS6;
case 7:
return AnnotationKey.ARGS7;
case 8:
return AnnotationKey.ARGS8;
case 9:
return AnnotationKey.ARGS9;
default:
return AnnotationKey.ARGSN;
}
}
public static boolean isArgsKey(int index) {
if (index <= AnnotationKey.ARGS0.getCode() && index >= AnnotationKey.ARGSN.getCode()) {
return true;
}
return false;
}
public static AnnotationKey getCachedArgs(int index) {
if (index < 0) {
throw new IllegalArgumentException("negative index:" + index);
}
switch (index) {
case 0:
return AnnotationKey.CACHE_ARGS0;
case 1:
return AnnotationKey.CACHE_ARGS1;
case 2:
return AnnotationKey.CACHE_ARGS2;
case 3:
return AnnotationKey.CACHE_ARGS3;
case 4:
return AnnotationKey.CACHE_ARGS4;
case 5:
return AnnotationKey.CACHE_ARGS5;
case 6:
return AnnotationKey.CACHE_ARGS6;
case 7:
return AnnotationKey.CACHE_ARGS7;
case 8:
return AnnotationKey.CACHE_ARGS8;
case 9:
return AnnotationKey.CACHE_ARGS9;
default:
return AnnotationKey.CACHE_ARGSN;
}
}
public static boolean isCachedArgsKey(int index) {
if (index <= AnnotationKey.CACHE_ARGS0.getCode() && index >= AnnotationKey.CACHE_ARGSN.getCode()) {
return true;
}
return false;
}
public static int cachedArgsToArgs(int index) {
if (!isCachedArgsKey(index)) {
throw new IllegalArgumentException("non CACHED_ARGS:" + index);
}
final int cachedIndex = AnnotationKey.CACHE_ARGS0.getCode() - AnnotationKey.ARGS0.getCode();
// you have to - (minus) operation because of negative name
return index - cachedIndex;
}
}