/** * Instantiates a new XML resource type. * * @param agent the agent * @param resourceType the resource type */ public XmlResourceType(CollectionAgent agent, ResourceType resourceType) { m_agent = agent; m_resourceType = resourceType.getName(); instantiatePersistenceSelectorStrategy( resourceType.getPersistenceSelectorStrategy().getClazz()); instantiateStorageStrategy(resourceType.getStorageStrategy().getClazz()); m_storageStrategy.setParameters(resourceType.getStorageStrategy().getParameters()); m_persistenceSelectorStrategy.setParameters( resourceType.getPersistenceSelectorStrategy().getParameters()); }
/** * Instantiate storage strategy. * * @param className the class name */ private void instantiateStorageStrategy(String className) { Class<?> cinst; try { cinst = Class.forName(className); } catch (ClassNotFoundException e) { throw new ObjectRetrievalFailureException( StorageStrategy.class, className, "Could not load class", e); } try { m_storageStrategy = (StorageStrategy) cinst.newInstance(); } catch (InstantiationException e) { throw new ObjectRetrievalFailureException( StorageStrategy.class, className, "Could not instantiate", e); } catch (IllegalAccessException e) { throw new ObjectRetrievalFailureException( StorageStrategy.class, className, "Could not instantiate", e); } m_storageStrategy.setResourceTypeName(m_resourceType); if (m_agent != null) m_storageStrategy.setStorageStrategyService(m_agent); }