本文整理汇总了Java中javassist.bytecode.SignatureAttribute类的典型用法代码示例。如果您正苦于以下问题:Java SignatureAttribute类的具体用法?Java SignatureAttribute怎么用?Java SignatureAttribute使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
SignatureAttribute类属于javassist.bytecode包,在下文中一共展示了SignatureAttribute类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: replaceGenericResponseMethods
import javassist.bytecode.SignatureAttribute; //导入依赖的package包/类
private void replaceGenericResponseMethods(CtClass clazz)
throws NotFoundException, CannotCompileException, BadBytecode {
for (CtMethod method : clazz.getMethods()) {
if (method.getReturnType().subtypeOf(getGenericResponseClass())) {
MethodInfo methodInfo = method.getMethodInfo();
CtMethod replacementMethod = CtNewMethod
.abstractMethod(
getResponseClass(), method.getName(), method.getParameterTypes(),
method.getExceptionTypes(), clazz);
for (Object attributeInfo : methodInfo.getAttributes()) {
if (attributeInfo instanceof SignatureAttribute) {
String sig = transformMethodSignature((SignatureAttribute) attributeInfo);
replacementMethod.getMethodInfo().addAttribute(
new SignatureAttribute(((SignatureAttribute) attributeInfo).getConstPool(), sig));
} else {
replacementMethod.getMethodInfo().addAttribute((AttributeInfo) attributeInfo);
}
}
clazz.removeMethod(method);
clazz.addMethod(replacementMethod);
}
}
}
开发者ID:cerner,项目名称:beadledom,代码行数:25,代码来源:GenericResponseResourceTransformer.java
示例2: transformMethodSignature
import javassist.bytecode.SignatureAttribute; //导入依赖的package包/类
private String transformMethodSignature(SignatureAttribute signatureAttribute)
throws BadBytecode {
String originalSig = signatureAttribute.getSignature();
SignatureAttribute.MethodSignature methodSignature =
SignatureAttribute.toMethodSignature(originalSig);
SignatureAttribute.ClassType returnType =
new SignatureAttribute.ClassType("javax.ws.rs.core.Response");
SignatureAttribute.MethodSignature replacementSignature =
new SignatureAttribute.MethodSignature(
methodSignature.getTypeParameters(),
methodSignature.getParameterTypes(),
returnType,
methodSignature.getExceptionTypes());
return replacementSignature.encode();
}
开发者ID:cerner,项目名称:beadledom,代码行数:17,代码来源:GenericResponseResourceTransformer.java
示例3: signatureTypeToType
import javassist.bytecode.SignatureAttribute; //导入依赖的package包/类
static Type signatureTypeToType(SignatureAttribute.Type signatureType, TypeSolver typeSolver, TypeParametrizable typeParametrizable) {
if (signatureType instanceof SignatureAttribute.ClassType) {
SignatureAttribute.ClassType classType = (SignatureAttribute.ClassType) signatureType;
List<Type> typeParameters = classType.getTypeArguments() == null ? Collections.emptyList() : Arrays.stream(classType.getTypeArguments()).map(ta -> typeArgumentToType(ta, typeSolver, typeParametrizable)).collect(Collectors.toList());
final String typeName =
classType.getDeclaringClass() != null ?
classType.getDeclaringClass().getName() + "." + classType.getName() :
classType.getName();
ReferenceTypeDeclaration typeDeclaration = typeSolver.solveType(
internalNameToCanonicalName(typeName));
return new ReferenceTypeImpl(typeDeclaration, typeParameters, typeSolver);
} else if (signatureType instanceof SignatureAttribute.TypeVariable) {
SignatureAttribute.TypeVariable typeVariableSignature = (SignatureAttribute.TypeVariable)signatureType;
Optional<TypeParameterDeclaration> typeParameterDeclarationOpt = typeParametrizable.findTypeParameter(typeVariableSignature.getName());
if (!typeParameterDeclarationOpt.isPresent()) {
throw new UnsolvedSymbolException("Unable to solve TypeVariable " + typeVariableSignature);
}
TypeParameterDeclaration typeParameterDeclaration = typeParameterDeclarationOpt.get();
return new TypeVariable(typeParameterDeclaration);
} else {
throw new RuntimeException(signatureType.getClass().getCanonicalName());
}
}
开发者ID:javaparser,项目名称:javasymbolsolver,代码行数:24,代码来源:JavassistUtils.java
示例4: getParam
import javassist.bytecode.SignatureAttribute; //导入依赖的package包/类
@Override
public ParameterDeclaration getParam(int i) {
try {
boolean variadic = false;
if ((ctMethod.getModifiers() & javassist.Modifier.VARARGS) > 0) {
variadic = i == (ctMethod.getParameterTypes().length - 1);
}
if (ctMethod.getGenericSignature() != null) {
SignatureAttribute.MethodSignature methodSignature = SignatureAttribute.toMethodSignature(ctMethod.getGenericSignature());
SignatureAttribute.Type signatureType = methodSignature.getParameterTypes()[i];
return new JavassistParameterDeclaration(JavassistUtils.signatureTypeToType(signatureType, typeSolver, this), typeSolver, variadic);
} else {
return new JavassistParameterDeclaration(ctMethod.getParameterTypes()[i], typeSolver, variadic);
}
} catch (NotFoundException e) {
throw new RuntimeException(e);
} catch (BadBytecode badBytecode) {
throw new RuntimeException(badBytecode);
}
}
开发者ID:javaparser,项目名称:javasymbolsolver,代码行数:21,代码来源:JavassistMethodDeclaration.java
示例5: getParam
import javassist.bytecode.SignatureAttribute; //导入依赖的package包/类
@Override
public ParameterDeclaration getParam(int i) {
try {
boolean variadic = false;
if ((ctConstructor.getModifiers() & javassist.Modifier.VARARGS) > 0) {
variadic = i == (ctConstructor.getParameterTypes().length - 1);
}
if (ctConstructor.getGenericSignature() != null) {
SignatureAttribute.MethodSignature methodSignature = SignatureAttribute.toMethodSignature(ctConstructor.getGenericSignature());
SignatureAttribute.Type signatureType = methodSignature.getParameterTypes()[i];
return new JavassistParameterDeclaration(JavassistUtils.signatureTypeToType(signatureType, typeSolver, this), typeSolver, variadic);
} else {
return new JavassistParameterDeclaration(ctConstructor.getParameterTypes()[i], typeSolver, variadic);
}
} catch (NotFoundException e) {
throw new RuntimeException(e);
} catch (BadBytecode badBytecode) {
throw new RuntimeException(badBytecode);
}
}
开发者ID:javaparser,项目名称:javasymbolsolver,代码行数:21,代码来源:JavassistConstructorDeclaration.java
示例6: getParam
import javassist.bytecode.SignatureAttribute; //导入依赖的package包/类
@Override
public ResolvedParameterDeclaration getParam(int i) {
try {
boolean variadic = false;
if ((ctMethod.getModifiers() & javassist.Modifier.VARARGS) > 0) {
variadic = i == (ctMethod.getParameterTypes().length - 1);
}
if (ctMethod.getGenericSignature() != null) {
SignatureAttribute.MethodSignature methodSignature = SignatureAttribute.toMethodSignature(ctMethod.getGenericSignature());
SignatureAttribute.Type signatureType = methodSignature.getParameterTypes()[i];
return new JavassistParameterDeclaration(JavassistUtils.signatureTypeToType(signatureType, typeSolver, this), typeSolver, variadic);
} else {
return new JavassistParameterDeclaration(ctMethod.getParameterTypes()[i], typeSolver, variadic);
}
} catch (NotFoundException e) {
throw new RuntimeException(e);
} catch (BadBytecode badBytecode) {
throw new RuntimeException(badBytecode);
}
}
开发者ID:javaparser,项目名称:javasymbolsolver,代码行数:21,代码来源:JavassistMethodDeclaration.java
示例7: getParam
import javassist.bytecode.SignatureAttribute; //导入依赖的package包/类
@Override
public ResolvedParameterDeclaration getParam(int i) {
try {
boolean variadic = false;
if ((ctConstructor.getModifiers() & javassist.Modifier.VARARGS) > 0) {
variadic = i == (ctConstructor.getParameterTypes().length - 1);
}
if (ctConstructor.getGenericSignature() != null) {
SignatureAttribute.MethodSignature methodSignature = SignatureAttribute.toMethodSignature(ctConstructor.getGenericSignature());
SignatureAttribute.Type signatureType = methodSignature.getParameterTypes()[i];
return new JavassistParameterDeclaration(JavassistUtils.signatureTypeToType(signatureType, typeSolver, this), typeSolver, variadic);
} else {
return new JavassistParameterDeclaration(ctConstructor.getParameterTypes()[i], typeSolver, variadic);
}
} catch (NotFoundException e) {
throw new RuntimeException(e);
} catch (BadBytecode badBytecode) {
throw new RuntimeException(badBytecode);
}
}
开发者ID:javaparser,项目名称:javasymbolsolver,代码行数:21,代码来源:JavassistConstructorDeclaration.java
示例8: renameAttributes
import javassist.bytecode.SignatureAttribute; //导入依赖的package包/类
@SuppressWarnings("unchecked")
private static void renameAttributes(List<AttributeInfo> attributes, ReplacerClassMap map, SignatureType type) {
try {
// make the rename class method accessible
Method renameClassMethod = AttributeInfo.class.getDeclaredMethod("renameClass", Map.class);
renameClassMethod.setAccessible(true);
for (AttributeInfo attribute : attributes) {
if (attribute instanceof SignatureAttribute) {
// this has to be handled specially because SignatureAttribute.renameClass() is buggy as hell
SignatureAttribute signatureAttribute = (SignatureAttribute)attribute;
String newSignature = type.rename(signatureAttribute.getSignature(), map);
if (newSignature != null) {
signatureAttribute.setSignature(newSignature);
}
} else if (attribute instanceof CodeAttribute) {
// code attributes have signature attributes too (indirectly)
CodeAttribute codeAttribute = (CodeAttribute)attribute;
renameAttributes(codeAttribute.getAttributes(), map, type);
} else if (attribute instanceof LocalVariableTypeAttribute) {
// lvt attributes have signature attributes too
LocalVariableTypeAttribute localVariableAttribute = (LocalVariableTypeAttribute)attribute;
renameLocalVariableTypeAttribute(localVariableAttribute, map);
} else {
renameClassMethod.invoke(attribute, map);
}
}
} catch(NoSuchMethodException | IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
throw new Error("Unable to call javassist methods by reflection!", ex);
}
}
开发者ID:cccssw,项目名称:enigma-vk,代码行数:34,代码来源:ClassRenamer.java
示例9: renameClassSignature
import javassist.bytecode.SignatureAttribute; //导入依赖的package包/类
private static String renameClassSignature(String signature, ReplacerClassMap map) {
try {
ClassSignature type = renameType(SignatureAttribute.toClassSignature(signature), map);
if (type != null) {
return type.encode();
}
return null;
} catch (BadBytecode ex) {
throw new Error("Can't parse field signature: " + signature);
}
}
开发者ID:cccssw,项目名称:enigma-vk,代码行数:12,代码来源:ClassRenamer.java
示例10: renameFieldSignature
import javassist.bytecode.SignatureAttribute; //导入依赖的package包/类
private static String renameFieldSignature(String signature, ReplacerClassMap map) {
try {
ObjectType type = renameType(SignatureAttribute.toFieldSignature(signature), map);
if (type != null) {
return type.encode();
}
return null;
} catch (BadBytecode ex) {
throw new Error("Can't parse class signature: " + signature);
}
}
开发者ID:cccssw,项目名称:enigma-vk,代码行数:12,代码来源:ClassRenamer.java
示例11: renameMethodSignature
import javassist.bytecode.SignatureAttribute; //导入依赖的package包/类
private static String renameMethodSignature(String signature, ReplacerClassMap map) {
try {
MethodSignature type = renameType(SignatureAttribute.toMethodSignature(signature), map);
if (type != null) {
return type.encode();
}
return null;
} catch (BadBytecode ex) {
throw new Error("Can't parse method signature: " + signature);
}
}
开发者ID:cccssw,项目名称:enigma-vk,代码行数:12,代码来源:ClassRenamer.java
示例12: getBounds
import javassist.bytecode.SignatureAttribute; //导入依赖的package包/类
@Override
public List<TypeParameterDeclaration.Bound> getBounds(TypeSolver typeSolver) {
List<Bound> bounds = new ArrayList<>();
if (wrapped.getClassBound() != null && !wrapped.getClassBound().toString().equals(Object.class.getCanonicalName())) {
throw new UnsupportedOperationException(wrapped.getClassBound().toString());
}
for (SignatureAttribute.ObjectType ot : wrapped.getInterfaceBound()) {
throw new UnsupportedOperationException(ot.toString());
}
return bounds;
}
开发者ID:javaparser,项目名称:javasymbolsolver,代码行数:12,代码来源:JavassistTypeParameter.java
示例13: objectTypeArgumentToType
import javassist.bytecode.SignatureAttribute; //导入依赖的package包/类
private static Type objectTypeArgumentToType(SignatureAttribute.ObjectType typeArgument, TypeSolver typeSolver, TypeParametrizable typeParametrizable) {
String typeName = typeArgument.jvmTypeName();
Optional<Type> type = getGenericParameterByName(typeName, typeParametrizable);
return type.orElseGet(() -> new ReferenceTypeImpl(
typeSolver.solveType(internalNameToCanonicalName(typeName)),
typeSolver));
}
开发者ID:javaparser,项目名称:javasymbolsolver,代码行数:8,代码来源:JavassistUtils.java
示例14: typeArgumentToType
import javassist.bytecode.SignatureAttribute; //导入依赖的package包/类
private static Type typeArgumentToType(SignatureAttribute.TypeArgument typeArgument, TypeSolver typeSolver, TypeParametrizable typeParametrizable) {
if (typeArgument.isWildcard()) {
if (typeArgument.getType() == null) {
return Wildcard.UNBOUNDED;
} else if (typeArgument.getKind() == '+') {
return Wildcard.extendsBound(objectTypeArgumentToType(typeArgument.getType(), typeSolver, typeParametrizable));
} else if (typeArgument.getKind() == '-') {
return Wildcard.superBound(objectTypeArgumentToType(typeArgument.getType(), typeSolver, typeParametrizable));
} else {
throw new UnsupportedOperationException();
}
} else {
return objectTypeArgumentToType(typeArgument.getType(), typeSolver, typeParametrizable);
}
}
开发者ID:javaparser,项目名称:javasymbolsolver,代码行数:16,代码来源:JavassistUtils.java
示例15: getTypeParameters
import javassist.bytecode.SignatureAttribute; //导入依赖的package包/类
@Override
public List<TypeParameterDeclaration> getTypeParameters() {
try {
if (ctMethod.getGenericSignature() == null) {
return Collections.emptyList();
}
SignatureAttribute.MethodSignature methodSignature = SignatureAttribute.toMethodSignature(ctMethod.getGenericSignature());
return Arrays.stream(methodSignature.getTypeParameters()).map((jasTp) -> new JavassistTypeParameter(jasTp, this, typeSolver)).collect(Collectors.toList());
} catch (BadBytecode badBytecode) {
throw new RuntimeException(badBytecode);
}
}
开发者ID:javaparser,项目名称:javasymbolsolver,代码行数:13,代码来源:JavassistMethodDeclaration.java
示例16: getTypeParameters
import javassist.bytecode.SignatureAttribute; //导入依赖的package包/类
public List<TypeParameterDeclaration> getTypeParameters() {
if (null == ctClass.getGenericSignature()) {
return Collections.emptyList();
} else {
try {
SignatureAttribute.ClassSignature classSignature =
SignatureAttribute.toClassSignature(ctClass.getGenericSignature());
return Arrays.<SignatureAttribute.TypeParameter>stream(classSignature.getParameters())
.map((tp) -> new JavassistTypeParameter(tp, JavassistFactory.toTypeDeclaration(ctClass, typeSolver), typeSolver))
.collect(Collectors.toList());
} catch (BadBytecode badBytecode) {
throw new RuntimeException(badBytecode);
}
}
}
开发者ID:javaparser,项目名称:javasymbolsolver,代码行数:16,代码来源:JavassistTypeDeclarationAdapter.java
示例17: getTypeParameters
import javassist.bytecode.SignatureAttribute; //导入依赖的package包/类
@Override
public List<TypeParameterDeclaration> getTypeParameters() {
try {
if (ctConstructor.getGenericSignature() == null) {
return Collections.emptyList();
}
SignatureAttribute.MethodSignature methodSignature = SignatureAttribute.toMethodSignature(ctConstructor.getGenericSignature());
return Arrays.stream(methodSignature.getTypeParameters()).map((jasTp) -> new JavassistTypeParameter(jasTp, this, typeSolver)).collect(Collectors.toList());
} catch (BadBytecode badBytecode) {
throw new RuntimeException(badBytecode);
}
}
开发者ID:javaparser,项目名称:javasymbolsolver,代码行数:13,代码来源:JavassistConstructorDeclaration.java
示例18: getBounds
import javassist.bytecode.SignatureAttribute; //导入依赖的package包/类
@Override
public List<ResolvedTypeParameterDeclaration.Bound> getBounds() {
List<Bound> bounds = new ArrayList<>();
if (wrapped.getClassBound() != null && !wrapped.getClassBound().toString().equals(Object.class.getCanonicalName())) {
throw new UnsupportedOperationException(wrapped.getClassBound().toString());
}
for (SignatureAttribute.ObjectType ot : wrapped.getInterfaceBound()) {
throw new UnsupportedOperationException(ot.toString());
}
return bounds;
}
开发者ID:javaparser,项目名称:javasymbolsolver,代码行数:12,代码来源:JavassistTypeParameter.java
示例19: signatureTypeToType
import javassist.bytecode.SignatureAttribute; //导入依赖的package包/类
static ResolvedType signatureTypeToType(SignatureAttribute.Type signatureType, TypeSolver typeSolver, ResolvedTypeParametrizable typeParametrizable) {
if (signatureType instanceof SignatureAttribute.ClassType) {
SignatureAttribute.ClassType classType = (SignatureAttribute.ClassType) signatureType;
List<ResolvedType> typeArguments = classType.getTypeArguments() == null ? Collections.emptyList() : Arrays.stream(classType.getTypeArguments()).map(ta -> typeArgumentToType(ta, typeSolver, typeParametrizable)).collect(Collectors.toList());
final String typeName =
classType.getDeclaringClass() != null ?
classType.getDeclaringClass().getName() + "." + classType.getName() :
classType.getName();
ResolvedReferenceTypeDeclaration typeDeclaration = typeSolver.solveType(
removeTypeArguments(internalNameToCanonicalName(typeName)));
return new ReferenceTypeImpl(typeDeclaration, typeArguments, typeSolver);
} else if (signatureType instanceof SignatureAttribute.TypeVariable) {
SignatureAttribute.TypeVariable typeVariableSignature = (SignatureAttribute.TypeVariable)signatureType;
Optional<ResolvedTypeParameterDeclaration> typeParameterDeclarationOpt = typeParametrizable.findTypeParameter(typeVariableSignature.getName());
if (!typeParameterDeclarationOpt.isPresent()) {
throw new UnsolvedSymbolException("Unable to solve TypeVariable " + typeVariableSignature);
}
ResolvedTypeParameterDeclaration typeParameterDeclaration = typeParameterDeclarationOpt.get();
return new ResolvedTypeVariable(typeParameterDeclaration);
} else if (signatureType instanceof SignatureAttribute.ArrayType) {
SignatureAttribute.ArrayType arrayType = (SignatureAttribute.ArrayType) signatureType;
return new ResolvedArrayType(signatureTypeToType(arrayType.getComponentType(), typeSolver, typeParametrizable));
} else if (signatureType instanceof SignatureAttribute.BaseType) {
SignatureAttribute.BaseType baseType = (SignatureAttribute.BaseType) signatureType;
if (baseType.toString().equals("void")) {
return ResolvedVoidType.INSTANCE;
} else {
return ResolvedPrimitiveType.byName(baseType.toString());
}
} else {
throw new RuntimeException(signatureType.getClass().getCanonicalName());
}
}
开发者ID:javaparser,项目名称:javasymbolsolver,代码行数:34,代码来源:JavassistUtils.java
示例20: objectTypeArgumentToType
import javassist.bytecode.SignatureAttribute; //导入依赖的package包/类
private static ResolvedType objectTypeArgumentToType(SignatureAttribute.ObjectType typeArgument, TypeSolver typeSolver, ResolvedTypeParametrizable typeParametrizable) {
String typeName = typeArgument.jvmTypeName();
Optional<ResolvedType> type = getGenericParameterByName(typeName, typeParametrizable);
return type.orElseGet(() -> new ReferenceTypeImpl(
typeSolver.solveType(removeTypeArguments(internalNameToCanonicalName(typeName))),
typeSolver));
}
开发者ID:javaparser,项目名称:javasymbolsolver,代码行数:8,代码来源:JavassistUtils.java
注:本文中的javassist.bytecode.SignatureAttribute类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论