diff options
author | Michael Hwang <mhwang@research.att.com> | 2019-11-11 14:31:28 -0500 |
---|---|---|
committer | Michael Hwang <mhwang@research.att.com> | 2019-11-18 17:06:45 -0500 |
commit | 566a0d2c4e917fd03b0126b5cc610539f3db3cb1 (patch) | |
tree | e2abec4b0a9ea77c09e7de666c3b115ae55c0845 /mod/genprocessor/src/main/java/org/onap/dcae/genprocessor/DCAEProcessor.java | |
parent | 849da15d5b7ddc68e4c2b90b603fc8948d4b5e6d (diff) |
Add genprocessor project
Signed-off-by: Michael Hwang <mhwang@research.att.com>
Issue-ID: DCAEGEN2-1860
Change-Id: Ie22a30ed8c72327ff0a28afa64ae53d8d6458a0c
Diffstat (limited to 'mod/genprocessor/src/main/java/org/onap/dcae/genprocessor/DCAEProcessor.java')
-rw-r--r-- | mod/genprocessor/src/main/java/org/onap/dcae/genprocessor/DCAEProcessor.java | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/mod/genprocessor/src/main/java/org/onap/dcae/genprocessor/DCAEProcessor.java b/mod/genprocessor/src/main/java/org/onap/dcae/genprocessor/DCAEProcessor.java new file mode 100644 index 0000000..b920b90 --- /dev/null +++ b/mod/genprocessor/src/main/java/org/onap/dcae/genprocessor/DCAEProcessor.java @@ -0,0 +1,92 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * Licensed 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. + * ============LICENSE_END========================================================= + */ +package org.onap.dcae.genprocessor; + +import java.util.List; +import java.util.Set; + +import org.apache.nifi.components.PropertyDescriptor; +import org.apache.nifi.processor.AbstractProcessor; +import org.apache.nifi.processor.ProcessContext; +import org.apache.nifi.processor.ProcessSession; +import org.apache.nifi.processor.Relationship; +import org.apache.nifi.processor.exception.ProcessException; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +public abstract class DCAEProcessor extends AbstractProcessor { + + static final Logger LOG = LoggerFactory.getLogger(DCAEProcessor.class); + + // These are properties of the DCAE component that may be useful in the future.. + abstract public String getName(); + abstract public String getVersion(); + abstract public String getComponentId(); + abstract public String getComponentUrl(); + + public void ping() { + LOG.info("pong"); + } + + @Override + public void onTrigger(ProcessContext arg0, ProcessSession arg1) throws ProcessException { + LOG.info("Bang you triggered DCAEProcessor!"); + return; + } + + /** + * This function gets implemented by the ProcessorBuilder magic to build a new custom list of + * PropertyDescriptor every time. This is to be used by getSupportedPropertyDescriptors() which + * *should* only call this method once to initially fill the cache. + * + * @return list of PropertyDescriptor + */ + abstract protected List<PropertyDescriptor> buildSupportedPropertyDescriptors(); + + // Cache of PropertyDescriptors which should be static + private List<PropertyDescriptor> properties; + + /** + * This is the critical Nifi function that is used to populate the configuration parameters + * in the UI and drive all the other configuration related functions in the ConfigurableComponent + * base class + */ + @Override + protected List<PropertyDescriptor> getSupportedPropertyDescriptors() { + if (this.properties == null) { + this.properties = buildSupportedPropertyDescriptors(); + } + return this.properties; + } + + abstract protected Set<Relationship> buildRelationships(); + + // Cache of Relationships which should be static + private Set<Relationship> relationships; + + @Override + public Set<Relationship> getRelationships() { + if (this.relationships == null) { + this.relationships = buildRelationships(); + } + return this.relationships; + } + +}
\ No newline at end of file |