You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by mc...@apache.org on 2015/02/04 19:56:57 UTC

[03/36] incubator-nifi git commit: NIFI-305: Cleaning up for extensibility; final methods

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 <jg...@gmail.com>
Authored: Thu Jan 29 17:11:56 2015 -0500
Committer: gresockj <jg...@gmail.com>
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;
     }