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.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 OnlineRecord implements WritableComparable<Long> { public long onlineTime = -1; public long offlineTime = -1; public long cost = 0; @Override public void write(DataOutput out) throws IOException { out.writeLong(onlineTime); out.writeLong(offlineTime); out.writeLong(cost); } @Override public void readFields(DataInput in) throws IOException { onlineTime = in.readLong(); offlineTime = in.readLong(); cost = in.readLong(); } @Override public int compareTo(Long o) { if (onlineTime > 0) { return onlineTime < o ? -1 : 1; } if (offlineTime > 0) { return offlineTime < o ? -1 : 1; } return 0; } @Override public String toString() { return new ToStringBuilder(this).append("onlineTime", onlineTime).append("offlineTime", offlineTime) .append("cost", cost).toString(); } }