Contribution for Bug352466: [TMF] Implement UML2 Sequence Diagram
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / views / uml2sd / handlers / widgets / FilterCriteria.java
1 /**********************************************************************
2 * Copyright (c) 2005, 2008, 2011 IBM Corporation and others.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the Eclipse Public License v1.0
5 * which accompanies this distribution, and is available at
6 * http://www.eclipse.org/legal/epl-v10.html
7 * $Id: FilterCriteria.java,v 1.3 2008/01/24 02:29:09 apnan Exp $
8 *
9 * Contributors:
10 * IBM - Initial API and implementation
11 * Bernd Hufmann - Updated for TMF
12 **********************************************************************/
13 package org.eclipse.linuxtools.tmf.ui.views.uml2sd.handlers.widgets;
14
15 import java.util.Iterator;
16 import java.util.List;
17
18 import org.eclipse.jface.dialogs.DialogSettings;
19
20 /**
21 * A filter criteria is a criteria that can be activated or not, positive or not.
22 */
23 public class FilterCriteria {
24
25 protected static final String ACTIVE = "active"; //$NON-NLS-1$
26 protected static final String POSITIVE = "positive"; //$NON-NLS-1$
27 protected static final String LOADERCLASSNAME = "loaderClassName"; //$NON-NLS-1$
28
29 protected Criteria criteria;
30 protected boolean active;
31 protected boolean positive;
32 protected String loaderClassName;
33
34 @Override
35 public String toString() {
36 StringBuffer sb = new StringBuffer(super.toString());
37 sb.append(":"); //$NON-NLS-1$
38 if (criteria != null) {
39 sb.append(" expression=");sb.append(criteria.getExpression()); //$NON-NLS-1$
40 sb.append(" active=");sb.append(active); //$NON-NLS-1$
41 sb.append(" positive=");sb.append(positive); //$NON-NLS-1$
42 } else {
43 sb.append("empty criteria"); //$NON-NLS-1$
44 }
45 return sb.toString();
46 }
47
48 /**
49 * @param criteria_
50 * @param active_
51 * @param positive_
52 */
53 public FilterCriteria(Criteria criteria_, boolean active_, boolean positive_) {
54 setCriteria(criteria_);
55 setActive(active_);
56 setPositive(positive_);
57 }
58
59 /**
60 * @param criteria_
61 * @param active_
62 * @param positive_
63 * @param loaderClassName_
64 */
65 public FilterCriteria(Criteria criteria_, boolean active_, boolean positive_, String loaderClassName_) {
66 setCriteria(criteria_);
67 setActive(active_);
68 setPositive(positive_);
69 setLoaderClassName(loaderClassName_);
70 }
71
72 /**
73 * Copy Constructor
74 * @param other FilterCriteria
75 */
76 public FilterCriteria (FilterCriteria other) {
77 criteria = new Criteria(other.criteria);
78 this.active = other.active;
79 this.positive = other.positive;
80 this.loaderClassName = other.loaderClassName;
81 }
82
83 protected FilterCriteria() {
84 }
85
86 /**
87 * @param criteria_
88 */
89 public void setCriteria(Criteria criteria_) {
90 criteria = criteria_;
91 }
92
93 public Criteria getCriteria() {
94 return criteria;
95 }
96
97 /**
98 * @param active_
99 */
100 public void setActive(boolean active_) {
101 active = active_;
102 }
103
104 public boolean isActive() {
105 return active;
106 }
107
108 /**
109 * @param positive The positive to set.
110 */
111 public void setPositive(boolean positive_) {
112 positive = positive_;
113 }
114
115 /**
116 * @return Returns the positive.
117 */
118 public boolean isPositive() {
119 return positive;
120 }
121
122 /**
123 * @return Returns the class loader name.
124 */
125 public void setLoaderClassName(String loaderClassName_) {
126 loaderClassName = loaderClassName_;
127 }
128
129 /**
130 * @return Returns the class loader name.
131 */
132 public String getLoaderClassName() {
133 return loaderClassName;
134 }
135
136 public static FilterCriteria find(FilterCriteria what, List<FilterCriteria> list) {
137 if (what != null && list != null) {
138 try {
139 for (Iterator<FilterCriteria> i = list.iterator(); i.hasNext();) {
140 FilterCriteria fc = (FilterCriteria) i.next();
141 if (what.compareTo(fc)) {
142 return fc;
143 }
144 }
145 } catch (Exception e) {
146 // Silence
147 }
148 }
149 return null;
150 }
151
152 public boolean compareTo(FilterCriteria to) {
153 if (isPositive() == to.isPositive() && getCriteria().compareTo(to.getCriteria())) {
154 if (getLoaderClassName() == null && to.getLoaderClassName() == null) {
155 return true;
156 }
157 if ((getLoaderClassName() != null && to.getLoaderClassName() != null) && getLoaderClassName().equals(to.getLoaderClassName())) {
158 return true;
159 }
160 }
161 return false;
162 }
163
164 public void save(DialogSettings settings) {
165 settings.put(ACTIVE, isActive());
166 settings.put(POSITIVE, isPositive());
167 if (getLoaderClassName() != null) {
168 settings.put(LOADERCLASSNAME, getLoaderClassName());
169 } else {
170 settings.put(LOADERCLASSNAME, ""); //$NON-NLS-1$
171 }
172 if (criteria != null)
173 criteria.save(settings);
174 }
175
176 /**
177 * @param settings
178 */
179 public void load(DialogSettings settings) {
180 setActive(settings.getBoolean(ACTIVE));
181 setPositive(settings.getBoolean(POSITIVE));
182 String loaderClassName_ = settings.get(LOADERCLASSNAME);
183 setLoaderClassName(loaderClassName_ != null && loaderClassName_.length() > 0 ? loaderClassName_ : null);
184 if (criteria != null)
185 criteria.load(settings);
186 }
187 }
This page took 0.034819 seconds and 5 git commands to generate.