Java tutorial
/* * * * * Licensed to the Apache Software Foundation (ASF) under one * * or more contributor license agreements. See the NOTICE file * * distributed with this work for additional information * * regarding copyright ownership. The ASF licenses this file * * to you 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.sirius.hadoop.job.onlinetime; import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.hadoop.io.WritableComparable; import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; /** * Created by pippo on 14-9-19. */ public class StatusKey implements WritableComparable<StatusKey> { public String userId; public long time = -1; @Override public int compareTo(StatusKey o) { int comp = userId.compareTo(o.userId); if (comp == 0 && time != o.time) { comp = time < o.time ? -1 : 1; } return comp; } @Override public void write(DataOutput out) throws IOException { out.writeUTF(userId != null ? userId : StringUtils.EMPTY); out.writeLong(time); } @Override public void readFields(DataInput in) throws IOException { userId = in.readUTF(); time = in.readLong(); } @Override public String toString() { return new ToStringBuilder(this).append("userId", userId).append("time", time).toString(); } }