Autopsy  4.5.0
Graphical digital forensics platform for The Sleuth Kit and other tools.
RootFilter.java
Go to the documentation of this file.
1 /*
2  * Autopsy Forensic Browser
3  *
4  * Copyright 2015-16 Basis Technology Corp.
5  * Contact: carrier <at> sleuthkit <dot> org
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19 package org.sleuthkit.autopsy.timeline.filters;
20 
21 import java.util.Set;
22 import java.util.stream.Collectors;
23 import javafx.beans.binding.BooleanBinding;
24 import javafx.collections.FXCollections;
25 
30 public class RootFilter extends IntersectionFilter<Filter> {
31 
33  private final TagsFilter tagsFilter;
34  private final HashHitsFilter hashFilter;
35  private final TextFilter textFilter;
36  private final TypeFilter typeFilter;
38 
40  return dataSourcesFilter;
41  }
42 
44  return tagsFilter;
45  }
46 
48  return hashFilter;
49  }
50 
52  return typeFilter;
53  }
54 
56  return knownFilter;
57  }
58 
60  return textFilter;
61  }
62 
63  public RootFilter(HideKnownFilter knownFilter, TagsFilter tagsFilter, HashHitsFilter hashFilter, TextFilter textFilter, TypeFilter typeFilter, DataSourcesFilter dataSourceFilter, Set<Filter> annonymousSubFilters) {
64  super(FXCollections.observableArrayList(
65  textFilter,
66  knownFilter,
67  dataSourceFilter, tagsFilter,
68  hashFilter,
69  typeFilter
70  ));
71  this.knownFilter = knownFilter;
72  this.tagsFilter = tagsFilter;
73  this.hashFilter = hashFilter;
74  this.textFilter = textFilter;
75  this.typeFilter = typeFilter;
76  this.dataSourcesFilter = dataSourceFilter;
77  getSubFilters().addAll(annonymousSubFilters);
78  setSelected(Boolean.TRUE);
79  setDisabled(false);
80  }
81 
82  @Override
83  public RootFilter copyOf() {
84  Set<Filter> annonymousSubFilters = getSubFilters().stream()
85  .filter(subFilter ->
86  !(subFilter.equals(knownFilter)
87  || subFilter.equals(tagsFilter)
88  || subFilter.equals(hashFilter)
89  || subFilter.equals(typeFilter)
90  || subFilter.equals(textFilter)
91  || subFilter.equals(dataSourcesFilter)))
92  .map(Filter::copyOf)
93  .collect(Collectors.toSet());
94 
95  RootFilter filter = new RootFilter(
96  knownFilter.copyOf(),
97  tagsFilter.copyOf(),
98  hashFilter.copyOf(),
99  textFilter.copyOf(),
100  typeFilter.copyOf(),
101  dataSourcesFilter.copyOf(),
102  annonymousSubFilters);
103  filter.setSelected(isSelected());
104  filter.setDisabled(isDisabled());
105  return filter;
106  }
107 
108  @Override
109  public int hashCode() {
110  return super.hashCode();
111  }
112 
113  @Override
114  @SuppressWarnings("unchecked")
115  public boolean equals(Object obj) {
116  if (obj == null) {
117  return false;
118  }
119  if (getClass() != obj.getClass()) {
120  return false;
121  }
122  return areSubFiltersEqual(this, (CompoundFilter<Filter>) obj);
123  }
124 
125  @Override
126  public boolean isActive() {
127  return true;
128  }
129 
130  @Override
131  public BooleanBinding activeProperty() {
132 
133  return new BooleanBinding() {
134  @Override
135  protected boolean computeValue() {
136  return true;
137  }
138  };
139  }
140 }
RootFilter(HideKnownFilter knownFilter, TagsFilter tagsFilter, HashHitsFilter hashFilter, TextFilter textFilter, TypeFilter typeFilter, DataSourcesFilter dataSourceFilter, Set< Filter > annonymousSubFilters)
Definition: RootFilter.java:63

Copyright © 2012-2016 Basis Technology. Generated on: Tue Feb 20 2018
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.