class GraphEntityOperations extends GraphOperations {

	public GraphMutationResult createEntity(NewEntity newEntity) {
		String entityId = newEntity.getEntityID().toString();
		Map<Attribute.Name, Object> attributes = newEntity.getAttributes();
		// convert the entity attributes to a valid gremlin string to save in
		// DSE
		String entityProperty = attributes.entrySet().stream()
				.map(e -> String.format(GraphOperations.ENTITY_PROPERTY_FORMAT, e.getKey(), e.getValue()))
				.collect(Collectors.joining());

		StringBuilder sb = new StringBuilder();

		Attribute.Name labelKey = Attribute.Name.valueOf("dse.vertex.Label");
		if (attributes.containsKey(labelKey)) {
			sb.append(String.format(GraphOperations.ADD_ENTITY_WITH_LABEL, (String) attributes.get(labelKey)));
		} else {
			sb.append(GraphOperations.ADD_ENTITY);
		}

		sb.append(String.format(GraphOperations.ENTITY_PROPERTY_FORMAT, ENTITY_ID.toString(), entityId));
		sb.append(entityProperty);

		// call a method to execute the query from this string and get the
		// result
		GraphResultSet result = executeGraphQuery(sb);
		
		return extractGraphQueryResult(result);
	}

	public  GraphEntityOperations(DSEConnectionManager connectionManager,
			GraphRelationshipOperations relationshipOperations);

}