/*
* Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.runtime.config.spring.dsl.spring;
import org.mule.runtime.config.spring.dsl.model.ComponentModel;
/**
* Holder for the component identifier, it's bean value and the object {@code Class} that will be created from it.
*
* The bean value currently it's of an Object type since it can be a
* {@link org.springframework.beans.factory.config.BeanDefinition} or a
* {@link org.springframework.beans.factory.config.RuntimeBeanReference}
*
* @since 4.0
*/
class ComponentValue {
private final Class<?> type;
private final Object bean;
private final ComponentModel componentModel;
/**
* @param componentModel the component for which the bean definition is provided
* @param type the type of the object to be created
* @param bean the bean definition
*/
public ComponentValue(ComponentModel componentModel, Class<?> type, Object bean) {
this.componentModel = componentModel;
this.type = type;
this.bean = bean;
}
/**
* @return the object type that will be created from the bean value
*/
public Class<?> getType() {
return type;
}
/**
* @return the bean value definition. It may be a {@link org.springframework.beans.factory.config.RuntimeBeanReference} or a
* {@link org.springframework.beans.factory.config.BeanDefinition}
*/
public Object getBean() {
return bean;
}
/**
* @return the component model associated to the configuration.
*/
public ComponentModel getComponentModel() {
return componentModel;
}
}