< prev index next >

src/java.desktop/share/classes/java/beans/MetaData.java

Print this page




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;


< prev index next >