Skip to content

Commit c83cb4e

Browse files
committed
forwarding parent objectId
1 parent e1341a1 commit c83cb4e

19 files changed

+120
-79
lines changed

examples/custom-type-handler/src/main/java/org/eclipse/store/examples/customtypehandler/OrderBinaryHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ public final void store(
8181

8282
// write order values
8383
bytes.store_long(BINARY_OFFSET_timestamp , instance.getTimestamp().getTime() );
84-
bytes.store_long(BINARY_OFFSET_customerNumber, linker.apply(instance.getCustomerNumber()));
84+
bytes.store_long(BINARY_OFFSET_customerNumber, linker.apply(instance.getCustomerNumber(), oid));
8585

8686
// set element list header
8787
bytes.storeListHeader(

gigamap/gigamap/src/main/java/org/eclipse/store/gigamap/types/AbstractBinaryHandlerAbstractBitmapIndexBinary.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,11 @@
1717
import org.eclipse.serializer.memory.XMemory;
1818
import org.eclipse.serializer.persistence.binary.types.AbstractBinaryHandlerCustom;
1919
import org.eclipse.serializer.persistence.binary.types.Binary;
20-
import org.eclipse.serializer.persistence.types.*;
20+
import org.eclipse.serializer.persistence.types.Persistence;
21+
import org.eclipse.serializer.persistence.types.PersistenceFunction;
22+
import org.eclipse.serializer.persistence.types.PersistenceLoadHandler;
23+
import org.eclipse.serializer.persistence.types.PersistenceReferenceLoader;
24+
import org.eclipse.serializer.persistence.types.PersistenceStoreHandler;
2125
import org.eclipse.serializer.util.X;
2226

2327

@@ -81,7 +85,7 @@ public void internalStore(
8185

8286
// store super class' fields AFTER the entity header has been written (and buffer space has been reserved).
8387
super.internalStore(data, instance, objectId, handler);
84-
data.storeReference(BINARY_OFFSET_indexer, handler, XMemory.getObject(instance, MEMORY_OFFSET_indexer));
88+
data.storeReference(BINARY_OFFSET_indexer, handler, XMemory.getObject(instance, MEMORY_OFFSET_indexer), objectId);
8589
}
8690

8791
@Override
@@ -136,11 +140,11 @@ protected <E> void setBackReferences(
136140
}
137141

138142
@Override
139-
public void iterateInstanceReferences(final I instance, final PersistenceFunction iterator)
143+
public void iterateInstanceReferences(final I instance, final PersistenceFunction iterator, final long parentId)
140144
{
141-
super.iterateInstanceReferences(instance, iterator);
142-
iterator.apply(instance.indexer);
143-
Persistence.iterateReferences(iterator, instance.entries);
145+
super.iterateInstanceReferences(instance, iterator, parentId);
146+
iterator.apply(instance.indexer, parentId);
147+
Persistence.iterateReferences(iterator, instance.entries, parentId);
144148
}
145149

146150
@Override

gigamap/gigamap/src/main/java/org/eclipse/store/gigamap/types/AbstractBinaryHandlerAbstractBitmapIndexHashing.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@
1818
import org.eclipse.serializer.collections.KeyValueFlatCollector;
1919
import org.eclipse.serializer.memory.XMemory;
2020
import org.eclipse.serializer.persistence.binary.types.Binary;
21-
import org.eclipse.serializer.persistence.types.*;
21+
import org.eclipse.serializer.persistence.types.Persistence;
22+
import org.eclipse.serializer.persistence.types.PersistenceFunction;
23+
import org.eclipse.serializer.persistence.types.PersistenceLoadHandler;
24+
import org.eclipse.serializer.persistence.types.PersistenceReferenceLoader;
25+
import org.eclipse.serializer.persistence.types.PersistenceStoreHandler;
2226
import org.eclipse.serializer.util.X;
2327

2428

@@ -89,7 +93,7 @@ protected void internalStore(
8993

9094
// store super class' fields AFTER the entity header has been written (and buffer space has been reserved).
9195
super.internalStore(data, instance, objectId, handler);
92-
data.storeReference(BINARY_OFFSET_indexer, handler, XMemory.getObject(instance, MEMORY_OFFSET_indexer));
96+
data.storeReference(BINARY_OFFSET_indexer, handler, XMemory.getObject(instance, MEMORY_OFFSET_indexer), objectId);
9397
}
9498

9599
@Override
@@ -153,12 +157,12 @@ private void addEntry(
153157
}
154158

155159
@Override
156-
public void iterateInstanceReferences(final I instance, final PersistenceFunction iterator)
160+
public void iterateInstanceReferences(final I instance, final PersistenceFunction iterator, final long parentId)
157161
{
158-
super.iterateInstanceReferences(instance, iterator);
162+
super.iterateInstanceReferences(instance, iterator, parentId);
159163

160-
iterator.apply(instance.indexer);
161-
Persistence.iterateReferences(iterator, instance.entries);
164+
iterator.apply(instance.indexer, parentId);
165+
Persistence.iterateReferences(iterator, instance.entries, parentId);
162166
}
163167

164168
@Override

gigamap/gigamap/src/main/java/org/eclipse/store/gigamap/types/AbstractBinaryHandlerAbstractCompositeBitmapIndex.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,11 @@
1616

1717
import org.eclipse.serializer.memory.XMemory;
1818
import org.eclipse.serializer.persistence.binary.types.Binary;
19-
import org.eclipse.serializer.persistence.types.*;
19+
import org.eclipse.serializer.persistence.types.Persistence;
20+
import org.eclipse.serializer.persistence.types.PersistenceFunction;
21+
import org.eclipse.serializer.persistence.types.PersistenceLoadHandler;
22+
import org.eclipse.serializer.persistence.types.PersistenceReferenceLoader;
23+
import org.eclipse.serializer.persistence.types.PersistenceStoreHandler;
2024
import org.eclipse.serializer.util.X;
2125

2226

@@ -80,7 +84,7 @@ protected void internalStore(
8084

8185
// store super class' fields AFTER the entity header has been written (and buffer space has been reserved).
8286
super.internalStore(data, instance, objectId, handler);
83-
data.storeReference(BINARY_OFFSET_indexer, handler, XMemory.getObject(instance, MEMORY_OFFSET_indexer));
87+
data.storeReference(BINARY_OFFSET_indexer, handler, XMemory.getObject(instance, MEMORY_OFFSET_indexer), objectId);
8488
}
8589

8690
@SuppressWarnings("unchecked")
@@ -123,12 +127,12 @@ protected <E> void internalUpdateState(
123127
}
124128

125129
@Override
126-
public void iterateInstanceReferences(final C instance, final PersistenceFunction iterator)
130+
public void iterateInstanceReferences(final C instance, final PersistenceFunction iterator, final long parentId)
127131
{
128-
iterator.apply(instance.parent);
129-
iterator.apply(instance.name);
130-
iterator.apply(instance.indexer);
131-
Persistence.iterateReferences(iterator, instance.subIndices);
132+
iterator.apply(instance.parent, parentId);
133+
iterator.apply(instance.name, parentId);
134+
iterator.apply(instance.indexer, parentId);
135+
Persistence.iterateReferences(iterator, instance.subIndices, parentId);
132136
}
133137

134138
@Override

gigamap/gigamap/src/main/java/org/eclipse/store/gigamap/types/AbstractBinaryHandlerBitmapIndexAbstract.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,11 @@
1717
import org.eclipse.serializer.collections.types.XGettingCollection;
1818
import org.eclipse.serializer.memory.XMemory;
1919
import org.eclipse.serializer.persistence.binary.types.Binary;
20-
import org.eclipse.serializer.persistence.types.*;
20+
import org.eclipse.serializer.persistence.types.PersistenceFunction;
21+
import org.eclipse.serializer.persistence.types.PersistenceLoadHandler;
22+
import org.eclipse.serializer.persistence.types.PersistenceReferenceLoader;
23+
import org.eclipse.serializer.persistence.types.PersistenceStoreHandler;
24+
import org.eclipse.serializer.persistence.types.PersistenceTypeDefinitionMemberFieldGeneric;
2125
import org.eclipse.serializer.util.X;
2226

2327

@@ -87,8 +91,8 @@ protected void internalStore(
8791
)
8892
{
8993
// no entity header here! The specific classes must store the header with the exact content length and THEN call this method.
90-
data.storeReference(BINARY_OFFSET_parent, handler, XMemory.getObject(instance, MEMORY_OFFSET_parent));
91-
data.storeReference(BINARY_OFFSET_name , handler, XMemory.getObject(instance, MEMORY_OFFSET_name ));
94+
data.storeReference(BINARY_OFFSET_parent, handler, XMemory.getObject(instance, MEMORY_OFFSET_parent), objectId);
95+
data.storeReference(BINARY_OFFSET_name , handler, XMemory.getObject(instance, MEMORY_OFFSET_name ), objectId);
9296
}
9397

9498
@Override
@@ -132,10 +136,10 @@ protected <E> void internalUpdateState(
132136
}
133137

134138
@Override
135-
public void iterateInstanceReferences(final I instance, final PersistenceFunction iterator)
139+
public void iterateInstanceReferences(final I instance, final PersistenceFunction iterator, final long parentId)
136140
{
137-
iterator.apply(instance.parent);
138-
iterator.apply(instance.name);
141+
iterator.apply(instance.parent, parentId);
142+
iterator.apply(instance.name, parentId);
139143
}
140144

141145
@Override

gigamap/gigamap/src/main/java/org/eclipse/store/gigamap/types/BinaryHandlerBitmapEntry.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public void internalStore(
106106
)
107107
{
108108
data.storeEntityHeader(BINARY_LENGTH, this.typeId(), objectId);
109-
data.storeReference (BINARY_OFFSET_level3 , handler, XMemory.getObject(instance, MEMORY_OFFSET_level3));
109+
data.storeReference (BINARY_OFFSET_level3 , handler, XMemory.getObject(instance, MEMORY_OFFSET_level3), objectId);
110110
data.store_int (BINARY_OFFSET_position, instance.position());
111111
}
112112

@@ -139,9 +139,9 @@ public void updateState(
139139
}
140140

141141
@Override
142-
public void iterateInstanceReferences(final BitmapEntry<?, ?, ?> instance, final PersistenceFunction iterator)
142+
public void iterateInstanceReferences(final BitmapEntry<?, ?, ?> instance, final PersistenceFunction iterator, final long parentId)
143143
{
144-
iterator.apply(instance.level3);
144+
iterator.apply(instance.level3, parentId);
145145
}
146146

147147
@Override

gigamap/gigamap/src/main/java/org/eclipse/store/gigamap/types/BinaryHandlerBitmapIndexSingle.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,8 @@ public void internalStore(
101101

102102
// store super class' fields AFTER the entity header has been written (and buffer space has been reserved).
103103
super.internalStore(data, instance, objectId, handler);
104-
data.storeReference(BINARY_OFFSET_indexer, handler, XMemory.getObject(instance, MEMORY_OFFSET_indexer));
105-
data.storeReference(BINARY_OFFSET_entry , handler, XMemory.getObject(instance, MEMORY_OFFSET_entry ));
104+
data.storeReference(BINARY_OFFSET_indexer, handler, XMemory.getObject(instance, MEMORY_OFFSET_indexer), objectId);
105+
data.storeReference(BINARY_OFFSET_entry , handler, XMemory.getObject(instance, MEMORY_OFFSET_entry ), objectId);
106106
}
107107

108108
@Override
@@ -146,11 +146,11 @@ protected <E> void internalUpdateState(
146146
}
147147

148148
@Override
149-
public void iterateInstanceReferences(final SingleBitmapIndex<?> instance, final PersistenceFunction iterator)
149+
public void iterateInstanceReferences(final SingleBitmapIndex<?> instance, final PersistenceFunction iterator, final long parentId)
150150
{
151-
super.iterateInstanceReferences(instance, iterator);
152-
iterator.apply(instance.indexer);
153-
iterator.apply(instance.entry);
151+
super.iterateInstanceReferences(instance, iterator, parentId);
152+
iterator.apply(instance.indexer, parentId);
153+
iterator.apply(instance.entry, parentId);
154154
}
155155

156156
@Override

gigamap/gigamap/src/main/java/org/eclipse/store/gigamap/types/BinaryHandlerBitmapIndicesDefault.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@
1818
import org.eclipse.serializer.collections.types.XImmutableEnum;
1919
import org.eclipse.serializer.memory.XMemory;
2020
import org.eclipse.serializer.persistence.binary.types.Binary;
21-
import org.eclipse.serializer.persistence.types.*;
21+
import org.eclipse.serializer.persistence.types.Persistence;
22+
import org.eclipse.serializer.persistence.types.PersistenceFunction;
23+
import org.eclipse.serializer.persistence.types.PersistenceLoadHandler;
24+
import org.eclipse.serializer.persistence.types.PersistenceReferenceLoader;
25+
import org.eclipse.serializer.persistence.types.PersistenceStoreHandler;
2226

2327

2428
/**
@@ -109,7 +113,7 @@ protected void internalStore(
109113
)
110114
{
111115
data.storeEntityHeader(BINARY_LENGTH, this.typeId(), objectId);
112-
data.storeReference (BINARY_OFFSET_parent, handler, instance.parentMap());
116+
data.storeReference (BINARY_OFFSET_parent, handler, instance.parentMap(), objectId);
113117

114118
// tricky: both indices collections must be stored eagerly to cover newly added indices
115119
data.storeReferenceEager(BINARY_OFFSET_bitmapIndices , handler, instance.bitmapIndices() );
@@ -192,12 +196,12 @@ public void complete(final Binary data, final BitmapIndices.Default<?> instance,
192196
}
193197

194198
@Override
195-
public void iterateInstanceReferences(final BitmapIndices.Default<?> instance, final PersistenceFunction iterator)
199+
public void iterateInstanceReferences(final BitmapIndices.Default<?> instance, final PersistenceFunction iterator, final long parentId)
196200
{
197-
iterator.apply(instance.parent);
198-
Persistence.iterateReferences(iterator, instance.bitmapIndices);
199-
Persistence.iterateReferences(iterator, instance.identityIndices);
200-
Persistence.iterateReferences(iterator, instance.uniqueConstraints);
201+
iterator.apply(instance.parent, parentId);
202+
Persistence.iterateReferences(iterator, instance.bitmapIndices, parentId);
203+
Persistence.iterateReferences(iterator, instance.identityIndices, parentId);
204+
Persistence.iterateReferences(iterator, instance.uniqueConstraints, parentId);
201205
}
202206

203207
@Override

gigamap/gigamap/src/main/java/org/eclipse/store/gigamap/types/BinaryHandlerBitmapLevel3.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,11 @@
1515
*/
1616

1717
import org.eclipse.serializer.persistence.binary.types.Binary;
18-
import org.eclipse.serializer.persistence.types.*;
18+
import org.eclipse.serializer.persistence.types.Persistence;
19+
import org.eclipse.serializer.persistence.types.PersistenceFunction;
20+
import org.eclipse.serializer.persistence.types.PersistenceLoadHandler;
21+
import org.eclipse.serializer.persistence.types.PersistenceReferenceLoader;
22+
import org.eclipse.serializer.persistence.types.PersistenceStoreHandler;
1923
import org.eclipse.serializer.typing.XTypes;
2024
import org.eclipse.serializer.util.X;
2125

@@ -143,9 +147,9 @@ private static int determineEffectiveLength(final Object[] array)
143147
}
144148

145149
@Override
146-
public void iterateInstanceReferences(final BitmapLevel3 instance, final PersistenceFunction iterator)
150+
public void iterateInstanceReferences(final BitmapLevel3 instance, final PersistenceFunction iterator, final long parentId)
147151
{
148-
Persistence.iterateReferences(iterator, instance.segments(), 0, instance.localSegmentCount());
152+
Persistence.iterateReferences(iterator, instance.segments(), 0, instance.localSegmentCount(), parentId);
149153
}
150154

151155
@Override

gigamap/gigamap/src/main/java/org/eclipse/store/gigamap/types/BinaryHandlerCustomConstraintsDefault.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,11 +104,11 @@ protected void internalStore(
104104

105105
data.store_long(
106106
BINARY_OFFSET_parent,
107-
handler.apply(XMemory.getObject(instance, MEMORY_OFFSET_parent))
107+
handler.apply(XMemory.getObject(instance, MEMORY_OFFSET_parent), objectId)
108108
);
109109
data.store_long(
110110
BINARY_OFFSET_elements,
111-
handler.apply(instance.elements())
111+
handler.apply(instance.elements(), objectId)
112112
);
113113
}
114114

0 commit comments

Comments
 (0)