Sometimes you have already a return value in your java function, but you need to update a boolean field from another function. If you try to give the reference of Java Boolean, it is not working.
public void refresh(Object data){
Boolean isChanged = Boolean.FALSE;
updateFirstPart(data, isChanged);
updateSecondPart(data, isChanged);
protected void updateFirstPart(Object data, Boolean isChanged){
if(conditions...){
data.setName("vmi");
isChanged = Boolean.TRUE;
}
}
The data will be never saved, the isChanged filed keeps the false value.
So for this we a Mutable Boolean type in Apache commons lang.
import org.apache.commons.lang3.mutable.MutableBoolean;
public void refresh(Object data){
MutableBoolean isChanged = new MutableBoolean(false);
updateFirstPart(data, isChanged);
updateSecondPart(data, isChanged);
protected void updateFirstPart(Object data, MutableBoolean isChanged){
if(conditions...){
data.setName("vmi");
isChanged.setTrue();
}
}
public void refresh(Object data){
Boolean isChanged = Boolean.FALSE;
updateFirstPart(data, isChanged);
updateSecondPart(data, isChanged);
if (isChanged) {
saveData(data);
}
}protected void updateFirstPart(Object data, Boolean isChanged){
if(conditions...){
data.setName("vmi");
isChanged = Boolean.TRUE;
}
}
The data will be never saved, the isChanged filed keeps the false value.
So for this we a Mutable Boolean type in Apache commons lang.
import org.apache.commons.lang3.mutable.MutableBoolean;
public void refresh(Object data){
MutableBoolean isChanged = new MutableBoolean(false);
updateFirstPart(data, isChanged);
updateSecondPart(data, isChanged);
if (isChanged.isTrue()) {
saveData(data);
}
}protected void updateFirstPart(Object data, MutableBoolean isChanged){
if(conditions...){
data.setName("vmi");
isChanged.setTrue();
}
}

