Subversion Repositories mkgmap

Rev

Rev 3730 | Blame | Compare with Previous | Last modification | View Log | RSS feed

/*
 * 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;
        }
}