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 }