in hugegraph-core/src/main/java/org/apache/hugegraph/schema/builder/VertexLabelBuilder.java [163:205]
private boolean hasSameProperties(VertexLabel existedVertexLabel) {
HugeGraph graph = this.graph();
Set<Id> existedProperties = existedVertexLabel.properties();
if (this.properties.size() != existedProperties.size()) {
return false;
}
for (String propertyName : this.properties) {
PropertyKey propertyKey = graph.propertyKey(propertyName);
if (!existedProperties.contains(propertyKey.id())) {
return false;
}
}
List<Id> existedPrimaryKeys = existedVertexLabel.primaryKeys();
if (this.primaryKeys.size() != existedPrimaryKeys.size()) {
return false;
}
for (String primaryKeyName : this.primaryKeys) {
PropertyKey primaryKey = graph.propertyKey(primaryKeyName);
if (!existedPrimaryKeys.contains(primaryKey.id())) {
return false;
}
}
Set<Id> existedNullableKeys = existedVertexLabel.nullableKeys();
if (this.nullableKeys.size() != existedNullableKeys.size()) {
return false;
}
for (String nullableKeyName : this.nullableKeys) {
PropertyKey nullableKey = graph.propertyKey(nullableKeyName);
if (!existedNullableKeys.contains(nullableKey.id())) {
return false;
}
}
// this.enableLabelIndex == null, it means true.
if (this.enableLabelIndex == null || this.enableLabelIndex) {
return existedVertexLabel.enableLabelIndex();
} else { // this.enableLabelIndex is false
return !existedVertexLabel.enableLabelIndex();
}
}