getMergeStrategy method

MergeStrategy getMergeStrategy(
  1. ConstantReader annotation
)

Implementation

MergeStrategy getMergeStrategy(ConstantReader annotation) {
  try {
    final annotationValue = annotation.read('mergeStrategy');
    if (annotationValue.isNull) return defaultMergeStrategy;
    final objectValue = annotationValue.objectValue;
    if (objectValue.isNull) return defaultMergeStrategy;
    final mergeStrategyId = objectValue.getField('index');
    if (mergeStrategyId == null || mergeStrategyId.isNull) {
      return defaultMergeStrategy;
    }

    final mergeStrategyIndex =
        mergeStrategyId.toIntValue() ?? defaultMergeStrategy.index;

    return MergeStrategy.values.firstWhere(
      (element) => element.index == mergeStrategyIndex,
      orElse: () => defaultMergeStrategy,
    );
  } on Exception {
    return defaultMergeStrategy;
  }
}