NIFI-305: Cleaning up for extensibility; final methods

Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/615794e7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/615794e7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/615794e7

Branch: refs/heads/NIFI-250
Commit: 615794e77fafc79ec6027484e584f76695a89573
Parents: ad40903
Author: gresockj <[email protected]>
Authored: Thu Jan 29 17:11:56 2015 -0500
Committer: gresockj <[email protected]>
Committed: Thu Jan 29 17:11:56 2015 -0500

----------------------------------------------------------------------
 .../nifi/processors/standard/BinFiles.java      | 31 +++++++++++++++-----
 1 file changed, 24 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/615794e7/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/BinFiles.java
----------------------------------------------------------------------
diff --git 
a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/BinFiles.java
 
b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/BinFiles.java
index b838d51..0a65c59 100644
--- 
a/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/BinFiles.java
+++ 
b/nifi/nifi-nar-bundles/nifi-standard-bundle/nifi-standard-processors/src/main/java/org/apache/nifi/processors/standard/BinFiles.java
@@ -106,7 +106,7 @@ public abstract class BinFiles extends 
AbstractSessionFactoryProcessor {
     private final Queue<Bin> readyBins = new LinkedBlockingQueue<>();
 
     @Override
-    protected void init(final ProcessorInitializationContext context) {
+    protected final void init(final ProcessorInitializationContext context) {
 
        final Set<Relationship> relationships = new HashSet<>();
         relationships.add(REL_ORIGINAL);
@@ -133,7 +133,7 @@ public abstract class BinFiles extends 
AbstractSessionFactoryProcessor {
     }
 
     @OnStopped
-    public void resetState() {
+    public final void resetState() {
         binManager.purge();
 
         Bin bin;
@@ -145,12 +145,12 @@ public abstract class BinFiles extends 
AbstractSessionFactoryProcessor {
     }
 
     @Override
-    public Set<Relationship> getRelationships() {
+    public final Set<Relationship> getRelationships() {
         return relationships;
     }
 
     @Override
-    protected List<PropertyDescriptor> getSupportedPropertyDescriptors() {
+    protected final List<PropertyDescriptor> getSupportedPropertyDescriptors() 
{
         return descriptors;
     }
 
@@ -222,8 +222,20 @@ public abstract class BinFiles extends 
AbstractSessionFactoryProcessor {
                        List<FlowFileSessionWrapper> binContents, 
ProcessContext context,
                        ProcessSession session, ProcessorLog logger) throws 
Exception;
 
+    /**
+        * Allows additional custom validation to be done. This will be called 
from
+        * the parent's customValidation method.
+        * 
+        * @param context
+        *            The context
+        * @return Validation results indicating problems
+        */
+    protected Collection<ValidationResult> additionalCustomValidation(final 
ValidationContext context) {
+       return new ArrayList<ValidationResult>();
+    }
+       
     @Override
-    public void onTrigger(final ProcessContext context, final 
ProcessSessionFactory sessionFactory) throws ProcessException {
+    public final void onTrigger(final ProcessContext context, final 
ProcessSessionFactory sessionFactory) throws ProcessException {
         int binsAdded = binFlowFiles(context, sessionFactory);
         getLogger().debug("Binned {} FlowFiles", new Object[] {binsAdded});
         
@@ -336,7 +348,7 @@ public abstract class BinFiles extends 
AbstractSessionFactoryProcessor {
     }
 
     @OnScheduled
-    public void onScheduled(final ProcessContext context) throws IOException {
+    public final void onScheduled(final ProcessContext context) throws 
IOException {
         
binManager.setMinimumSize(context.getProperty(MIN_SIZE).asDataSize(DataUnit.B).longValue());
 
         if (context.getProperty(MAX_BIN_AGE).isSet() ) {
@@ -363,7 +375,7 @@ public abstract class BinFiles extends 
AbstractSessionFactoryProcessor {
     }
     
        @Override
-    protected Collection<ValidationResult> customValidate(final 
ValidationContext context) {
+    protected final Collection<ValidationResult> customValidate(final 
ValidationContext context) {
         final List<ValidationResult> problems = new 
ArrayList<>(super.customValidate(context));
 
         final long minBytes = 
context.getProperty(MIN_SIZE).asDataSize(DataUnit.B).longValue();
@@ -382,6 +394,11 @@ public abstract class BinFiles extends 
AbstractSessionFactoryProcessor {
                 problems.add(new 
ValidationResult.Builder().subject(MIN_ENTRIES.getName()).input(context.getProperty(MIN_ENTRIES).getValue()).valid(false).explanation("Min
 Entries must be less than or equal to Max Entries").build());
             }
         }
+        
+        Collection<ValidationResult> otherProblems = 
this.additionalCustomValidation(context);
+        if (otherProblems != null) {
+               problems.addAll(otherProblems);
+        }
 
         return problems;
     }

Reply via email to