blob: 98caa34453fff33873dcd098740bd3fa2d3a1a69 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.nifi.web.dao;
import org.apache.nifi.connectable.Connection;
import org.apache.nifi.controller.queue.DropFlowFileStatus;
import org.apache.nifi.controller.queue.ListFlowFileStatus;
import org.apache.nifi.controller.repository.FlowFileRecord;
import org.apache.nifi.web.DownloadableContent;
import org.apache.nifi.web.api.dto.ConnectionDTO;
import java.util.Set;
public interface ConnectionDAO {
/**
* Determines if the specified connection exists.
*
* @param id id
* @return true if connection exists
*/
boolean hasConnection(String id);
/**
* Gets the specified Connection.
*
* @param id The connection id
* @return The connection
*/
Connection getConnection(String id);
/**
* Gets the specified flow file drop request.
*
* @param id The id of the connection
* @param dropRequestId The drop request id
* @return The drop request status
*/
DropFlowFileStatus getFlowFileDropRequest(String id, String dropRequestId);
/**
* Gets the specified flowfile listing request.
*
* @param id connection id
* @param listingRequestId The listing request id
* @return The listing request status
*/
ListFlowFileStatus getFlowFileListingRequest(String id, String listingRequestId);
/**
* Gets the specified flowfile in the specified connection.
*
* @param id connection id
* @param flowFileUuid the flowfile uuid
* @return The flowfile
*/
FlowFileRecord getFlowFile(String id, String flowFileUuid);
/**
* Gets all of the connections.
*
* @param groupId group identifier
* @return The connections
*/
Set<Connection> getConnections(String groupId);
/**
* Creates a new Connection.
*
* @param groupId The group id
* @param connectionDTO The connection DTO
* @return The connection
*/
Connection createConnection(String groupId, ConnectionDTO connectionDTO);
/**
* Creates a new flow file drop request.
*
* @param id connection id
* @param dropRequestId drop request id
* @return The drop request status
*/
DropFlowFileStatus createFlowFileDropRequest(String id, String dropRequestId);
/**
* Creates a new flow file listing request.
*
* @param id connection id
* @param listingRequestId listing request id
* @return The listing request status
*/
ListFlowFileStatus createFlowFileListingRequest(String id, String listingRequestId);
/**
* Verifies the listing can be processed.
*
* @param id connection id
*/
void verifyList(String id);
/**
* Verifies the create request can be processed.
*
* @param groupId The group id
* @param connectionDTO connection
*/
void verifyCreate(String groupId, ConnectionDTO connectionDTO);
/**
* Verifies the update request can be processed.
*
* @param connectionDTO connection
*/
void verifyUpdate(ConnectionDTO connectionDTO);
/**
* Updates the specified Connection.
*
* @param connectionDTO The connection DTO
* @return The connection
*/
Connection updateConnection(ConnectionDTO connectionDTO);
/**
* Verifies the delete request can be processed.
*
* @param id id
*/
void verifyDelete(String id);
/**
* Deletes the specified Connection.
*
* @param id The id of the connection
*/
void deleteConnection(String id);
/**
* Deletes the specified flow file drop request.
*
* @param id The id of the connection
* @param dropRequestId The drop request id
* @return The drop request
*/
DropFlowFileStatus deleteFlowFileDropRequest(String id, String dropRequestId);
/**
* Deletes the specified flow file listing request.
*
* @param id connection id
* @param listingRequestId The listing request id
* @return The listing request status
*/
ListFlowFileStatus deleteFlowFileListingRequest(String id, String listingRequestId);
/**
* Gets the content for the specified flowfile in the specified connection.
*
* @param id connection id
* @param flowfileUuid flowfile uuid
* @param requestUri request uri
* @return The downloadable content
*/
DownloadableContent getContent(String id, String flowfileUuid, String requestUri);
}