All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.nifi.processor.ProcessContext Maven / Gradle / Ivy

There is a newer version: 2.0.0
Show newest version
/*
 * 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.processor;

import java.util.Map;
import java.util.Set;
import org.apache.nifi.components.PropertyDescriptor;
import org.apache.nifi.components.PropertyValue;
import org.apache.nifi.components.state.StateManager;
import org.apache.nifi.context.ClusterContext;
import org.apache.nifi.context.PropertyContext;
import org.apache.nifi.controller.ControllerServiceLookup;
import org.apache.nifi.scheduling.ExecutionNode;

/**
 * 

* Provides a bridge between a Processor and the NiFi Framework *

* *

* Note: Implementations of this interface are NOT necessarily * thread-safe. *

*/ public interface ProcessContext extends PropertyContext, ClusterContext { /** * Retrieves the current value set for the given descriptor, if a value is * set - else uses the descriptor to determine the appropriate default value * * @param propertyName of the property to lookup the value for * @return property value as retrieved by property name */ PropertyValue getProperty(String propertyName); /** * Creates and returns a {@link PropertyValue} object that can be used for * evaluating the value of the given String * * @param rawValue the raw input before any property evaluation has occurred * @return a {@link PropertyValue} object that can be used for * evaluating the value of the given String */ PropertyValue newPropertyValue(String rawValue); /** *

* Causes the Processor not to be scheduled for some pre-configured amount * of time. The duration of time for which the processor will not be * scheduled is configured in the same manner as the processor's scheduling * period. *

* *

* Note: This is NOT a blocking call and does not suspend execution * of the current thread. *

*/ void yield(); /** * @return the maximum number of threads that may be executing this * processor's code at any given time */ int getMaxConcurrentTasks(); /** * @return the Nodes where this processor will be scheduled to run. */ ExecutionNode getExecutionNode(); /** * @return the annotation data configured for this processor */ String getAnnotationData(); /** * @return a Map of all PropertyDescriptors to their configured values. This * Map may or may not be modifiable, but modifying its values will not * change the values of the processor's properties */ Map getProperties(); /** * Encrypts the given value using the password provided in the NiFi * Properties * * @param unencrypted plaintext value * @return encrypted value */ String encrypt(String unencrypted); /** * Decrypts the given value using the password provided in the NiFi * Properties * * @param encrypted the encrypted value * @return the plaintext value */ String decrypt(String encrypted); /** * @return a {@code ControllerServiceLookup} that can be used to obtain a * Controller Service */ ControllerServiceLookup getControllerServiceLookup(); /** * @return the set of all relationships for which space is available to * receive new objects */ Set getAvailableRelationships(); /** * @return true if the processor has one or more incoming connections, * false otherwise */ boolean hasIncomingConnection(); /** * @return true if the processor has one or more incoming connections for * which the source of the connection is NOT the processor; returns false if * the processor has no incoming connections or if all incoming connections are self-loops * (i.e., the processor is also the source of all incoming connections). */ boolean hasNonLoopConnection(); /** * @param relationship a relationship to check for connections * @return true if the relationship has one or more outbound connections, * false otherwise */ boolean hasConnection(Relationship relationship); /** * @param property the Property whose value should be inspected to determined if it contains an Expression Language Expression * @return true if the value of the given Property contains a NiFi Expression * Language Expression, false if it does not. Note that false will be returned if the Property Descriptor * does not allow the Expression Language, even if a seemingly valid Expression is present in the value. */ boolean isExpressionLanguagePresent(PropertyDescriptor property); /** * @return the StateManager that can be used to store and retrieve state for this component */ StateManager getStateManager(); /** * @return the configured name of this processor */ String getName(); /** * @return the configured relationships to be retried of this processor */ boolean isRelationshipRetried(Relationship relationship); /** * @return the actual value of the retry counter of this processor */ int getRetryCount(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy