Skip to content

Package: ChangeRecord

ChangeRecord

Coverage

1: /**
2: * Copyright (C) 2020 Czech Technical University in Prague
3: *
4: * This program is free software: you can redistribute it and/or modify it under
5: * the terms of the GNU General Public License as published by the Free Software
6: * Foundation, either version 3 of the License, or (at your option) any
7: * later version.
8: *
9: * This program is distributed in the hope that it will be useful, but WITHOUT
10: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11: * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
12: * details. You should have received a copy of the GNU General Public License
13: * along with this program. If not, see <http://www.gnu.org/licenses/>.
14: */
15: package cz.cvut.kbss.jopa.sessions;
16:
17: import cz.cvut.kbss.jopa.model.metamodel.FieldSpecification;
18:
19: /**
20: * Objects of classes implementing this interface represent a change of one attribute of an entity class. Objects store
21: * only the new value, old value is in the original and it is not needed.
22: */
23: public interface ChangeRecord {
24:
25: /**
26: * Returns the new value of the attribute.
27: *
28: * @return Object
29: */
30: Object getNewValue();
31:
32: /**
33: * Gets the attribute to which this change record is bound.
34: *
35: * @return the attribute
36: */
37: FieldSpecification<?, ?> getAttribute();
38:
39: /**
40: * Whether this change record prevents caching of the instance on which the change is applied.
41: *
42: * @return Whether this change record prevents caching
43: */
44: boolean doesPreventCaching();
45:
46: /**
47: * Marks this change record to prevent caching.
48: *
49: * @see #doesPreventCaching()
50: */
51: void preventCaching();
52: }