package com.openedit.util.strainer; import java.util.HashMap; import java.util.Map; import com.openedit.config.Configuration; import com.openedit.config.XMLConfiguration; public class BaseFilter implements Filter { protected Filter[] fieldFilters; protected String fieldValue; protected Map<String,String> fieldProperties; protected Configuration fieldConfiguration; public Filter[] getFilters() { return fieldFilters; } public boolean passes(Object inObj) throws FilterException { // TODO Auto-generated method stub return false; } public String getType() { String name = getClass().getSimpleName(); if( name.endsWith("Filter")) { name = name.substring(0,name.length() - "Filter".length()); } return name; } public boolean isContainer() { return this instanceof CompositeFilter; } public boolean isDelegator() { return this instanceof DecoratorFilter; } public void addFilter(Filter inNode) { if( getFilters() != null) { Filter[] newlist = new Filter[getFilters().length + 1]; System.arraycopy(getFilters(), 0, newlist, 0, getFilters().length); newlist[newlist.length-1] = inNode; fieldFilters = newlist; } else { fieldFilters = new Filter[] { inNode }; } } public void removeFilter(Filter inNode) { if( getFilters() != null) { Filter[] newlist = new Filter[getFilters().length - 1]; int count = 0; for (int i = 0; i < getFilters().length; i++) { Filter old = getFilters()[i]; if( old != inNode) { newlist[count++] = old; } } fieldFilters = newlist; } } public void setValue(String inValue) { fieldValue = inValue; } public String getValue() { return fieldValue; } public Filter copy(FilterReader inReader, String inName) { XMLConfiguration config = new XMLConfiguration(); FilterWriter writer = new FilterWriter(); writer.addFilter(config,this); //Configuration child = (Configuration)config.getChildren().get(0); Filter done = inReader.readFilterCollection(config, inName); return done; } public void setProperty(String inKey, String inValue) { getProperties().put(inKey, inValue); } public Map<String,String> getProperties() { if (fieldProperties == null) { fieldProperties = new HashMap<String,String>(1); } return fieldProperties; } public String get(String inType) { String prop = getProperties().get(inType); if( prop == null && fieldConfiguration != null) { prop = getConfiguration().get(inType); } return prop; } public String toString() { return String.valueOf( getValue() ); } @Override public void setConfiguration(Configuration inConfig) { fieldConfiguration = inConfig; } @Override public Configuration getConfiguration() { return fieldConfiguration; } }