Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Remove introduced Fixed reference capability.
Introduce format family and use it as one of the criteria for format migration. Based on format family not it's possible to see what kind of format do we see - Standard, High limit or other based on its family that is the same across all versions.
- Loading branch information
1 parent
81fdc24
commit dd62119
Showing
21 changed files
with
287 additions
and
160 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
70 changes: 70 additions & 0 deletions
70
community/kernel/src/main/java/org/neo4j/kernel/impl/store/format/FormatFamily.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
/* | ||
* Copyright (c) 2002-2016 "Neo Technology," | ||
* Network Engine for Objects in Lund AB [http://neotechnology.com] | ||
* | ||
* This file is part of Neo4j. | ||
* | ||
* Neo4j is free software: you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License as published by | ||
* the Free Software Foundation, either version 3 of the License, or | ||
* (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
*/ | ||
package org.neo4j.kernel.impl.store.format; | ||
|
||
/** | ||
* Family of the format. Family of format is specific to a format across all version that format support. | ||
* Two formats in different versions should have same format family. | ||
* Family is one of the criteria that will determine if migration between formats is possible. | ||
*/ | ||
public abstract class FormatFamily implements Comparable<FormatFamily> | ||
{ | ||
/** | ||
* Get format family name | ||
* @return family name | ||
*/ | ||
public abstract String getName(); | ||
|
||
/** | ||
* get format family rank | ||
* @return rank | ||
*/ | ||
public abstract int rank(); | ||
|
||
@Override | ||
public int compareTo( FormatFamily formatFamily ) | ||
{ | ||
return Integer.compare( this.rank(), formatFamily.rank() ); | ||
} | ||
|
||
/** | ||
* Check if migration between provided font families is possible. | ||
* Family is upgradable if rank of the new family is higher then rank of old family | ||
* @param oldFamily old family | ||
* @param newFamily new family | ||
* @return true if upgrade between families is possible, false otherwise | ||
*/ | ||
public static boolean isUpgradable( FormatFamily oldFamily, FormatFamily newFamily ) | ||
{ | ||
return oldFamily.compareTo( newFamily ) < 0; | ||
} | ||
|
||
/** | ||
* Check if provided font families is not upgradable. | ||
* Family is not upgradable if rank of the new family is lower or equal to rank of old family | ||
* @param oldFamily old family | ||
* @param newFamily new family | ||
* @return true if families not upgradable, false otherwise | ||
*/ | ||
public static boolean isNotUpgradable( FormatFamily oldFamily, FormatFamily newFamily ) | ||
{ | ||
return oldFamily.compareTo( newFamily ) > 0; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
48 changes: 48 additions & 0 deletions
48
...ernel/src/main/java/org/neo4j/kernel/impl/store/format/standard/StandardFormatFamily.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
/* | ||
* Copyright (c) 2002-2016 "Neo Technology," | ||
* Network Engine for Objects in Lund AB [http://neotechnology.com] | ||
* | ||
* This file is part of Neo4j. | ||
* | ||
* Neo4j is free software: you can redistribute it and/or modify | ||
* it under the terms of the GNU General Public License as published by | ||
* the Free Software Foundation, either version 3 of the License, or | ||
* (at your option) any later version. | ||
* | ||
* This program is distributed in the hope that it will be useful, | ||
* but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
* GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
*/ | ||
package org.neo4j.kernel.impl.store.format.standard; | ||
|
||
import org.neo4j.kernel.impl.store.format.FormatFamily; | ||
|
||
/** | ||
* Standard format family. | ||
* @see FormatFamily | ||
*/ | ||
public class StandardFormatFamily extends FormatFamily | ||
{ | ||
public static final FormatFamily INSTANCE = new StandardFormatFamily(); | ||
|
||
private StandardFormatFamily() | ||
{ | ||
} | ||
|
||
@Override | ||
public String getName() | ||
{ | ||
return "Standard format family"; | ||
} | ||
|
||
@Override | ||
public int rank() | ||
{ | ||
return 0; | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.