From 0f196f59c6a4cb76ab8409da62ff1f35505f94a8 Mon Sep 17 00:00:00 2001 From: Dico Karssiens Date: Sun, 11 Nov 2018 14:06:45 +0000 Subject: Changes I made before breaking my local repository. Hoping this works. --- .../dicore/command/InheritingContextFilter.java | 128 ++++++++++----------- 1 file changed, 64 insertions(+), 64 deletions(-) (limited to 'dicore3/command/src/main/java/io/dico/dicore/command/InheritingContextFilter.java') diff --git a/dicore3/command/src/main/java/io/dico/dicore/command/InheritingContextFilter.java b/dicore3/command/src/main/java/io/dico/dicore/command/InheritingContextFilter.java index 0b4875b..58cd7a6 100644 --- a/dicore3/command/src/main/java/io/dico/dicore/command/InheritingContextFilter.java +++ b/dicore3/command/src/main/java/io/dico/dicore/command/InheritingContextFilter.java @@ -1,64 +1,64 @@ -package io.dico.dicore.command; - -import java.util.List; - -public abstract class InheritingContextFilter implements IContextFilter { - private static final String[] emptyStringArray = new String[0]; - - private static String[] addParent(String[] path, String parent) { - String[] out = new String[path.length + 1]; - System.arraycopy(path, 0, out, 1, path.length); - out[0] = parent; - return out; - } - - protected abstract boolean isInherited(IContextFilter filter); - - @Override - public void filterContext(ExecutionContext context) throws CommandException { - ICommandAddress address = context.getAddress(); - - String[] traversedPath = emptyStringArray; - do { - traversedPath = addParent(traversedPath, address.getMainKey()); - address = address.getParent(); - - if (address != null && address.hasCommand()) { - boolean doBreak = true; - - Command command = address.getCommand(); - List contextFilterList = command.getContextFilters(); - for (IContextFilter filter : contextFilterList) { - if (isInherited(filter)) { - if (filter == this) { - // do the same for next parent - // this method is necessary to keep traversedPath information - doBreak = false; - } else { - filter.filterSubContext(context, traversedPath); - } - } - } - - if (doBreak) { - break; - } - } - } while (address != null); - } - - static InheritingContextFilter inheritingPriority(Priority priority) { - return new InheritingContextFilter() { - @Override - protected boolean isInherited(IContextFilter filter) { - return filter.getPriority() == priority; - } - - @Override - public Priority getPriority() { - return priority; - } - }; - } - -} +package io.dico.dicore.command; + +import java.util.List; + +public abstract class InheritingContextFilter implements IContextFilter { + private static final String[] emptyStringArray = new String[0]; + + private static String[] addParent(String[] path, String parent) { + String[] out = new String[path.length + 1]; + System.arraycopy(path, 0, out, 1, path.length); + out[0] = parent; + return out; + } + + protected abstract boolean isInherited(IContextFilter filter); + + @Override + public void filterContext(ExecutionContext context) throws CommandException { + ICommandAddress address = context.getAddress(); + + String[] traversedPath = emptyStringArray; + do { + traversedPath = addParent(traversedPath, address.getMainKey()); + address = address.getParent(); + + if (address != null && address.hasCommand()) { + boolean doBreak = true; + + Command command = address.getCommand(); + List contextFilterList = command.getContextFilters(); + for (IContextFilter filter : contextFilterList) { + if (isInherited(filter)) { + if (filter == this) { + // do the same for next parent + // this method is necessary to keep traversedPath information + doBreak = false; + } else { + filter.filterSubContext(context, traversedPath); + } + } + } + + if (doBreak) { + break; + } + } + } while (address != null); + } + + static InheritingContextFilter inheritingPriority(Priority priority) { + return new InheritingContextFilter() { + @Override + protected boolean isInherited(IContextFilter filter) { + return filter.getPriority() == priority; + } + + @Override + public Priority getPriority() { + return priority; + } + }; + } + +} -- cgit v1.2.3