/* * Copyright (c) 2017 the original author or authors. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html */ package org.eclipse.buildship.core.configuration.internal; import java.io.File; import com.google.common.base.Objects; import com.google.common.base.Preconditions; import org.eclipse.buildship.core.configuration.BuildConfiguration; import org.eclipse.buildship.core.configuration.ProjectConfiguration; /** * Default implementation for {@link ProjectConfiguration}. */ final class DefaultProjectConfiguration implements ProjectConfiguration { private final File projectDir; private final BuildConfiguration buildConfiguration; public DefaultProjectConfiguration(File projectDir, BuildConfiguration buildConfiguration) { this.projectDir = Preconditions.checkNotNull(projectDir); this.buildConfiguration = Preconditions.checkNotNull(buildConfiguration); } @Override public File getProjectDir() { return this.projectDir; } @Override public BuildConfiguration getBuildConfiguration() { return this.buildConfiguration; } @Override public boolean equals(Object obj) { if (obj instanceof DefaultProjectConfiguration) { DefaultProjectConfiguration other = (DefaultProjectConfiguration) obj; return Objects.equal(this.projectDir, other.projectDir) && Objects.equal(this.buildConfiguration, other.buildConfiguration); } return false; } @Override public int hashCode() { return Objects.hashCode(this.projectDir, this.buildConfiguration); } }