protected void addField ( String field ) { if ( field . contains ( "/" ) ) { // Splits the field into, at most, 2 strings - "prefix" / "suffix" - since we guarantee the // field contains a / this will ALWAYS have a length of 2. String [ ] fields = field . split ( "/" , 2 ) ; String prefix = fields [ 0 ] ; // This may be an empty string if the field passed in was "foo/" String suffix = fields [ 1 ] ; if ( "" . equals ( suffix ) ) { filters . put ( prefix , UNFILTERED_FIELD ) ; return ; } FieldFilter nestedFilter = filters . get ( prefix ) ; if ( filters . containsKey ( prefix ) && nestedFilter == UNFILTERED_FIELD ) { return ; } else if ( nestedFilter == null ) { nestedFilter = new FieldFilter ( true ) ; filters . put ( prefix , nestedFilter ) ; } nestedFilter . addField ( suffix ) ; } else { filters . put ( field , UNFILTERED_FIELD ) ; } }
Adds a field to be filtered for this FieldFilter .