当前位置: 首页>>代码示例>>Java>>正文


Java BeanWrapper.isWritableProperty方法代码示例

本文整理汇总了Java中org.springframework.beans.BeanWrapper.isWritableProperty方法的典型用法代码示例。如果您正苦于以下问题:Java BeanWrapper.isWritableProperty方法的具体用法?Java BeanWrapper.isWritableProperty怎么用?Java BeanWrapper.isWritableProperty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.springframework.beans.BeanWrapper的用法示例。


在下文中一共展示了BeanWrapper.isWritableProperty方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: initJob

import org.springframework.beans.BeanWrapper; //导入方法依赖的package包/类
protected void initJob(TriggerFiredBundle bundle, Object job) {
	// The following code is copied from SpringBeanJobFactory in spring-context-support-4.2.5.RELEASE
	BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(job);
	if (isEligibleForPropertyPopulation(bw.getWrappedInstance())) {
		MutablePropertyValues pvs = new MutablePropertyValues();
		if (schedulerContext != null) {
			pvs.addPropertyValues(this.schedulerContext);
		}
		pvs.addPropertyValues(bundle.getJobDetail().getJobDataMap());
		pvs.addPropertyValues(bundle.getTrigger().getJobDataMap());
		if (this.ignoredUnknownProperties != null) {
			for (String propName : this.ignoredUnknownProperties) {
				if (pvs.contains(propName) && !bw.isWritableProperty(propName)) {
					pvs.removePropertyValue(propName);
				}
			}
			bw.setPropertyValues(pvs);
		}
		else {
			bw.setPropertyValues(pvs, true);
		}
	}
}
 
开发者ID:xtianus,项目名称:yadaframework,代码行数:24,代码来源:YadaQuartzJobFactory.java

示例2: createJobInstance

import org.springframework.beans.BeanWrapper; //导入方法依赖的package包/类
/**
 * Create the job instance, populating it with property values taken
 * from the scheduler context, job data map and trigger data map.
 */
@Override
protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
	Object job = super.createJobInstance(bundle);
	BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(job);
	if (isEligibleForPropertyPopulation(bw.getWrappedInstance())) {
		MutablePropertyValues pvs = new MutablePropertyValues();
		if (this.schedulerContext != null) {
			pvs.addPropertyValues(this.schedulerContext);
		}
		pvs.addPropertyValues(bundle.getJobDetail().getJobDataMap());
		pvs.addPropertyValues(bundle.getTrigger().getJobDataMap());
		if (this.ignoredUnknownProperties != null) {
			for (String propName : this.ignoredUnknownProperties) {
				if (pvs.contains(propName) && !bw.isWritableProperty(propName)) {
					pvs.removePropertyValue(propName);
				}
			}
			bw.setPropertyValues(pvs);
		}
		else {
			bw.setPropertyValues(pvs, true);
		}
	}
	return job;
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:30,代码来源:SpringBeanJobFactory.java

示例3: applyMapOntoInstance

import org.springframework.beans.BeanWrapper; //导入方法依赖的package包/类
/**
 * Injects the properties from the given Map to the given object. Additionally, a bean factory can be passed in for
 * copying property editors inside the injector.
 * 
 * @param instance bean instance to configure
 * @param properties
 * @param beanFactory
 */
public static void applyMapOntoInstance(Object instance, Map<String, ?> properties, AbstractBeanFactory beanFactory) {
	if (properties != null && !properties.isEmpty()) {
		BeanWrapper beanWrapper = PropertyAccessorFactory.forBeanPropertyAccess(instance);
		beanWrapper.setAutoGrowNestedPaths(true);

		// configure bean wrapper (using method from Spring 2.5.6)
		if (beanFactory != null) {
			beanFactory.copyRegisteredEditorsTo(beanWrapper);
		}
		for (Iterator<?> iterator = properties.entrySet().iterator(); iterator.hasNext();) {
			Map.Entry<String, ?> entry = (Map.Entry<String, ?>) iterator.next();
			String propertyName = entry.getKey();
			if (beanWrapper.isWritableProperty(propertyName)) {
				beanWrapper.setPropertyValue(propertyName, entry.getValue());
			}
		}
	}
}
 
开发者ID:eclipse,项目名称:gemini.blueprint,代码行数:27,代码来源:CMUtils.java

示例4: createJobInstance

import org.springframework.beans.BeanWrapper; //导入方法依赖的package包/类
/**
 * Create the job instance, populating it with property values taken
 * from the scheduler context, job data map and trigger data map.
 */
