/*
* Copyright (c) 2016 EMC Corporation
* All Rights Reserved
*/
package com.emc.storageos.db.client.impl;
import com.netflix.astyanax.annotations.Component;
import com.netflix.astyanax.util.TimeUUIDUtils;
import java.util.UUID;
public class TimeSeriesIndexColumnName implements CompositeIndexColumnName {
private @Component(ordinal = 0)
String className;
private @Component(ordinal = 1)
long timeInMicros;
private @Component(ordinal = 2)
String id;
private @Component(ordinal = 3)
String four;
private @Component(ordinal = 4)
UUID timeUUID;
// used by serialize/deserialize
public TimeSeriesIndexColumnName() {
}
public TimeSeriesIndexColumnName(String className, String id, UUID timeUUID) {
this(className, -1, id, "", timeUUID);
}
public TimeSeriesIndexColumnName(String className, long timestamp, String id, String four, UUID timeUUID) {
this.className = className;
this.timeInMicros = timestamp < 0 ? TimeUUIDUtils.getMicrosTimeFromUUID(timeUUID): timestamp;
this.id = id;
this.four=four;
this.timeUUID = timeUUID;
}
@Override
public String getOne() {
return className;
}
@Override
public String getTwo() {
return Long.toString(timeInMicros);
}
@Override
public String getThree() {
return id;
}
@Override
public String getFour() {
return four;
}
@Override
public UUID getTimeUUID() {
return timeUUID;
}
public long getTimeInMicros() {
return timeInMicros;
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder(className);
builder.append(":")
.append(Long.toString(timeInMicros))
.append(":")
.append(id)
.append(":")
.append(four)
.append(":")
.append(timeUUID);
return builder.toString();
}
}