@@ -1007,7 +1007,7 @@ public void writeImageSingletonInfo(List<Map.Entry<Class<?>, Object>> layeredIma
1007
1007
}
1008
1008
String key = singletonInfo .getKey ().getName ();
1009
1009
if (!singletonInfoMap .containsKey (singleton )) {
1010
- var writer = new ImageSingletonWriterImpl ();
1010
+ var writer = new ImageSingletonWriterImpl (snapshotBuilder );
1011
1011
var flags = singleton .preparePersist (writer );
1012
1012
boolean persistData = flags == LayeredImageSingleton .PersistFlags .CREATE ;
1013
1013
var info = new SingletonPersistInfo (flags , persistData ? nextID ++ : -1 , persistData ? writer .getKeyValueStore () : null );
@@ -1069,59 +1069,68 @@ private static void writeImageSingletonKeyStore(ImageSingletonObject.Builder obj
1069
1069
}
1070
1070
}
1071
1071
}
1072
- }
1073
1072
1074
- class ImageSingletonWriterImpl implements ImageSingletonWriter {
1075
- private final EconomicMap <String , Object > keyValueStore = EconomicMap .create ();
1073
+ public static class ImageSingletonWriterImpl implements ImageSingletonWriter {
1074
+ private final EconomicMap <String , Object > keyValueStore = EconomicMap .create ();
1075
+ private final SharedLayerSnapshotCapnProtoSchemaHolder .SharedLayerSnapshot .Builder snapshotBuilder ;
1076
1076
1077
- EconomicMap < String , Object > getKeyValueStore ( ) {
1078
- return keyValueStore ;
1079
- }
1077
+ ImageSingletonWriterImpl ( SharedLayerSnapshotCapnProtoSchemaHolder . SharedLayerSnapshot . Builder snapshotBuilder ) {
1078
+ this . snapshotBuilder = snapshotBuilder ;
1079
+ }
1080
1080
1081
- private static boolean nonNullEntries ( List <?> list ) {
1082
- return list . stream (). filter ( Objects :: isNull ). findAny (). isEmpty () ;
1083
- }
1081
+ EconomicMap < String , Object > getKeyValueStore ( ) {
1082
+ return keyValueStore ;
1083
+ }
1084
1084
1085
- @ Override
1086
- public void writeBoolList (String keyName , List <Boolean > value ) {
1087
- assert nonNullEntries (value );
1088
- boolean [] b = new boolean [value .size ()];
1089
- for (int i = 0 ; i < value .size (); i ++) {
1090
- b [i ] = value .get (i );
1085
+ private static boolean nonNullEntries (List <?> list ) {
1086
+ return list .stream ().filter (Objects ::isNull ).findAny ().isEmpty ();
1091
1087
}
1092
- var previous = keyValueStore .put (keyName , b );
1093
- assert previous == null : Assertions .errorMessage (keyName , previous );
1094
- }
1095
1088
1096
- @ Override
1097
- public void writeInt (String keyName , int value ) {
1098
- var previous = keyValueStore .put (keyName , value );
1099
- assert previous == null : previous ;
1100
- }
1089
+ @ Override
1090
+ public void writeBoolList (String keyName , List <Boolean > value ) {
1091
+ assert nonNullEntries (value );
1092
+ boolean [] b = new boolean [value .size ()];
1093
+ for (int i = 0 ; i < value .size (); i ++) {
1094
+ b [i ] = value .get (i );
1095
+ }
1096
+ var previous = keyValueStore .put (keyName , b );
1097
+ assert previous == null : Assertions .errorMessage (keyName , previous );
1098
+ }
1101
1099
1102
- @ Override
1103
- public void writeIntList (String keyName , List <Integer > value ) {
1104
- assert nonNullEntries (value );
1105
- var previous = keyValueStore .put (keyName , value .stream ().mapToInt (i -> i ).toArray ());
1106
- assert previous == null : Assertions .errorMessage (keyName , previous );
1107
- }
1100
+ @ Override
1101
+ public void writeInt (String keyName , int value ) {
1102
+ var previous = keyValueStore .put (keyName , value );
1103
+ assert previous == null : previous ;
1104
+ }
1108
1105
1109
- @ Override
1110
- public void writeLong (String keyName , long value ) {
1111
- var previous = keyValueStore .put (keyName , value );
1112
- assert previous == null : Assertions .errorMessage (keyName , previous );
1113
- }
1106
+ @ Override
1107
+ public void writeIntList (String keyName , List <Integer > value ) {
1108
+ assert nonNullEntries (value );
1109
+ var previous = keyValueStore .put (keyName , value .stream ().mapToInt (i -> i ).toArray ());
1110
+ assert previous == null : Assertions .errorMessage (keyName , previous );
1111
+ }
1114
1112
1115
- @ Override
1116
- public void writeString (String keyName , String value ) {
1117
- var previous = keyValueStore .put (keyName , value );
1118
- assert previous == null : Assertions .errorMessage (keyName , previous );
1119
- }
1113
+ @ Override
1114
+ public void writeLong (String keyName , long value ) {
1115
+ var previous = keyValueStore .put (keyName , value );
1116
+ assert previous == null : Assertions .errorMessage (keyName , previous );
1117
+ }
1120
1118
1121
- @ Override
1122
- public void writeStringList (String keyName , List <String > value ) {
1123
- assert nonNullEntries (value );
1124
- var previous = keyValueStore .put (keyName , value .toArray (String []::new ));
1125
- assert previous == null : Assertions .errorMessage (keyName , previous );
1119
+ @ Override
1120
+ public void writeString (String keyName , String value ) {
1121
+ var previous = keyValueStore .put (keyName , value );
1122
+ assert previous == null : Assertions .errorMessage (keyName , previous );
1123
+ }
1124
+
1125
+ @ Override
1126
+ public void writeStringList (String keyName , List <String > value ) {
1127
+ assert nonNullEntries (value );
1128
+ var previous = keyValueStore .put (keyName , value .toArray (String []::new ));
1129
+ assert previous == null : Assertions .errorMessage (keyName , previous );
1130
+ }
1131
+
1132
+ public SharedLayerSnapshotCapnProtoSchemaHolder .SharedLayerSnapshot .Builder getSnapshotBuilder () {
1133
+ return snapshotBuilder ;
1134
+ }
1126
1135
}
1127
1136
}
0 commit comments