12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- /* *******************************************************************
- * 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;
- }
- }
- }
|