if (currentGraphNode.getNewInitialValue() != null) {
newObject = m.invoke(currentGraphNode.getNewInitialValue());
}
if (indexVisitor == null) {
currentGraphNode.setNext(Lists.newArrayList(new PropertyElementValue(oldObject, newObject)));
}else {
currentGraphNode.setCondition(compareDottedExpression.getIndex().toString());
if(indexVisitor.getDouble() != null) {
currentGraphNode.setNext(Lists.newArrayList(new PropertyElementValue(Objects.safeGet(oldObject,indexVisitor.getDouble().intValue()) , Objects.safeGet(newObject,indexVisitor.getDouble().intValue()))));
} else if(indexVisitor.isStar()) {
List<PropertyElementValue> next = Lists.newArrayList();
for(int i = 0; i < Objects.safeMaxSize(oldObject, newObject); i++) {
next.add(new PropertyElementValue(Objects.safeGet(oldObject,i), Objects.safeGet(newObject,i)));
}
currentGraphNode.setNext(next);
}
}
}