]> err.no Git - sope/blob - sope-appserver/NGObjWeb/Associations/WOValueAssociation.h
fixed OGo bug #888
[sope] / sope-appserver / NGObjWeb / Associations / WOValueAssociation.h
1 /*
2   Copyright (C) 2000-2004 SKYRIX Software AG
3
4   This file is part of OpenGroupware.org.
5
6   OGo is free software; you can redistribute it and/or modify it under
7   the terms of the GNU Lesser General Public License as published by the
8   Free Software Foundation; either version 2, or (at your option) any
9   later version.
10
11   OGo is distributed in the hope that it will be useful, but WITHOUT ANY
12   WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
14   License for more details.
15
16   You should have received a copy of the GNU Lesser General Public
17   License along with OGo; see the file COPYING.  If not, write to the
18   Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
19   02111-1307, USA.
20 */
21 // $Id$
22
23 #ifndef __NGObjWeb_WOValueAssociation_H__
24 #define __NGObjWeb_WOValueAssociation_H__
25
26 #include <NGObjWeb/WOAssociation.h>
27
28 @interface WOValueAssociation : WOAssociation < NSCoding, NSCopying >
29 {
30   id value;
31   struct {
32     unsigned int smallValue:16;
33     unsigned int boolValue:2; // 0 - not cache, 1 - true, 2 - false
34     unsigned int hasSmallValue:1;
35     unsigned int hasNoSmallValue:1;
36     unsigned int reserved:12;
37   } cacheFlags;
38 }
39
40 + (WOAssociation *)associationWithValue:(id)_value;
41 - (id)initWithValue:(id)_value;
42
43 /* value */
44
45 - (BOOL)isValueConstant; // returns YES
46 - (BOOL)isValueSettable; // returns NO
47
48 @end
49
50 @interface _WOBoolValueAssociation : WOAssociation < NSCopying >
51 {
52   BOOL value;
53 }
54
55 + (WOAssociation *)associationWithValue:(id)_value;
56 + (WOAssociation *)associationWithBool:(BOOL)_value;
57
58 /* value */
59
60 - (BOOL)isValueConstant; // returns YES
61 - (BOOL)isValueSettable; // returns NO
62
63 @end
64
65 #endif /* __NGObjWeb_WOValueAssociation_H__ */