< prev index next >

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

Print this page




1345                 return proxyPersistenceDelegate;
1346             }
1347         }
1348         catch(Exception e) {}
1349         // else if (type.getDeclaringClass() != null) {
1350         //     return new DefaultPersistenceDelegate(new String[]{"this$0"});
1351         // }
1352 
1353         String typeName = type.getName();
1354         PersistenceDelegate pd = (PersistenceDelegate)getBeanAttribute(type, "persistenceDelegate");
1355         if (pd == null) {
1356             pd = internalPersistenceDelegates.get(typeName);
1357             if (pd != null) {
1358                 return pd;
1359             }
1360             internalPersistenceDelegates.put(typeName, defaultPersistenceDelegate);
1361             try {
1362                 String name =  type.getName();
1363                 Class c = Class.forName("java.beans.MetaData$" + name.replace('.', '_')
1364                                         + "_PersistenceDelegate");
1365                 pd = (PersistenceDelegate)c.newInstance();


1366                 internalPersistenceDelegates.put(typeName, pd);
1367             }
1368             catch (ClassNotFoundException e) {
1369                 String[] properties = getConstructorProperties(type);
1370                 if (properties != null) {
1371                     pd = new DefaultPersistenceDelegate(properties);
1372                     internalPersistenceDelegates.put(typeName, pd);
1373                 }
1374             }
1375             catch (Exception e) {
1376                 System.err.println("Internal error: " + e);
1377             }
1378         }
1379 
1380         return (pd != null) ? pd : defaultPersistenceDelegate;
1381     }
1382 
1383     private static String[] getConstructorProperties(Class<?> type) {
1384         String[] names = null;
1385         int length = 0;




1345                 return proxyPersistenceDelegate;
1346             }
1347         }
1348         catch(Exception e) {}
1349         // else if (type.getDeclaringClass() != null) {
1350         //     return new DefaultPersistenceDelegate(new String[]{"this$0"});
1351         // }
1352 
1353         String typeName = type.getName();
1354         PersistenceDelegate pd = (PersistenceDelegate)getBeanAttribute(type, "persistenceDelegate");
1355         if (pd == null) {
1356             pd = internalPersistenceDelegates.get(typeName);
1357             if (pd != null) {
1358                 return pd;
1359             }
1360             internalPersistenceDelegates.put(typeName, defaultPersistenceDelegate);
1361             try {
1362                 String name =  type.getName();
1363                 Class c = Class.forName("java.beans.MetaData$" + name.replace('.', '_')
1364                                         + "_PersistenceDelegate");
1365                 @SuppressWarnings("deprecation")
1366                 Object tmp = c.newInstance();
1367                 pd = (PersistenceDelegate)tmp;
1368                 internalPersistenceDelegates.put(typeName, pd);
1369             }
1370             catch (ClassNotFoundException e) {
1371                 String[] properties = getConstructorProperties(type);
1372                 if (properties != null) {
1373                     pd = new DefaultPersistenceDelegate(properties);
1374                     internalPersistenceDelegates.put(typeName, pd);
1375                 }
1376             }
1377             catch (Exception e) {
1378                 System.err.println("Internal error: " + e);
1379             }
1380         }
1381 
1382         return (pd != null) ? pd : defaultPersistenceDelegate;
1383     }
1384 
1385     private static String[] getConstructorProperties(Class<?> type) {
1386         String[] names = null;
1387         int length = 0;


< prev index next >