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

org.aspectj.apache.bcel.generic.Tag Maven / Gradle / Ivy

Go to download

The AspectJ weaver applies aspects to Java classes. It can be used as a Java agent in order to apply load-time weaving (LTW) during class-loading and also contains the AspectJ runtime classes.

There is a newer version: 1.9.22.1
Show newest version
/* *******************************************************************
 * Copyright (c) 2002 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:
 *     PARC     initial implementation
 *   Andy Clement   pushed down into bcel module
 * ******************************************************************/

package org.aspectj.apache.bcel.generic;

/**
 * A tag is an instruction-targeter that does not remember its target. Instruction handles will maintain a list of targeters but
 * there won't be a way to get back from the tag to the instruction. Maintaining these backward/forward links just slows everything
 * down.
 */
public abstract class Tag implements InstructionTargeter, Cloneable {

	public Tag() {
	}

	// ---- from InstructionTargeter
	public boolean containsTarget(InstructionHandle ih) {
		return false;
	}

	public void updateTarget(InstructionHandle oldHandle, InstructionHandle newHandle) {
		oldHandle.removeTargeter(this);
		if (newHandle != null) {
			newHandle.addTargeter(this);
		}
	}

	public Tag copy() {
		try {
			return (Tag) clone();
		} catch (CloneNotSupportedException e) {
			throw new RuntimeException("Sanity check, can't clone me");
		}
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy