package org.adoptopenjdk.lambda.tutorial.exercise3; /* * #%L * lambda-tutorial * %% * Copyright (C) 2013 Adopt OpenJDK * %% * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as * published by the Free Software Foundation, either version 2 of the * License, or (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-2.0.html>. * #L% */ /** * Class representing a book */ public final class Book { private final String title; private final Author author; private final Publisher publisher; public Book(String title, Author author, Publisher publisher) { this.title = title; this.author = author; this.publisher = publisher; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Book book = (Book) o; if (!author.equals(book.getAuthor())) return false; if (!publisher.equals(book.getPublisher())) return false; if (!title.equals(book.getTitle())) return false; return true; } @Override public int hashCode() { int result = title.hashCode(); result = 31 * result + author.hashCode(); result = 31 * result + publisher.hashCode(); return result; } public String getTitle() { return title; } public Author getAuthor() { return author; } public Publisher getPublisher() { return publisher; } }