All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.aspectj.org.eclipse.jdt.internal.compiler.lookup.ReferenceBindingSetWrapper Maven / Gradle / Ivy

Go to download

AspectJ tools most notably contains the AspectJ compiler (AJC). AJC applies aspects to Java classes during compilation, fully replacing Javac for plain Java classes and also compiling native AspectJ or annotation-based @AspectJ syntax. Furthermore, AJC can weave aspects into existing class files in a post-compile binary weaving step. This library is a superset of AspectJ weaver and hence also of AspectJ runtime.

There is a newer version: 1.9.22.1
Show newest version
/*******************************************************************************
 * Copyright (c) 2019 Simeon Andreev and others.
 *
 * This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 *     Simeon Andreev - initial API and implementation
 *******************************************************************************/
package org.aspectj.org.eclipse.jdt.internal.compiler.lookup;

/**
 * Defines a wrapper type for {@link ReferenceBinding} and provides proper hashCode() and equals() based on the wrapped
 * {@link ReferenceBinding} object identity comparison.
 * 

* Note: {@link ReferenceBinding} defines a hashCode() which is not consistent with the respective equals() * implementation). */ final class ReferenceBindingSetWrapper { final ReferenceBinding referenceBinding; private final int hashCode; ReferenceBindingSetWrapper(ReferenceBinding referenceBinding) { this.referenceBinding = referenceBinding; this.hashCode = referenceBinding.identityHashCode(); } @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (obj instanceof ReferenceBindingSetWrapper) { ReferenceBindingSetWrapper other = (ReferenceBindingSetWrapper) obj; return identityEqual(this.referenceBinding, other.referenceBinding); } return false; } private static boolean identityEqual(Object o1, Object o2) { return o1 == o2; } @Override public int hashCode() { return this.hashCode; } @Override public String toString() { return this.referenceBinding.toString(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy