2011-02-03 8 views
5

¿Alguien sabe de algún soporte existente para modificar propiedades individuales de objetos inmutables almacenados bajo un objeto compatible con JavaBean?Soporte de Javabean existente para cambiar subpropiedades inmutables

Para un ejemplo trivial:

Para la clase de valor inmutable dado y objeto bean (no está preocupado por los oyentes de este):

public class ValueObject { 
    private final int value; 

    public ValueObject(int value) { 
     this.value = value; 
    } 

    public ValueObject withValue(int newValue) { 
     return new ValueObject(value); 
    } 
} 

public class Bean { 

    private ValueObject value; 

    public ValueObject getValue() { 
     return value; 
    } 

    public ValueObject setValue(ValueObject value) { 
     this.value = value; 
    } 
} 

Ya es posible ver la propiedad como bean.value.value.

Estoy buscando para ver si hay una manera existente de decir bean.value.value = 3 y básicamente tener una llamada equivalente a bean.setValue(bean.getValue().withValue(3));.

Tenga en cuenta que el objeto de valor real es significativamente más complicado.

Gracias!

Respuesta

1

Intentaré crear una clase BeanInfo para la clase de bean que especifique el método del mutador de propiedades usando setWriteMethod. Este método de escritura puede tomar el valor int primitivo y crear el objeto de valor inmutable a partir de él y asignarlo al campo de propiedad.

Cuestiones relacionadas