1244 proxyPersistenceDelegate = new ProxyPersistenceDelegate(); 1245 } 1246 return proxyPersistenceDelegate; 1247 } 1248 } 1249 catch(Exception e) {} 1250 // else if (type.getDeclaringClass() != null) { 1251 // return new DefaultPersistenceDelegate(new String[]{"this$0"}); 1252 // } 1253 1254 String typeName = type.getName(); 1255 PersistenceDelegate pd = (PersistenceDelegate)getBeanAttribute(type, "persistenceDelegate"); 1256 if (pd == null) { 1257 pd = internalPersistenceDelegates.get(typeName); 1258 if (pd != null) { 1259 return pd; 1260 } 1261 internalPersistenceDelegates.put(typeName, defaultPersistenceDelegate); 1262 try { 1263 String name = type.getName(); 1264 Class c = Class.forName("java.beans.MetaData$" + name.replace('.', '_') 1265 + "_PersistenceDelegate"); 1266 pd = (PersistenceDelegate)c.newInstance(); 1267 internalPersistenceDelegates.put(typeName, pd); 1268 } 1269 catch (ClassNotFoundException e) { 1270 String[] properties = getConstructorProperties(type); 1271 if (properties != null) { 1272 pd = new DefaultPersistenceDelegate(properties); 1273 internalPersistenceDelegates.put(typeName, pd); 1274 } 1275 } 1276 catch (Exception e) { 1277 System.err.println("Internal error: " + e); 1278 } 1279 } 1280 1281 return (pd != null) ? pd : defaultPersistenceDelegate; 1282 } 1283 1284 private static String[] getConstructorProperties(Class<?> type) { 1285 String[] names = null; 1286 int length = 0; | 1244 proxyPersistenceDelegate = new ProxyPersistenceDelegate(); 1245 } 1246 return proxyPersistenceDelegate; 1247 } 1248 } 1249 catch(Exception e) {} 1250 // else if (type.getDeclaringClass() != null) { 1251 // return new DefaultPersistenceDelegate(new String[]{"this$0"}); 1252 // } 1253 1254 String typeName = type.getName(); 1255 PersistenceDelegate pd = (PersistenceDelegate)getBeanAttribute(type, "persistenceDelegate"); 1256 if (pd == null) { 1257 pd = internalPersistenceDelegates.get(typeName); 1258 if (pd != null) { 1259 return pd; 1260 } 1261 internalPersistenceDelegates.put(typeName, defaultPersistenceDelegate); 1262 try { 1263 String name = type.getName(); 1264 Class<?> c = Class.forName("java.beans.MetaData$" + name.replace('.', '_') 1265 + "_PersistenceDelegate"); 1266 pd = (PersistenceDelegate)c.getDeclaredConstructor().newInstance(); 1267 internalPersistenceDelegates.put(typeName, pd); 1268 } 1269 catch (ClassNotFoundException e) { 1270 String[] properties = getConstructorProperties(type); 1271 if (properties != null) { 1272 pd = new DefaultPersistenceDelegate(properties); 1273 internalPersistenceDelegates.put(typeName, pd); 1274 } 1275 } 1276 catch (Exception e) { 1277 System.err.println("Internal error: " + e); 1278 } 1279 } 1280 1281 return (pd != null) ? pd : defaultPersistenceDelegate; 1282 } 1283 1284 private static String[] getConstructorProperties(Class<?> type) { 1285 String[] names = null; 1286 int length = 0; |