org.aspectj.weaver.ResolvableTypeList Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aspectjweaver Show documentation
Show all versions of aspectjweaver Show documentation
The AspectJ weaver introduces advices to java classes
/* *******************************************************************
* Copyright (c) 2009 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://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Andy Clement initial implementation
* ******************************************************************/
package org.aspectj.weaver;
/**
* Carries an array of unresolved types - will resolve them on demand. Can be used where currently the entire array gets resolved
* and a ResolvedType array is passed on. Depending on the situation there may not be a need to resolve all the entries so this can
* perform better. Note: the array elements are resolved in place, so the caller should not be surprised if elements and resolved
* after the type list has been used.
*
* @author Andy Clement
*/
public class ResolvableTypeList {
public int length;
private World world;
private UnresolvedType[] types;
public ResolvableTypeList(World world, UnresolvedType[] unresolvedTypes) {
length = unresolvedTypes.length;
types = unresolvedTypes;
this.world = world;
}
public ResolvedType getResolved(int nameIndex) {
UnresolvedType ut = types[nameIndex];
if (!(ut instanceof ResolvedType)) {
types[nameIndex] = world.resolve(ut);
return (ResolvedType) types[nameIndex];
} else {
return (ResolvedType) ut;
}
}
}