DiagramModelCodecs constructor
DiagramModelCodecs({
- Iterable<
DiagramContentCodec> contents = const [], - Iterable<
DiagramTextCodec> texts = const [],
Implementation
factory DiagramModelCodecs({
Iterable<DiagramContentCodec> contents = const [],
Iterable<DiagramTextCodec> texts = const [],
}) {
final contentTypes = <String, DiagramContentCodec>{};
for (final codec in contents) {
if (codec.type.trim().isEmpty ||
codec.version < 1 ||
contentTypes.containsKey(codec.type)) {
throw ArgumentError(
'Invalid or duplicate content codec: ${codec.type}',
);
}
contentTypes[codec.type] = codec;
}
final textTypes = <String, DiagramTextCodec>{};
for (final codec in texts) {
final existing = textTypes[codec.type];
if (codec.type.trim().isEmpty ||
codec.version < 1 ||
(existing != null && existing != codec)) {
throw ArgumentError('Invalid or conflicting text codec: ${codec.type}');
}
textTypes[codec.type] = codec;
}
return DiagramModelCodecs._(
Map.unmodifiable(contentTypes),
Map.unmodifiable(textTypes),
);
}