Autopsy  4.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 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 
51  public RootFilter(HideKnownFilter knownFilter, TagsFilter tagsFilter, HashHitsFilter hashFilter, TextFilter textFilter, TypeFilter typeFilter, DataSourcesFilter dataSourceFilter, Set<Filter> annonymousSubFilters) {
52  super(FXCollections.observableArrayList(
53  textFilter,
54  knownFilter,
55  dataSourceFilter, tagsFilter,
56  hashFilter,
57  typeFilter
58  ));
59  this.knownFilter = knownFilter;
60  this.tagsFilter = tagsFilter;
61  this.hashFilter = hashFilter;
62  this.textFilter = textFilter;
63  this.typeFilter = typeFilter;
64  this.dataSourcesFilter = dataSourceFilter;
65  getSubFilters().addAll(annonymousSubFilters);
66  setSelected(Boolean.TRUE);
67  setDisabled(false);
68  }
69 
70  @Override
71  public RootFilter copyOf() {
72  Set<Filter> annonymousSubFilters = getSubFilters().stream()
73  .filter(subFilter ->
74  !(subFilter.equals(knownFilter)
75  || subFilter.equals(tagsFilter)
76  || subFilter.equals(hashFilter)
77  || subFilter.equals(typeFilter)
78  || subFilter.equals(textFilter)
79  || subFilter.equals(dataSourcesFilter)))
80  .map(Filter::copyOf)
81  .collect(Collectors.toSet());
82 
83  RootFilter filter = new RootFilter(
84  knownFilter.copyOf(),
85  tagsFilter.copyOf(),
86  hashFilter.copyOf(),
87  textFilter.copyOf(),
88  typeFilter.copyOf(),
89  dataSourcesFilter.copyOf(),
90  annonymousSubFilters);
91  filter.setSelected(isSelected());
92  filter.setDisabled(isDisabled());
93  return filter;
94  }
95 
96  @Override
97  public int hashCode() {
98  return super.hashCode();
99  }
100 
101  @Override
102  @SuppressWarnings("unchecked")
103  public boolean equals(Object obj) {
104  if (obj == null) {
105  return false;
106  }
107  if (getClass() != obj.getClass()) {
108  return false;
109  }
110  return areSubFiltersEqual(this, (CompoundFilter<Filter>) obj);
111  }
112 
113  public boolean isActive() {
114  return true;
115  }
116 
117  public BooleanBinding activeProperty() {
118  return new BooleanBinding() {
119  @Override
120  protected boolean computeValue() {
121  return true;
122  }
123  };
124  }
125 }
RootFilter(HideKnownFilter knownFilter, TagsFilter tagsFilter, HashHitsFilter hashFilter, TextFilter textFilter, TypeFilter typeFilter, DataSourcesFilter dataSourceFilter, Set< Filter > annonymousSubFilters)
Definition: RootFilter.java:51

Copyright © 2012-2015 Basis Technology. Generated on: Wed Apr 6 2016
This work is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License.