Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*     */ package javassist.util.proxy;
  /*     */ 
  /*     */ import java.io.InvalidClassException;
  /*     */ import java.io.Serializable;
  /*     */ import java.lang.reflect.Method;
  /*     */ 
  /*     */ public class RuntimeSupport
  /*     */ {
  /*  30 */   public static MethodHandler default_interceptor = new DefaultMethodHandler();
 /*     */ 
 /*     */   public static void find2Methods(Object selfString superMethodString thisMethodint indexString descMethod[] methods)
 /*     */   {
 /*  52 */     synchronized (methods) {
 /*  53 */       if (methods[index] == null) {
 /*  54 */         methods[(index + 1)] = (thisMethod == null ? null : findMethod(selfthisMethoddesc));
 /*     */ 
 /*  56 */         methods[index] = findSuperMethod(selfsuperMethoddesc);
 /*     */       }
 /*     */     }
 /*     */   }
 /*     */ 
 /*     */   public static Method findMethod(Object selfString nameString desc)
 /*     */   {
 /*  68 */     Method m = findMethod2(self.getClass(), namedesc);
 /*  69 */     if (m == null) {
 /*  70 */       error(selfnamedesc);
 /*     */     }
 /*  72 */     return m;
 /*     */   }
 /*     */ 
 /*     */   public static Method findSuperMethod(Object selfString nameString desc)
 /*     */   {
 /*  82 */     Class clazz = self.getClass();
 /*  83 */     Method m = findSuperMethod2(clazz.getSuperclass(), namedesc);
 /*  84 */     if (m == null) {
 /*  85 */       m = searchInterfaces(clazznamedesc);
 /*     */     }
 /*  87 */     if (m == null) {
 /*  88 */       error(selfnamedesc);
 /*     */     }
 /*  90 */     return m;
 /*     */   }
 /*     */ 
 /*     */   private static void error(Object selfString nameString desc) {
 /*  94 */     throw new RuntimeException("not found " + name + ":" + desc + " in " + self.getClass().getName());
 /*     */   }
 /*     */ 
 /*     */   private static Method findSuperMethod2(Class clazzString nameString desc)
 /*     */   {
 /*  99 */     Method m = findMethod2(clazznamedesc);
 /* 100 */     if (m != null) {
 /* 101 */       return m;
 /*     */     }
 /* 103 */     Class superClass = clazz.getSuperclass();
 /* 104 */     if (superClass != null) {
 /* 105 */       m = findSuperMethod2(superClassnamedesc);
 /* 106 */       if (m != null) {
 /* 107 */         return m;
 /*     */       }
 /*     */     }
 /* 110 */     return searchInterfaces(clazznamedesc);
 /*     */   }
 /*     */ 
 /*     */   private static Method searchInterfaces(Class clazzString nameString desc) {
 /* 114 */     Method m = null;
 /* 115 */     Class[] interfaces = clazz.getInterfaces();
 /* 116 */     for (int i = 0; i < interfaces.lengthi++) {
 /* 117 */       m = findSuperMethod2(interfaces[i], namedesc);
 /* 118 */       if (m != null) {
 /* 119 */         return m;
 /*     */       }
 /*     */     }
 /* 122 */     return m;
 /*     */   }
 /*     */ 
 /*     */   private static Method findMethod2(Class clazzString nameString desc) {
 /* 126 */     Method[] methods = SecurityActions.getDeclaredMethods(clazz);
 /* 127 */     int n = methods.length;
 /* 128 */     for (int i = 0; i < ni++)
 /* 129 */       if ((methods[i].getName().equals(name)) && (makeDescriptor(methods[i]).equals(desc)))
 /*     */       {
 /* 131 */         return methods[i];
 /*     */       }
 /* 133 */     return null;
 /*     */   }
 /*     */ 
 /*     */   public static String makeDescriptor(Method m)
 /*     */   {
 /* 140 */     Class[] params = m.getParameterTypes();
 /* 141 */     return makeDescriptor(paramsm.getReturnType());
 /*     */   }
 /*     */ 
 /*     */   public static String makeDescriptor(Class[] paramsClass retType)
 /*     */   {
 /* 151 */     StringBuffer sbuf = new StringBuffer();
 /* 152 */     sbuf.append('(');
 /* 153 */     for (int i = 0; i < params.lengthi++) {
 /* 154 */       makeDesc(sbufparams[i]);
 /*     */     }
/* 156 */     sbuf.append(')');
/* 157 */     makeDesc(sbufretType);
/* 158 */     return sbuf.toString();
/*     */   }
/*     */ 
/*     */   private static void makeDesc(StringBuffer sbufClass type) {
/* 162 */     if (type.isArray()) {
/* 163 */       sbuf.append('[');
/* 164 */       makeDesc(sbuftype.getComponentType());
/*     */     }
/* 166 */     else if (type.isPrimitive()) {
/* 167 */       if (type == .)
/* 168 */         sbuf.append('V');
/* 169 */       else if (type == .)
/* 170 */         sbuf.append('I');
/* 171 */       else if (type == .)
/* 172 */         sbuf.append('B');
/* 173 */       else if (type == .)
/* 174 */         sbuf.append('J');
/* 175 */       else if (type == .)
/* 176 */         sbuf.append('D');
/* 177 */       else if (type == .)
/* 178 */         sbuf.append('F');
/* 179 */       else if (type == .)
/* 180 */         sbuf.append('C');
/* 181 */       else if (type == .)
/* 182 */         sbuf.append('S');
/* 183 */       else if (type == .)
/* 184 */         sbuf.append('Z');
/*     */       else
/* 186 */         throw new RuntimeException("bad type: " + type.getName());
/*     */     }
/*     */     else {
/* 189 */       sbuf.append('L').append(type.getName().replace('.''/')).append(';');
/*     */     }
/*     */   }
/*     */ 
/*     */   public static SerializedProxy makeSerializedProxy(Object proxy)
/*     */     throws InvalidClassException
/*     */   {
/* 203 */     Class clazz = proxy.getClass();
/*     */ 
/* 205 */     MethodHandler methodHandler = null;
/* 206 */     if ((proxy instanceof ProxyObject)) {
/* 207 */       methodHandler = ((ProxyObject)proxy).getHandler();
/*     */     }
/* 209 */     return new SerializedProxy(clazz, ProxyFactory.getFilterSignature(clazz), methodHandler);
/*     */   }
/*     */ 
/*     */   static class DefaultMethodHandler
/*     */     implements MethodHandlerSerializable
/*     */   {
/*     */     public Object invoke(Object selfMethod mMethod proceedObject[] args)
/*     */       throws Exception
/*     */     {
/*  37 */       return proceed.invoke(selfargs);
/*     */     }
/*     */   }
/*     */ }
/* Location:           /home/mnovotny/projects/EMBEDDED_JBOSS_BETA3_COMMUNITY/embedded/output/lib/embedded-jboss/lib/thirdparty-all.jar
 * Qualified Name:     javassist.util.proxy.RuntimeSupport
 * JD-Core Version:    0.6.0
 */
New to GrepCode? Check out our FAQ X