| /* |
| * 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.ode.bpel.pmapi; |
| |
| import org.w3c.dom.Node; |
| |
| import javax.xml.namespace.QName; |
| |
| /** |
| * Process Management API |
| */ |
| public interface ProcessManagement { |
| |
| /** |
| * List the processes known to the engine (including instance summaries). |
| * @param filter selection filter or <code>null</code> (for no filtering). |
| * @param orderKeys keys used to order the results |
| * @return list of {@link ProcessInfoDocument}s (including instance summaries) |
| */ |
| ProcessInfoListDocument listProcesses(String filter, String orderKeys); |
| |
| /** |
| * List the processes known to the engine. |
| * @param filter selection filter or <code>null</code> (for no filtering). |
| * @param orderKeys keys used to order the results |
| * @param custom used to customize the quantity of information returned |
| * @return list of {@link ProcessInfoDocument}s (including instance summaries) |
| */ |
| ProcessInfoListDocument listProcessesCustom(String filter, String orderKeys, ProcessInfoCustomizer custom); |
| |
| /** |
| * List the processes known to the engine. |
| * @return list of {@link ProcessInfoDocument}s (including instance summaries) |
| */ |
| ProcessInfoListDocument listAllProcesses(); |
| |
| /** |
| * Get the process info for a process. |
| * @param pid name of the process |
| * @param custom used to customize the quantity of information returned |
| * @return {@link ProcessInfoDocument} |
| */ |
| ProcessInfoDocument getProcessInfoCustom(QName pid, ProcessInfoCustomizer custom) throws ManagementException; |
| |
| /** |
| * Get the process info for a process (includingthe instance summary). |
| * @param pid name of the process |
| * @return {@link ProcessInfoDocument} with all details. |
| */ |
| ProcessInfoDocument getProcessInfo(QName pid) throws ManagementException; |
| |
| /** |
| * Get all extensibility elements associated with provided activity ids. Extensibility |
| * elements are extracted from the original BPEL document. |
| * @param pid process identifier |
| * @param aids activity indentifiers |
| * @return a list of activity extension as {@link ActivityExtInfoListDocument} |
| */ |
| ActivityExtInfoListDocument getExtensibilityElements(QName pid, Integer[] aids); |
| |
| |
| /** |
| * Set a process property as a Node. |
| * @param pid name of process |
| * @param propertyName qname of property |
| * @param value property value |
| * @return {@link ProcessInfoDocument} reflecting the modification |
| */ |
| ProcessInfoDocument setProcessPropertyNode(QName pid, QName propertyName, Node value) |
| throws ManagementException; |
| |
| /** |
| * Set a process property as a simple type. |
| * @param pid name of process |
| * @param propertyName qname of property |
| * @param value property value |
| * @return {@link ProcessInfoDocument} reflecting the modification |
| */ |
| ProcessInfoDocument setProcessProperty(QName pid, QName propertyName, String value) |
| throws ManagementException; |
| |
| /** |
| * Activate a process. |
| * @param pid identifier for the process to load |
| * @return {@link ProcessInfoDocument} reflecting the modification |
| */ |
| ProcessInfoDocument activate(QName pid) |
| throws ManagementException; |
| |
| /** |
| * Retire a process. |
| * @param pid identifier of the process to retire |
| * @param retired TODO |
| * @return {@link ProcessInfoDocument} reflecting the modification |
| */ |
| ProcessInfoDocument setRetired(QName pid, boolean retired) |
| throws ManagementException; |
| |
| /** |
| * Retires all the processes contained in a package. |
| * @param packageName |
| * @param retired |
| */ |
| void setPackageRetired(final String packageName, final boolean retired); |
| } |