protected IndexedJavaClassDescriptor addToStoredClassDescriptors(Class<?> clazz) { JavaClassDescriptor desc = externalizersConfig.getJavaDescriptorsCache().get(clazz.getName()); if (desc == null) { // find custom class descriptor and instantiate it if any. Class<? extends JavaClassDescriptor> descriptorType = externalizersConfig.getJavaDescriptor(clazz.getName()); if (descriptorType != null) { try { desc = TypeUtil.newInstance(descriptorType, new Class[]{Class.class}, new Object[]{clazz}); } catch (Exception e) { throw new RuntimeException("Could not instantiate Java descriptor: " + descriptorType); } } else desc = new DefaultJavaClassDescriptor(clazz); externalizersConfig.getJavaDescriptorsCache().putIfAbsent(clazz.getName(), desc); } IndexedJavaClassDescriptor iDesc = new IndexedJavaClassDescriptor(storedClassDescriptors.size(), desc); storedClassDescriptors.put(clazz, iDesc); return iDesc; }
@Override protected List<Property> introspectProperties() { List<Property> properties = null; Class<?> type = getType(); if (!isExternalizable() && !Map.class.isAssignableFrom(type) && !Hashtable.class.isAssignableFrom(type)) { properties = new ArrayList<Property>();
@Override protected List<Property> introspectProperties() { List<Property> properties = null; Class<?> type = getType(); if (!isExternalizable() && !Map.class.isAssignableFrom(type) && !Hashtable.class.isAssignableFrom(type)) { properties = new ArrayList<Property>();
protected IndexedJavaClassDescriptor addToStoredClassDescriptors(Class<?> clazz) { JavaClassDescriptor desc = externalizersConfig.getJavaDescriptorsCache().get(clazz.getName()); if (desc == null) { // find custom class descriptor and instantiate it if any. Class<? extends JavaClassDescriptor> descriptorType = externalizersConfig.getJavaDescriptor(clazz.getName()); if (descriptorType != null) { try { desc = TypeUtil.newInstance(descriptorType, new Class[]{Class.class}, new Object[]{clazz}); } catch (Exception e) { throw new RuntimeException("Could not instantiate Java descriptor: " + descriptorType); } } else desc = new DefaultJavaClassDescriptor(clazz); externalizersConfig.getJavaDescriptorsCache().putIfAbsent(clazz.getName(), desc); } IndexedJavaClassDescriptor iDesc = new IndexedJavaClassDescriptor(storedClassDescriptors.size(), desc); storedClassDescriptors.put(clazz, iDesc); return iDesc; }
@Override protected List<Property> introspectProperties() { List<Property> properties = null; Class<?> type = getType(); if (!isExternalizable() && !Map.class.isAssignableFrom(type) && !Hashtable.class.isAssignableFrom(type)) { properties = new ArrayList<Property>();
protected IndexedJavaClassDescriptor addToStoredClassDescriptors(Class<?> clazz) { JavaClassDescriptor desc = externalizersConfig.getJavaDescriptorsCache().get(clazz.getName()); if (desc == null) { // find custom class descriptor and instantiate it if any. Class<? extends JavaClassDescriptor> descriptorType = externalizersConfig.getJavaDescriptor(clazz.getName()); if (descriptorType != null) { try { desc = TypeUtil.newInstance(descriptorType, new Class[]{Class.class}, new Object[]{clazz}); } catch (Exception e) { throw new RuntimeException("Could not instantiate Java descriptor: " + descriptorType); } } else desc = new DefaultJavaClassDescriptor(clazz); externalizersConfig.getJavaDescriptorsCache().putIfAbsent(clazz.getName(), desc); } IndexedJavaClassDescriptor iDesc = new IndexedJavaClassDescriptor(storedClassDescriptors.size(), desc); storedClassDescriptors.put(clazz, iDesc); return iDesc; }
@Override protected List<Property> introspectProperties() { List<Property> properties = null; Class<?> type = getType(); if (!isExternalizable() && !Map.class.isAssignableFrom(type) && !Hashtable.class.isAssignableFrom(type)) { properties = new ArrayList<Property>();
protected IndexedJavaClassDescriptor addToStoredClassDescriptors(Class<?> clazz) { final String name = JavaClassDescriptor.getClassName(clazz); if (debug) log.debug("addToStoredClassDescriptors(clazz=%s)", clazz); if (storedClassDescriptors.containsKey(name)) throw new RuntimeException( "Descriptor of \"" + name + "\" is already stored at index: " + getFromStoredClassDescriptors(clazz).getIndex() ); // find custom class descriptor and instantiate if any JavaClassDescriptor desc = null; Class<? extends JavaClassDescriptor> descriptorType = context.getGraniteConfig().getJavaDescriptor(clazz.getName()); if (descriptorType != null) { Class<?>[] argsDef = new Class[]{Class.class}; Object[] argsVal = new Object[]{clazz}; try { desc = TypeUtil.newInstance(descriptorType, argsDef, argsVal); } catch (Exception e) { throw new RuntimeException("Could not instantiate Java descriptor: " + descriptorType); } } if (desc == null) desc = new DefaultJavaClassDescriptor(clazz); IndexedJavaClassDescriptor iDesc = new IndexedJavaClassDescriptor(storedClassDescriptors.size(), desc); if (debug) log.debug("addToStoredClassDescriptors() - putting: name=%s, iDesc=%s", name, iDesc); storedClassDescriptors.put(name, iDesc); return iDesc; }