in hugegraph-test/src/main/java/org/apache/hugegraph/tinkerpop/TestGraph.java [167:214]
public Vertex addVertex(Object... keyValues) {
boolean needRedefineSchema = false;
boolean hasId = false;
IdStrategy idStrategy = IdStrategy.AUTOMATIC;
String defaultVL = DEFAULT_VL;
for (int i = 0; i < keyValues.length; i += 2) {
if (keyValues[i] == null) {
continue;
}
if (keyValues[i].equals(T.id)) {
hasId = true;
}
if (keyValues[i].equals(T.label) &&
i + 1 < keyValues.length &&
"person".equals(keyValues[i + 1]) &&
this.loadedGraph == null &&
!this.autoPerson) {
needRedefineSchema = true;
defaultVL = "person";
}
}
if (needRedefineSchema && this.loadedGraph == null) {
this.clearSchema();
this.tx().commit();
this.initBasicSchema(idStrategy, defaultVL);
this.tx().commit();
if (!this.autoPerson &&
"person".equals(defaultVL) &&
idStrategy == IdStrategy.AUTOMATIC) {
this.autoPerson = true;
}
this.isLastIdCustomized = idStrategy == IdStrategy.CUSTOMIZE_STRING;
}
if (!hasId && (this.isLastIdCustomized || needAddIdToLoadGraph())) {
List<Object> kvs = new ArrayList<>(Arrays.asList(keyValues));
kvs.add(T.id);
kvs.add(String.valueOf(id++));
keyValues = kvs.toArray();
}
return this.graph.addVertex(keyValues);
}