public VertexLabel ensureVertexLabelExist(final String label, final Map<String, PropertyType> columns, ListOrderedSet<String> identifiers) { Objects.requireNonNull(label, "Given table must not be null"); Preconditions.checkArgument(!label.startsWith(VERTEX_PREFIX), "label may not be prefixed with \"%s\"", VERTEX_PREFIX); for (String identifier : identifiers) { Preconditions.checkState(columns.containsKey(identifier), "The identifiers must be in the specified columns. \"%s\" not found", identifier); } Optional<VertexLabel> vertexLabelOptional = this.getVertexLabel(label); if (!vertexLabelOptional.isPresent()) { this.topology.lock(); vertexLabelOptional = this.getVertexLabel(label); //noinspection OptionalIsPresent if (!vertexLabelOptional.isPresent()) { return this.createVertexLabel(label, columns, identifiers); } else { return vertexLabelOptional.get(); } } else { VertexLabel vertexLabel = vertexLabelOptional.get(); //check if all the columns are there. vertexLabel.ensurePropertiesExist(columns); return vertexLabel; } }
public VertexLabel ensureVertexLabelExist(final String label, final Map<String, PropertyType> columns, ListOrderedSet<String> identifiers) { Objects.requireNonNull(label, "Given table must not be null"); Preconditions.checkArgument(!label.startsWith(VERTEX_PREFIX), "label may not be prefixed with \"%s\"", VERTEX_PREFIX); for (String identifier : identifiers) { Preconditions.checkState(columns.containsKey(identifier), "The identifiers must be in the specified columns. \"%s\" not found", identifier); } Optional<VertexLabel> vertexLabelOptional = this.getVertexLabel(label); if (!vertexLabelOptional.isPresent()) { this.topology.lock(); vertexLabelOptional = this.getVertexLabel(label); //noinspection OptionalIsPresent if (!vertexLabelOptional.isPresent()) { return this.createVertexLabel(label, columns, identifiers); } else { return vertexLabelOptional.get(); } } else { VertexLabel vertexLabel = vertexLabelOptional.get(); //check if all the columns are there. vertexLabel.ensurePropertiesExist(columns); return vertexLabel; } }