1 /*
2 * Copyright (c) 2011-2024 PrimeFaces Extensions
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 * THE SOFTWARE.
21 */
22 package org.primefaces.extensions.util;
23
24 import java.util.Objects;
25
26 import org.primefaces.component.api.SavedState;
27
28 /**
29 * Keeps state of a component implementing {@link javax.faces.component.EditableValueHolder}. This class is used in
30 * {@link org.primefaces.extensions.component.base.AbstractDynamicData}.
31 *
32 * @author Oleg Varaksin / last modified by $Author$
33 * @version $Revision$
34 * @since 0.5
35 */
36 public class SavedEditableValueState extends SavedState {
37
38 private static final long serialVersionUID = 20120425L;
39
40 private transient Object labelValue;
41
42 private transient Object disabled;
43
44 public void reset() {
45 setSubmittedValue(null);
46 setValid(true);
47 setValue(null);
48 setLocalValueSet(false);
49 }
50
51 public Object getLabelValue() {
52 return labelValue;
53 }
54
55 public void setLabelValue(Object labelValue) {
56 this.labelValue = labelValue;
57 }
58
59 public Object getDisabled() {
60 return disabled;
61 }
62
63 public void setDisabled(Object disabled) {
64 this.disabled = disabled;
65 }
66
67 @Override
68 public int hashCode() {
69 final int prime = 31;
70 int result = super.hashCode();
71 result = prime * result + Objects.hash(disabled, labelValue);
72 return result;
73 }
74
75 @Override
76 public boolean equals(Object obj) {
77 if (this == obj) {
78 return true;
79 }
80 if (!super.equals(obj)) {
81 return false;
82 }
83 if (!(obj instanceof SavedEditableValueState)) {
84 return false;
85 }
86 final SavedEditableValueState other = (SavedEditableValueState) obj;
87 return Objects.equals(disabled, other.disabled) && Objects.equals(labelValue, other.labelValue);
88 }
89 }