У меня есть переменная, которая состоит из структур. Эти структуры могут иметь переменные CFBoolean, больше структур и другие переменные. В начале это было вложено в два уровня. Сейчас мы продвигаемся на четыре уровня. Мне не нравится мой нынешний подход. Я также могу представить себе пять уровней. У меня нет контроля над внешней системой, которая нуждается в этих данных. Поэтому я ищу более общий подход.
function toJavaBoolean(any data){
//for now, assume it's a struct to DBO conversion
data.each(function(key, value) {
if (getMetadata(data[key]).getName() == 'coldfusion.runtime.CFBoolean') {
data[key] = javacast("boolean", data[key]);
}
if (isStruct(data[key])) {
data2 = data[key];
data2.each(function(key, value) {
if (getMetadata(data2[key]).getName() == 'coldfusion.runtime.CFBoolean') {
data2[key] = javacast("boolean", data2[key]);
}
if (isStruct(data2[key])) {
data3 = data2[key];
data3.each(function(key, value) {
if (getMetadata(data3[key]).getName() == 'coldfusion.runtime.CFBoolean') {
data3[key] = javacast("boolean", data3[key]);
}
if (isStruct(data3[key])) {
data4 = data3[key];
data4.each(function(key, value) {
if (getMetadata(data4[key]).getName() == 'coldfusion.runtime.CFBoolean') {
data4[key] = javacast("boolean", data4[key]);
}
});
}
});
}
});
}
});