if (changed && munger.changesPublicSignature()) { WeaverStateInfo info = weaver.getLazyClassGen().getOrCreateWeaverStateInfo(); info.addConcreteMunger(this); }  return changed;
	public boolean munge(BcelClassWeaver weaver) {		if (munger.getKind() == ResolvedTypeMunger.Field) {			return mungeNewField(weaver, (NewFieldTypeMunger)munger);		} else if (munger.getKind() == ResolvedTypeMunger.Method) {			return mungeNewMethod(weaver, (NewMethodTypeMunger)munger);		} else if (munger.getKind() == ResolvedTypeMunger.PerObjectInterface) {			return mungePerObjectInterface(weaver, (PerObjectInterfaceTypeMunger)munger);		} else if (munger.getKind() == ResolvedTypeMunger.PrivilegedAccess) {			return mungePrivilegedAccess(weaver, (PrivilegedAccessMunger)munger);		} else if (munger.getKind() == ResolvedTypeMunger.Constructor) {			return mungeNewConstructor(weaver, (NewConstructorTypeMunger)munger);		} else if (munger.getKind() == ResolvedTypeMunger.Parent) {			return mungeNewParent(weaver, (NewParentTypeMunger)munger);		} else {			throw new RuntimeException("unimplemented");		}	}