1 /*
2 * Copyright 2001-2008 The Apache Software Foundation.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16 */
17 package org.uddi.repl_v3;
18
19 import java.io.Serializable;
20
21 import javax.xml.bind.annotation.XmlAccessType;
22 import javax.xml.bind.annotation.XmlAccessorType;
23 import javax.xml.bind.annotation.XmlElement;
24 import javax.xml.bind.annotation.XmlTransient;
25 import javax.xml.bind.annotation.XmlType;
26
27 /**
28 * <p>Java class for changeRecordID_type complex type.
29 *
30 * <p>The following schema fragment specifies the expected content contained
31 * within this class.
32 *
33 * <pre>
34 * <complexType name="changeRecordID_type">
35 * <complexContent>
36 * <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
37 * <sequence>
38 * <element name="nodeID" type="{urn:uddi-org:repl_v3}operatorNodeID_type"/>
39 * <element name="originatingUSN" type="{urn:uddi-org:repl_v3}USN_type" minOccurs="0"/>
40 * </sequence>
41 * </restriction>
42 * </complexContent>
43 * </complexType>
44 * </pre>
45 *
46 *
47 */
48 @XmlAccessorType(XmlAccessType.FIELD)
49 @XmlType(name = "changeRecordID_type", propOrder = {
50 "nodeID",
51 "originatingUSN"
52 })
53 public class ChangeRecordIDType implements Serializable {
54
55 @XmlTransient
56 private static final long serialVersionUID = -8665882376068031545L;
57 @XmlElement(required = true)
58 protected String nodeID;
59 protected Long originatingUSN;
60
61 public ChangeRecordIDType() {
62 }
63
64 /**
65 *
66 * @param node owning node of the item/source of request
67 * @param oUSN Each node SHALL maintain a strictly increasing register known as its Originating Update Sequence Number (USN). An originating USN is assigned to a change record at its creation by a node. The originating USN SHALL NEVER decrease in value, even in the face of system crashes and restarts. UDDI nodes MUST NOT rely on an originating USN sequence increasing monotonically by a value of "1". Gaps in a node's originating USN sequence MUST be allowed for as they are likely to occur in the face of system crashes and restarts.
68
69 While processing changes to the Registry as a result of performing UDDI Replication, all replicated data MUST be assigned an additional unique and locally generated USN register value – a local USN.
70
71 The originating and local USN registers MUST be sufficiently large such that register rollover is not a concern. For this purpose, UDDI nodes MUST implement a USN of exactly 63 bits in size.
72
73 Note that it is semantically meaningless to compare USNs that have been generated on different nodes; only USNs generated on the same node may be meaningfully compared to each other.
74
75 NO change record MAY have a USN equal to 0 (zero).
76 */
77 public ChangeRecordIDType(String node, Long oUSN) {
78 originatingUSN = oUSN;
79 nodeID = node;
80 }
81
82 /**
83 * Gets the value of the nodeID property.
84 *
85 * @return possible object is {@link String }
86 *
87 */
88 public String getNodeID() {
89 return nodeID;
90 }
91
92 /**
93 * Sets the value of the nodeID property.
94 *
95 * @param value allowed object is {@link String }
96 *
97 */
98 public void setNodeID(String value) {
99 this.nodeID = value;
100 }
101
102 /**
103 * Gets the value of the originatingUSN property.
104 *
105 * @return possible object is {@link Long }
106 *
107 */
108 public Long getOriginatingUSN() {
109 return originatingUSN;
110 }
111
112 /**
113 * Sets the value of the originatingUSN property.
114 *
115 * @param value allowed object is {@link Long }
116 *
117 */
118 public void setOriginatingUSN(Long value) {
119 this.originatingUSN = value;
120 }
121 }