public static Annotation createDeclareSoftAnnotation(String pointcutExpression, String exceptionType, int pos) {
char[][] typeName = new char[][] {org,aspectj,internal,lang,annotation,declareSoft};
long[] positions = new long[typeName.length];
for (int i = 0; i < positions.length; i++) positions[i] = pos;
TypeReference annType = new QualifiedTypeReference(typeName,positions);
NormalAnnotation ann = new NormalAnnotation(annType,pos);
Expression pcutExpr = new StringLiteral(pointcutExpression.toCharArray(),pos,pos);
Expression exExpr = new StringLiteral(exceptionType.toCharArray(),pos,pos);
MemberValuePair[] mvps = new MemberValuePair[2];
mvps[0] = new MemberValuePair("pointcut".toCharArray(),pos,pos,pcutExpr);
mvps[1] = new MemberValuePair("exceptionType".toCharArray(),pos,pos,exExpr);