/*
* Copyright (C) 2007 Steve Ratcliffe
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*
* Author: Steve Ratcliffe
* Create date: Dec 19, 2007
*/
package uk.me.parabola.imgfmt.mps;
import java.io.IOException;
import uk.me.parabola.io.StructuredOutputStream;
/**
* A block describing a particular product. Not sure how this relates
* to the map set.
*
* @author Steve Ratcliffe
*/
public class ProductBlock extends MpsBlock {
private static final int BLOCK_TYPE = 0x46;
private int familyId;
private int productId;
private String description = "OSM maps";
public ProductBlock(int codePage) {
super(BLOCK_TYPE, codePage);
}
protected void writeBody(StructuredOutputStream out) throws IOException {
out.write2(productId);
out.write2(familyId);
out.writeString(description);
}
public void setFamilyId(int familyId) {
this.familyId = familyId;
}
public int getFamilyId() {
return familyId;
}
public void setProductId(int productId) {
this.productId = productId;
}
public int getProductId() {
return productId;
}
public void setDescription(String description) {
this.description = description;
}
public String getDescription() {
return description;
}
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
ProductBlock that = (ProductBlock) o;
if (familyId != that.familyId) return false;
if (productId != that.productId) return false;
return true;
}
public int hashCode() {
int result = familyId;
result = 31 * result + productId;
return result;
}
}