blob: cc96e90b4414a110372995ffabc0b2779da361b3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
/**
* <copyright>
*
* Service Data Objects
* Version 2.0
* Licensed Materials - Property of BEA and IBM
*
* (c) Copyright BEA Systems, Inc. and International Business Machines Corp 2005. All rights reserved.
*
* </copyright>
*
*/
package commonj.sdo;
import java.util.List;
/**
* A representation of a Property in the {@link Type type} of a {@link DataObject data object}.
*/
public interface Property
{
/**
* Returns the name of the Property.
* @return the Property name.
*/
String getName();
/**
* Returns the type of the Property.
* @return the Property type.
*/
Type getType();
/**
* Returns whether the Property is many-valued.
* @return <code>true</code> if the Property is many-valued.
*/
boolean isMany();
/**
* Returns whether the Property is containment, i.e., whether it represents by-value composition.
* @return <code>true</code> if the Property is containment.
*/
boolean isContainment();
/**
* Returns the containing type of this Property.
* @return the Property's containing type.
* @see Type#getProperties()
*/
Type getContainingType();
/**
* Returns the default value this Property will have in a {@link DataObject data object} where the Property hasn't been set.
* @return the default value.
*/
Object getDefault();
/**
* Returns true if values for this Property cannot be modified using the SDO APIs.
* When true, DataObject.set(Property property, Object value) throws an exception.
* Values may change due to other factors, such as services operating on DataObjects.
* @return true if values for this Property cannot be modified.
*/
boolean isReadOnly();
/**
* Returns the opposite Property if the Property is bi-directional or null otherwise.
* @return the opposite Property if the Property is bi-directional or null
*/
Property getOpposite();
/**
* Return a list of alias names for this Property.
* @return a list of alias names for this Property.
*/
List /*String*/ getAliasNames();
}
|