-
Notifications
You must be signed in to change notification settings - Fork 109
Expand file tree
/
Copy pathVersion.java
More file actions
133 lines (118 loc) · 3.23 KB
/
Version.java
File metadata and controls
133 lines (118 loc) · 3.23 KB
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/*
* Copyright 2013 Klaus Reimer <[email protected]>
* See LICENSE.md for licensing information.
*
* Based on libusb <http://libusb.info/>:
*
* Copyright 2001 Johannes Erdfelt <[email protected]>
* Copyright 2007-2009 Daniel Drake <[email protected]>
* Copyright 2010-2012 Peter Stuge <[email protected]>
* Copyright 2008-2013 Nathan Hjelm <[email protected]>
* Copyright 2009-2013 Pete Batard <[email protected]>
* Copyright 2009-2013 Ludovic Rousseau <[email protected]>
* Copyright 2010-2012 Michael Plante <[email protected]>
* Copyright 2011-2013 Hans de Goede <[email protected]>
* Copyright 2012-2013 Martin Pieuchot <[email protected]>
* Copyright 2012-2013 Toby Gray <[email protected]>
*/
package org.usb4java;
import org.apache.commons.lang3.builder.EqualsBuilder;
import org.apache.commons.lang3.builder.HashCodeBuilder;
/**
* Structure providing the version of the libusb runtime.
*
* @author Klaus Reimer ([email protected])
*/
public final class Version
{
/** The native pointer to the version structure. */
private long versionPointer;
/**
* Package-private constructor to prevent manual instantiation. An instance
* is only returned by the JNI method {@link LibUsb#getVersion()}.
*/
Version()
{
// Empty
}
/**
* Returns the native pointer.
*
* @return The native pointer.
*/
public long getPointer()
{
return this.versionPointer;
}
/**
* Returns the library major version.
*
* @return The library major version.
*/
public native int major();
/**
* Returns the library minor version.
*
* @return The library minor version.
*/
public native int minor();
/**
* Returns the library micro version.
*
* @return The library micro version.
*/
public native int micro();
/**
* Returns the library nano version.
*
* @return The library nano version.
*/
public native int nano();
/**
* Returns the release candidate suffix string, e.g. "-rc4".
*
* @return The release candidate suffix string.
*/
public native String rc();
@Override
public int hashCode()
{
return new HashCodeBuilder()
.append(this.major())
.append(this.minor())
.append(this.micro())
.append(this.nano())
.append(this.rc())
.toHashCode();
}
@Override
public boolean equals(final Object obj)
{
if (this == obj)
{
return true;
}
if (obj == null)
{
return false;
}
if (this.getClass() != obj.getClass())
{
return false;
}
final Version other = (Version) obj;
return new EqualsBuilder()
.append(this.major(), other.major())
.append(this.minor(), other.minor())
.append(this.micro(), other.micro())
.append(this.nano(), other.nano())
.append(this.rc(), other.rc())
.isEquals();
}
@Override
public String toString()
{
return this.major() + "." + this.minor() + "." + this.micro() + "."
+ this.nano() + this.rc();
}
}