rpuch commented on a change in pull request #566:
URL: https://github.com/apache/ignite-3/pull/566#discussion_r790533240



##########
File path: 
modules/page-memory/src/main/java/org/apache/ignite/internal/pagememory/io/IoVersions.java
##########
@@ -0,0 +1,128 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.pagememory.io;
+
+import org.apache.ignite.internal.tostring.IgniteToStringBuilder;
+
+/**
+ * Registry for IO versions of the same type.
+ */
+public final class IoVersions<V extends PageIo> {
+    /**
+     * Sorted array of IO objects.
+     */
+    private final V[] vers;
+
+    /**
+     * Page type.
+     */
+    private final int type;

Review comment:
       True. We could make `PageType` an interface (with one method `typeId()`) 
and add `CorePageType` that would be an enum and at the same time implement 
that interface.
   
   For non-core types, we could create a class named `SimplePageType` that 
would just implement the `PageType` storing the id inside. Or, even better, 
each module would define its own `PageType`-implementing enum, like 
`Module1PageType`.
   
   In such a way, we'd both have enum(s) (improving type-checking and 
discoverability of types in the code) and still leave a possibility for 
extension.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to