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; }
