@Override final SInstance getFieldLocalWithoutCreating(PathReader pathReader) { if (fields != null) { return fields.getByIndex(findFieldIndex(pathReader)); } return null; }
@Override final SInstance getFieldLocalWithoutCreating(PathReader pathReader) { if (fields != null) { return fields.getByIndex(findFieldIndex(pathReader)); } return null; }
@Override final SInstance getFieldLocal(PathReader pathReader) { return getField(findFieldIndex(pathReader)); }
@Override final SInstance getFieldLocal(PathReader pathReader) { return getField(findFieldIndex(pathReader)); }
@Override void setValue(PathReader pathReader, Object value) { int fieldIndex = findFieldIndex(pathReader); SInstance instancia = (fields == null) ? null : fields.getByIndex(fieldIndex); if (instancia == null) { if (value == null) { return; } instancia = createField(fieldIndex); } if (pathReader.isLast()) { if (value == null) { SInstance child = fields.getByIndex(fieldIndex); if (child != null) { child.internalOnRemove(); fields.remove(fieldIndex); } } else { instancia.setValue(value); } } else { instancia.setValue(pathReader.next(), value); } }
@Override void setValue(PathReader pathReader, Object value) { int fieldIndex = findFieldIndex(pathReader); SInstance instance = (fields == null) ? null : fields.getByIndex(fieldIndex); if (instance == null) { if (value == null) { return; } instance = createField(fieldIndex); } if (pathReader.isLast()) { if (value == null) { SInstance child = fields.getByIndex(fieldIndex); if (child != null) { child.internalOnRemove(); fields.remove(fieldIndex); } } else { instance.setValue(value); } } else { instance.setValue(pathReader.next(), value); } }