/*
|
* Copyright 1999-2018 Alibaba Group Holding Ltd.
|
*
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
* you may not use this file except in compliance with the License.
|
* You may obtain a copy of the License at
|
*
|
* http://www.apache.org/licenses/LICENSE-2.0
|
*
|
* Unless required by applicable law or agreed to in writing, software
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* See the License for the specific language governing permissions and
|
* limitations under the License.
|
*/
|
package com.alibaba.csp.sentinel.dashboard.datasource.entity;
|
|
/**
|
* @author Eric Zhao
|
* @since 0.2.1
|
*/
|
public class SentinelVersion {
|
private int majorVersion;
|
private int minorVersion;
|
private int fixVersion;
|
private String postfix;
|
|
public SentinelVersion() {
|
this(0, 0, 0);
|
}
|
|
public SentinelVersion(int major, int minor, int fix) {
|
this(major, minor, fix, null);
|
}
|
|
public SentinelVersion(int major, int minor, int fix, String postfix) {
|
this.majorVersion = major;
|
this.minorVersion = minor;
|
this.fixVersion = fix;
|
this.postfix = postfix;
|
}
|
|
/**
|
* 000, 000, 000
|
*/
|
public int getFullVersion() {
|
return majorVersion * 1000000 + minorVersion * 1000 + fixVersion;
|
}
|
|
public int getMajorVersion() {
|
return majorVersion;
|
}
|
|
public SentinelVersion setMajorVersion(int majorVersion) {
|
this.majorVersion = majorVersion;
|
return this;
|
}
|
|
public int getMinorVersion() {
|
return minorVersion;
|
}
|
|
public SentinelVersion setMinorVersion(int minorVersion) {
|
this.minorVersion = minorVersion;
|
return this;
|
}
|
|
public int getFixVersion() {
|
return fixVersion;
|
}
|
|
public SentinelVersion setFixVersion(int fixVersion) {
|
this.fixVersion = fixVersion;
|
return this;
|
}
|
|
public String getPostfix() {
|
return postfix;
|
}
|
|
public SentinelVersion setPostfix(String postfix) {
|
this.postfix = postfix;
|
return this;
|
}
|
|
public boolean greaterThan(SentinelVersion version) {
|
if (version == null) {
|
return true;
|
}
|
return getFullVersion() > version.getFullVersion();
|
}
|
|
public boolean greaterOrEqual(SentinelVersion version) {
|
if (version == null) {
|
return true;
|
}
|
return getFullVersion() >= version.getFullVersion();
|
}
|
|
@Override
|
public boolean equals(Object o) {
|
if (this == o) { return true; }
|
if (o == null || getClass() != o.getClass()) { return false; }
|
|
SentinelVersion that = (SentinelVersion)o;
|
|
if (getFullVersion() != that.getFullVersion()) { return false; }
|
return postfix != null ? postfix.equals(that.postfix) : that.postfix == null;
|
}
|
|
@Override
|
public int hashCode() {
|
int result = majorVersion;
|
result = 31 * result + minorVersion;
|
result = 31 * result + fixVersion;
|
result = 31 * result + (postfix != null ? postfix.hashCode() : 0);
|
return result;
|
}
|
|
@Override
|
public String toString() {
|
return "SentinelVersion{" +
|
"majorVersion=" + majorVersion +
|
", minorVersion=" + minorVersion +
|
", fixVersion=" + fixVersion +
|
", postfix='" + postfix + '\'' +
|
'}';
|
}
|
}
|