/** * Create a Filterset from another filterset. * * @param filterset the filterset upon which this filterset will be based. */ protected FilterSet(FilterSet filterset) { super(); @SuppressWarnings("unchecked") Vector<Filter> clone = (Vector<Filter>) filterset.getFilters().clone(); this.filters = clone; }
/** * Test to see if this filter set has filters. * * @return Return true if there are filters in this set. */ public synchronized boolean hasFilters() { return !getFilters().isEmpty(); }
/** * Gets the filter hash of the FilterSet. * * @return The hash of the tokens and values for quick lookup. */ public synchronized Hashtable<String, String> getFilterHash() { if (isReference()) { return getRef().getFilterHash(); } dieOnCircularReference(); if (filterHash == null) { filterHash = new Hashtable<>(getFilters().size()); getFilters().forEach(filter -> filterHash.put(filter.getToken(), filter.getValue())); } return filterHash; }
/** * Add a Filterset to this filter set. * * @param filterSet the filterset to be added to this filterset */ public synchronized void addConfiguredFilterSet(FilterSet filterSet) { if (isReference()) { throw noChildrenAllowed(); } for (Filter filter : filterSet.getFilters()) { addFilter(filter); } }
/** * Get the filters in the filter set. * * @return a Vector of Filter instances. */ protected synchronized Vector<Filter> getFilters() { if (isReference()) { return getRef().getFilters(); } dieOnCircularReference(); // silly hack to avoid stack overflow... if (!readingFiles) { readingFiles = true; for (File filtersFile : filtersFiles) { readFiltersFromFile(filtersFile); } filtersFiles.clear(); readingFiles = false; } return filters; }
/** * Clone the filterset. * * @return a deep clone of this filterset. * * @throws BuildException if the clone cannot be performed. */ @Override public synchronized Object clone() throws BuildException { if (isReference()) { return getRef().clone(); } try { FilterSet fs = (FilterSet) super.clone(); @SuppressWarnings("unchecked") Vector<Filter> clonedFilters = (Vector<Filter>) getFilters().clone(); fs.filters = clonedFilters; fs.setProject(getProject()); return fs; } catch (CloneNotSupportedException e) { throw new BuildException(e); } }