Copyright (c) 2012 Contributors.
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://eclipse.org/legal/epl-v10.html
Contributors:
John Kew (vmware) initial implementation
Lyor Goldstein (vmware) add support for weaved class being re-defined
/*******************************************************************************
* Copyright (c) 2012 Contributors.
* 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://eclipse.org/legal/epl-v10.html
*
* 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.
/**
* 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.
* <p/>
* External users of the cache should not be able to create these
* objects manually.
*/
public class CachedClassReference {
static 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
Params: - key – encoded key of the class
- className – the classname
/**
* 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() + "]";
}
}