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

org.aspectj.weaver.tools.cache.CachedClassReference 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) 2012 Contributors.
 * All rights reserved.
 * This program and the accompanying materials are made available
 * under the terms of the Eclipse Public License v 2.0
 * which accompanies this distribution and is available at
 * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
 *
 * Contributors:
 *   John Kew (vmware)         	initial implementation
 *   Lyor Goldstein (vmware)	add support for weaved class being re-defined
 *******************************************************************************/

package org.aspectj.weaver.tools.cache;

/**
 * A typed reference to a cached class entry. The key to any
 * cache entry is a simple string, but that string may contain
 * some specialized encoding. This class handles all of that
 * encoding.
 * 

* External users of the cache should not be able to create these * objects manually. *

*/ public class CachedClassReference { enum EntryType { GENERATED, WEAVED, IGNORED, } private final String key; private final String className; protected CachedClassReference(String key, CacheKeyResolver resolver) { this(key, resolver.keyToClass(key)); } /** * Protected to allow only the WeavedClassCache initialization rights * * @param key encoded key of the class * @param className the classname */ protected CachedClassReference(String key, String className) { this.key = key; this.className = className; } public String getKey() { return key; } public String getClassName() { return className; } @Override public int hashCode() { return getKey().hashCode() + getClassName().hashCode(); } @Override public boolean equals(Object obj) { if (obj == null) return false; if (this == obj) return true; if (getClass() != obj.getClass()) return false; CachedClassReference other=(CachedClassReference) obj; if (getKey().equals(other.getKey()) && getClassName().equals(other.getClassName())) { return true; } else { return false; } } @Override public String toString() { return getClassName() + "[" + getKey() + "]"; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy