/*
* Copyright © 2014 Cask Data, Inc.
*
* 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 co.cask.cdap.examples.purchase;
import org.apache.hadoop.io.Writable;
import org.apache.hadoop.io.WritableUtils;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
/**
* This class represents a purchase made by a customer. It is a very simple class and only contains
* the name of the customer, the name of the product, product quantity, price paid, and the purchase time.
*/
public class Purchase implements Writable {
private String customer, product;
private int quantity, price;
private long purchaseTime;
private String catalogId;
public Purchase() {
}
public Purchase(Purchase other) {
this(other.getCustomer(), other.getProduct(), other.getQuantity(), other.getPrice(), other.getPurchaseTime());
}
public Purchase(String customer, String product, int quantity, int price, long purchaseTime) {
this.customer = customer;
this.product = product;
this.quantity = quantity;
this.price = price;
this.purchaseTime = purchaseTime;
this.catalogId = "";
}
public String getCustomer() {
return customer;
}
public String getProduct() {
return product;
}
public long getPurchaseTime() {
return purchaseTime;
}
public int getQuantity() {
return quantity;
}
public int getPrice() {
return price;
}
public String getCatalogId() {
return catalogId;
}
public void setCatalogId(String catalogId) {
this.catalogId = catalogId;
}
@Override
public void write(DataOutput out) throws IOException {
WritableUtils.writeString(out, customer);
WritableUtils.writeString(out, product);
WritableUtils.writeVInt(out, quantity);
WritableUtils.writeVInt(out, price);
WritableUtils.writeVLong(out, purchaseTime);
WritableUtils.writeString(out, catalogId);
}
@Override
public void readFields(DataInput in) throws IOException {
customer = WritableUtils.readString(in);
product = WritableUtils.readString(in);
quantity = WritableUtils.readVInt(in);
price = WritableUtils.readVInt(in);
purchaseTime = WritableUtils.readVLong(in);
catalogId = WritableUtils.readString(in);
}
}