public FolderCreateOp(OAuth2Token token, CloudRequest request, String folderName, FileInfo parent) {
		super(OperationType.FOLDER_CREATE, token, request);
		addPropertyMapping("name", folderName);
		addPropertyMapping("id", parent.getId());
		String path = parent.getPath();
		if (path != null) {
			if (path.endsWith(FileInfo.PATH_SEPARATOR)) {
				path += folderName;
			} else {
				path += FileInfo.PATH_SEPARATOR + folderName;
			}
		}
		addPropertyMapping("path", path);
		name = folderName;
		jsonBody = request.getJsonBody();
		body = request.getBody();
		if (jsonBody != null) {
			/* remove parent entries from JSON body of the request, if there are no parents set */
			if (Utils.isNullOrEmpty(parent.getId()) && Utils.isNullOrEmpty(parent.getPath())) {
				String parentKey = "parents";
				/* seek property mapping name */
				if (request.getMapping() != null) {
					for (Entry<String, String> mapping: request.getMapping().entrySet()) {
						if (mapping.getKey().equals(parentKey)) {
							parentKey = mapping.getValue();
							break;
						}
					}
				}
				jsonBody.remove(parentKey);
			}
		}
		lock = new Object();
	}