@Override
protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception {
	Object job = super.createJobInstance(bundle);
	BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(job);
	if (isEligibleForPropertyPopulation(bw.getWrappedInstance())) {
		MutablePropertyValues pvs = new MutablePropertyValues();
		if (this.schedulerContext != null) {
			pvs.addPropertyValues(this.schedulerContext);
		}
		pvs.addPropertyValues(getJobDetailDataMap(bundle));
		pvs.addPropertyValues(getTriggerDataMap(bundle));
		if (this.ignoredUnknownProperties != null) {
			for (String propName : this.ignoredUnknownProperties) {
				if (pvs.contains(propName) && !bw.isWritableProperty(propName)) {
					pvs.removePropertyValue(propName);
				}
			}
			bw.setPropertyValues(pvs);
		}
		else {
			bw.setPropertyValues(pvs, true);
		}
	}
	return job;
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:30,代码来源:SpringBeanJobFactory.java

示例5: copyPropertiesToBean

import org.springframework.beans.BeanWrapper; //导入方法依赖的package包/类
/**
 * Copy the properties of the supplied {@link Annotation} to the supplied target bean.
 * Any properties defined in {@code excludedProperties} will not be copied.
 * <p>A specified value resolver may resolve placeholders in property values, for example.
 * @param ann the annotation to copy from
 * @param bean the bean instance to copy to
 * @param valueResolver a resolve to post-process String property values (may be {@code null})
 * @param excludedProperties the names of excluded properties, if any
 * @see org.springframework.beans.BeanWrapper
 */
public static void copyPropertiesToBean(Annotation ann, Object bean, StringValueResolver valueResolver, String... excludedProperties) {
	Set<String> excluded =  new HashSet<String>(Arrays.asList(excludedProperties));
	Method[] annotationProperties = ann.annotationType().getDeclaredMethods();
	BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(bean);
	for (Method annotationProperty : annotationProperties) {
		String propertyName = annotationProperty.getName();
		if ((!excluded.contains(propertyName)) && bw.isWritableProperty(propertyName)) {
			Object value = ReflectionUtils.invokeMethod(annotationProperty, ann);
			if (valueResolver != null && value instanceof String) {
				value = valueResolver.resolveStringValue((String) value);
			}
			bw.setPropertyValue(propertyName, value);
		}
	}
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:26,代码来源:AnnotationBeanUtils.java

示例6: createDefinitionsFactory

import org.springframework.beans.BeanWrapper; //导入方法依赖的package包/类
@Override
protected DefinitionsFactory createDefinitionsFactory(ApplicationContext applicationContext,
		LocaleResolver resolver) {

	if (definitionsFactoryClass != null) {
		DefinitionsFactory factory = BeanUtils.instantiate(definitionsFactoryClass);
		if (factory instanceof ApplicationContextAware) {
			((ApplicationContextAware) factory).setApplicationContext(applicationContext);
		}
		BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(factory);
		if (bw.isWritableProperty("localeResolver")) {
			bw.setPropertyValue("localeResolver", resolver);
		}
		if (bw.isWritableProperty("definitionDAO")) {
			bw.setPropertyValue("definitionDAO", createLocaleDefinitionDao(applicationContext, resolver));
		}
		return factory;
	}
	else {
		return super.createDefinitionsFactory(applicationContext, resolver);
	}
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:23,代码来源:TilesConfigurer.java

示例7: createDefinitionsFactory

import org.springframework.beans.BeanWrapper; //导入方法依赖的package包/类
@Override
protected DefinitionsFactory createDefinitionsFactory(TilesApplicationContext applicationContext,
		TilesRequestContextFactory contextFactory, LocaleResolver resolver) {
	if (definitionsFactoryClass != null) {
		DefinitionsFactory factory = BeanUtils.instantiate(definitionsFactoryClass);
		if (factory instanceof TilesApplicationContextAware) {
			((TilesApplicationContextAware) factory).setApplicationContext(applicationContext);
		}
		BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(factory);
		if (bw.isWritableProperty("localeResolver")) {
			bw.setPropertyValue("localeResolver", resolver);
		}
		if (bw.isWritableProperty("definitionDAO")) {
			bw.setPropertyValue("definitionDAO",
					createLocaleDefinitionDao(applicationContext, contextFactory, resolver));
		}
		if (factory instanceof Refreshable) {
			((Refreshable) factory).refresh();
		}
		return factory;
	}
	else {
		return super.createDefinitionsFactory(applicationContext, contextFactory, resolver);
	}
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:26,代码来源:TilesConfigurer.java

示例8: applyAcknowledgeMode

import org.springframework.beans.BeanWrapper; //导入方法依赖的package包/类
/**
 * Apply the specified acknowledge mode to the ActivationSpec object.
 * <p>This implementation applies the standard JCA 1.5 acknowledge modes
 * "Auto-acknowledge" and "Dups-ok-acknowledge". It throws an exception in
 * case of {@code CLIENT_ACKNOWLEDGE} or {@code SESSION_TRANSACTED}
 * having been requested.
 * @param bw the BeanWrapper wrapping the ActivationSpec object
 * @param ackMode the configured acknowledge mode
 * (according to the constants in {@link javax.jms.Session}
 * @see javax.jms.Session#AUTO_ACKNOWLEDGE
 * @see javax.jms.Session#DUPS_OK_ACKNOWLEDGE
 * @see javax.jms.Session#CLIENT_ACKNOWLEDGE
 * @see javax.jms.Session#SESSION_TRANSACTED
 */
protected void applyAcknowledgeMode(BeanWrapper bw, int ackMode) {
	if (ackMode == Session.SESSION_TRANSACTED) {
		throw new IllegalArgumentException("No support for SESSION_TRANSACTED: Only \"Auto-acknowledge\" " +
				"and \"Dups-ok-acknowledge\" supported in standard JCA 1.5");
	}
	else if (ackMode == Session.CLIENT_ACKNOWLEDGE) {
		throw new IllegalArgumentException("No support for CLIENT_ACKNOWLEDGE: Only \"Auto-acknowledge\" " +
				"and \"Dups-ok-acknowledge\" supported in standard JCA 1.5");
	}
	else if (bw.isWritableProperty("acknowledgeMode")) {
		bw.setPropertyValue("acknowledgeMode",
				ackMode == Session.DUPS_OK_ACKNOWLEDGE ? "Dups-ok-acknowledge" : "Auto-acknowledge");
	}
	else if (ackMode == Session.DUPS_OK_ACKNOWLEDGE) {
		// Standard JCA 1.5 "acknowledgeMode" apparently not supported (e.g. WebSphere MQ 6.0.2.1)
		throw new IllegalArgumentException(
				"Dups-ok-acknowledge not supported by underlying provider: " + this.activationSpecClass.getName());
	}
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:34,代码来源:StandardJmsActivationSpecFactory.java

示例9: copyPropertiesToBean

import org.springframework.beans.BeanWrapper; //导入方法依赖的package包/类
/**
 * Copy the properties of the supplied {@link Annotation} to the supplied target bean.
 * Any properties defined in {@code excludedProperties} will not be copied.
 * <p>A specified value resolver may resolve placeholders in property values, for example.
 * @param ann the annotation to copy from
 * @param bean the bean instance to copy to
 * @param valueResolver a resolve to post-process String property values (may be {@code null})
 * @param excludedProperties the names of excluded properties, if any
 * @see org.springframework.beans.BeanWrapper
 */
public static void copyPropertiesToBean(Annotation ann, Object bean, StringValueResolver valueResolver, String... excludedProperties) {
	Set<String> excluded = new HashSet<String>(Arrays.asList(excludedProperties));
	Method[] annotationProperties = ann.annotationType().getDeclaredMethods();
	BeanWrapper bw = PropertyAccessorFactory.forBeanPropertyAccess(bean);
	for (Method annotationProperty : annotationProperties) {
		String propertyName = annotationProperty.getName();
		if (!excluded.contains(propertyName) && bw.isWritableProperty(propertyName)) {
			Object value = ReflectionUtils.invokeMethod(annotationProperty, ann);
			if (valueResolver != null && value instanceof String) {
				value = valueResolver.resolveStringValue((String) value);
			}
			bw.setPropertyValue(propertyName, value);
		}
	}
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:26,代码来源:AnnotationBeanUtils.java

示例10: populateActivationSpecProperties

import org.springframework.beans.BeanWrapper; //导入方法依赖的package包/类
/**
 * This implementation supports Spring's extended "maxConcurrency"
 * and "prefetchSize" settings through detecting corresponding
 * ActivationSpec properties: "maxSessions"/"maxNumberOfWorks" and
 * "maxMessagesPerSessions"/"maxMessages", respectively
 * (following ActiveMQ's and JORAM's naming conventions).
 */
@Override
protected void populateActivationSpecProperties(BeanWrapper bw, JmsActivationSpecConfig config) {
	super.populateActivationSpecProperties(bw, config);
	if (config.getMaxConcurrency() > 0) {
		if (bw.isWritableProperty("maxSessions")) {
			// ActiveMQ
			bw.setPropertyValue("maxSessions", Integer.toString(config.getMaxConcurrency()));
		}
		else if (bw.isWritableProperty("maxNumberOfWorks")) {
			// JORAM
			bw.setPropertyValue("maxNumberOfWorks", Integer.toString(config.getMaxConcurrency()));
		}
		else if (bw.isWritableProperty("maxConcurrency")){
			// WebSphere
			bw.setPropertyValue("maxConcurrency", Integer.toString(config.getMaxConcurrency()));
		}
	}
	if (config.getPrefetchSize() > 0) {
		if (bw.isWritableProperty("maxMessagesPerSessions")) {
			// ActiveMQ
			bw.setPropertyValue("maxMessagesPerSessions", Integer.toString(config.getPrefetchSize()));
		}
		else if (bw.isWritableProperty("maxMessages")) {
			// JORAM
			bw.setPropertyValue("maxMessages", Integer.toString(config.getPrefetchSize()));
		}
		else if (bw.isWritableProperty("maxBatchSize")){
			// WebSphere
			bw.setPropertyValue("maxBatchSize", Integer.toString(config.getPrefetchSize()));
		}
	}
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:40,代码来源:DefaultJmsActivationSpecFactory.java

示例11: applyAcknowledgeMode

import org.springframework.beans.BeanWrapper; //导入方法依赖的package包/类
/**
 * This implementation maps {@code SESSION_TRANSACTED} onto an
 * ActivationSpec property named "useRAManagedTransaction", if available
 * (following ActiveMQ's naming conventions).
 */
@Override
protected void applyAcknowledgeMode(BeanWrapper bw, int ackMode) {
	if (ackMode == Session.SESSION_TRANSACTED && bw.isWritableProperty("useRAManagedTransaction")) {
		// ActiveMQ
		bw.setPropertyValue("useRAManagedTransaction", "true");
	}
	else {
		super.applyAcknowledgeMode(bw, ackMode);
	}
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:16,代码来源:DefaultJmsActivationSpecFactory.java

示例12: populateActivationSpecProperties

import org.springframework.beans.BeanWrapper; //导入方法依赖的package包/类
/**
 * Populate the given ApplicationSpec object with the settings
 * defined in the given configuration object.
 * <p>This implementation applies all standard JMS settings, but ignores
 * "maxConcurrency" and "prefetchSize" - not supported in standard JCA 1.5.
 * @param bw the BeanWrapper wrapping the ActivationSpec object
 * @param config the configured object holding common JMS settings
 */
protected void populateActivationSpecProperties(BeanWrapper bw, JmsActivationSpecConfig config) {
	String destinationName = config.getDestinationName();
	boolean pubSubDomain = config.isPubSubDomain();
	Object destination = destinationName;
	if (this.destinationResolver != null) {
		try {
			destination = this.destinationResolver.resolveDestinationName(null, destinationName, pubSubDomain);
		}
		catch (JMSException ex) {
			throw new DestinationResolutionException("Cannot resolve destination name [" + destinationName + "]", ex);
		}
	}
	bw.setPropertyValue("destination", destination);
	bw.setPropertyValue("destinationType", pubSubDomain ? Topic.class.getName() : Queue.class.getName());

	if (bw.isWritableProperty("subscriptionDurability")) {
		bw.setPropertyValue("subscriptionDurability", config.isSubscriptionDurable() ? "Durable" : "NonDurable");
	}
	else if (config.isSubscriptionDurable()) {
		// Standard JCA 1.5 "subscriptionDurability" apparently not supported...
		throw new IllegalArgumentException(
				"Durable subscriptions not supported by underlying provider: " + this.activationSpecClass.getName());
	}
	if (config.isSubscriptionShared()) {
		throw new IllegalArgumentException("Shared subscriptions not supported for JCA-driven endpoints");
	}

	if (config.getSubscriptionName() != null) {
		bw.setPropertyValue("subscriptionName", config.getSubscriptionName());
	}
	if (config.getClientId() != null) {
		bw.setPropertyValue("clientId", config.getClientId());
	}
	if (config.getMessageSelector() != null) {
		bw.setPropertyValue("messageSelector", config.getMessageSelector());
	}
	applyAcknowledgeMode(bw, config.getAcknowledgeMode());
}
 
开发者ID:langtianya,项目名称:spring4-understanding,代码行数:47,代码来源:StandardJmsActivationSpecFactory.java


注:本文中的org.springframework.beans.BeanWrapper.isWritableProperty方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。