<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>Version xref</title>
<link type="text/css" rel="stylesheet" href="../../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../../apidocs/org/trafodion/dcs/master/listener/Version.html">View Javadoc</a></div><pre>

<a class="jxr_linenumber" name="1" href="#1">1</a>   <em class="jxr_javadoccomment">/**</em>
<a class="jxr_linenumber" name="2" href="#2">2</a>   <em class="jxr_javadoccomment">* @@@ START COPYRIGHT @@@</em>
<a class="jxr_linenumber" name="3" href="#3">3</a>   
<a class="jxr_linenumber" name="4" href="#4">4</a>   <em class="jxr_javadoccomment">Licensed to the Apache Software Foundation (ASF) under one</em>
<a class="jxr_linenumber" name="5" href="#5">5</a>   <em class="jxr_javadoccomment">or more contributor license agreements.  See the NOTICE file</em>
<a class="jxr_linenumber" name="6" href="#6">6</a>   <em class="jxr_javadoccomment">distributed with this work for additional information</em>
<a class="jxr_linenumber" name="7" href="#7">7</a>   <em class="jxr_javadoccomment">regarding copyright ownership.  The ASF licenses this file</em>
<a class="jxr_linenumber" name="8" href="#8">8</a>   <em class="jxr_javadoccomment">to you under the Apache License, Version 2.0 (the</em>
<a class="jxr_linenumber" name="9" href="#9">9</a>   <em class="jxr_javadoccomment">"License"); you may not use this file except in compliance</em>
<a class="jxr_linenumber" name="10" href="#10">10</a>  <em class="jxr_javadoccomment">with the License.  You may obtain a copy of the License at</em>
<a class="jxr_linenumber" name="11" href="#11">11</a>  
<a class="jxr_linenumber" name="12" href="#12">12</a>  <em class="jxr_javadoccomment">  <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a class="jxr_linenumber" name="13" href="#13">13</a>  
<a class="jxr_linenumber" name="14" href="#14">14</a>  <em class="jxr_javadoccomment">Unless required by applicable law or agreed to in writing,</em>
<a class="jxr_linenumber" name="15" href="#15">15</a>  <em class="jxr_javadoccomment">software distributed under the License is distributed on an</em>
<a class="jxr_linenumber" name="16" href="#16">16</a>  <em class="jxr_javadoccomment">"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</em>
<a class="jxr_linenumber" name="17" href="#17">17</a>  <em class="jxr_javadoccomment">KIND, either express or implied.  See the License for the</em>
<a class="jxr_linenumber" name="18" href="#18">18</a>  <em class="jxr_javadoccomment">specific language governing permissions and limitations</em>
<a class="jxr_linenumber" name="19" href="#19">19</a>  <em class="jxr_javadoccomment">under the License.</em>
<a class="jxr_linenumber" name="20" href="#20">20</a>  
<a class="jxr_linenumber" name="21" href="#21">21</a>  <em class="jxr_javadoccomment">* @@@ END COPYRIGHT @@@</em>
<a class="jxr_linenumber" name="22" href="#22">22</a>  <em class="jxr_javadoccomment"> */</em>
<a class="jxr_linenumber" name="23" href="#23">23</a>  <strong class="jxr_keyword">package</strong> org.trafodion.dcs.master.listener;
<a class="jxr_linenumber" name="24" href="#24">24</a>  
<a class="jxr_linenumber" name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> java.sql.SQLException;
<a class="jxr_linenumber" name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> java.io.*;
<a class="jxr_linenumber" name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> java.nio.*;
<a class="jxr_linenumber" name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> java.nio.channels.*;
<a class="jxr_linenumber" name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> java.nio.channels.spi.*;
<a class="jxr_linenumber" name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> java.net.*;
<a class="jxr_linenumber" name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> java.util.*;
<a class="jxr_linenumber" name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.Log;
<a class="jxr_linenumber" name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> org.apache.commons.logging.LogFactory;
<a class="jxr_linenumber" name="34" href="#34">34</a>  
<a class="jxr_linenumber" name="35" href="#35">35</a>  <strong class="jxr_keyword">class</strong> <a href="../../../../../org/trafodion/dcs/master/listener/Version.html">Version</a> {
<a class="jxr_linenumber" name="36" href="#36">36</a>  	<strong class="jxr_keyword">private</strong> <strong class="jxr_keyword">static</strong>  <strong class="jxr_keyword">final</strong> Log LOG = LogFactory.getLog(Version.<strong class="jxr_keyword">class</strong>);
<a class="jxr_linenumber" name="37" href="#37">37</a>  
<a class="jxr_linenumber" name="38" href="#38">38</a>  	<strong class="jxr_keyword">short</strong> componentId;
<a class="jxr_linenumber" name="39" href="#39">39</a>  	<strong class="jxr_keyword">short</strong> majorVersion;
<a class="jxr_linenumber" name="40" href="#40">40</a>  	<strong class="jxr_keyword">short</strong> minorVersion;
<a class="jxr_linenumber" name="41" href="#41">41</a>  	<strong class="jxr_keyword">int</strong> buildId;
<a class="jxr_linenumber" name="42" href="#42">42</a>  
<a class="jxr_linenumber" name="43" href="#43">43</a>  	Version(){
<a class="jxr_linenumber" name="44" href="#44">44</a>  		componentId = 0;
<a class="jxr_linenumber" name="45" href="#45">45</a>  		majorVersion = 0;
<a class="jxr_linenumber" name="46" href="#46">46</a>  		minorVersion = 0;
<a class="jxr_linenumber" name="47" href="#47">47</a>  		buildId = 0;
<a class="jxr_linenumber" name="48" href="#48">48</a>  	}
<a class="jxr_linenumber" name="49" href="#49">49</a>  
<a class="jxr_linenumber" name="50" href="#50">50</a>  	<strong class="jxr_keyword">void</strong> extractFromByteBuffer(ByteBuffer buf) {
<a class="jxr_linenumber" name="51" href="#51">51</a>  		componentId = buf.getShort();
<a class="jxr_linenumber" name="52" href="#52">52</a>  		majorVersion = buf.getShort();
<a class="jxr_linenumber" name="53" href="#53">53</a>  		minorVersion = buf.getShort();
<a class="jxr_linenumber" name="54" href="#54">54</a>  		buildId = buf.getInt();
<a class="jxr_linenumber" name="55" href="#55">55</a>  	}
<a class="jxr_linenumber" name="56" href="#56">56</a>  	<strong class="jxr_keyword">void</strong> insertIntoByteBuffer(ByteBuffer buf) {
<a class="jxr_linenumber" name="57" href="#57">57</a>  		buf.putShort(componentId);
<a class="jxr_linenumber" name="58" href="#58">58</a>  		buf.putShort(majorVersion);
<a class="jxr_linenumber" name="59" href="#59">59</a>  		buf.putShort(minorVersion);
<a class="jxr_linenumber" name="60" href="#60">60</a>  		buf.putInt(buildId);
<a class="jxr_linenumber" name="61" href="#61">61</a>  	}
<a class="jxr_linenumber" name="62" href="#62">62</a>  }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

