/* * 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.server.bo; import com.navercorp.pinpoint.common.PinpointConstants; import com.navercorp.pinpoint.common.util.BytesUtils; import com.navercorp.pinpoint.common.server.util.RowKeyUtils; import com.navercorp.pinpoint.common.util.TimeUtils; /** * @author emeroad */ public class StringMetaDataBo { private String agentId; private long startTime; private int stringId; private String stringValue; public StringMetaDataBo() { } public StringMetaDataBo(String agentId, long startTime, int stringId) { if (agentId == null) { throw new NullPointerException("agentId must not be null"); } this.agentId = agentId; this.stringId = stringId; this.startTime = startTime; } public String getAgentId() { return agentId; } public void setAgentId(String agentId) { this.agentId = agentId; } public int getStringId() { return stringId; } public void setStringId(int stringId) { this.stringId = stringId; } public long getStartTime() { return startTime; } public void setStartTime(long startTime) { this.startTime = startTime; } public String getStringValue() { return stringValue; } public void setStringValue(String stringValue) { this.stringValue = stringValue; } public void readRowKey(byte[] rowKey) { this.agentId = BytesUtils.safeTrim(BytesUtils.toString(rowKey, 0, PinpointConstants.AGENT_NAME_MAX_LEN)); this.startTime = TimeUtils.recoveryTimeMillis(readTime(rowKey)); this.stringId = readKeyCode(rowKey); } private static long readTime(byte[] rowKey) { return BytesUtils.bytesToLong(rowKey, PinpointConstants.AGENT_NAME_MAX_LEN); } private static int readKeyCode(byte[] rowKey) { return BytesUtils.bytesToInt(rowKey, PinpointConstants.AGENT_NAME_MAX_LEN + BytesUtils.LONG_BYTE_LENGTH); } public byte[] toRowKey() { return RowKeyUtils.getMetaInfoRowKey(this.agentId, this.startTime, this.stringId); } @Override public String toString() { return "StringMetaDataBo{" + "agentId='" + agentId + '\'' + ", startTime=" + startTime + ", stringId=" + stringId + ", stringValue='" + stringValue + '\'' + '}'; } }