com.github.mauricio.async.db.util.Version.scala Maven / Gradle / Ivy
/*
* Copyright 2013 Maurício Linhares
*
* Maurício Linhares licenses this file to you 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.github.mauricio.async.db.util
import scala.util._
import scala.util.Success
object Version {
private def tryParse( index : Int, pieces : Array[String] ) : Int = {
Try {
pieces(index).toInt
} match {
case Success(value) => value
case Failure(e) => 0
}
}
def apply( version : String ) : Version = {
val pieces = version.split('.')
new Version( tryParse(0, pieces), tryParse(1, pieces), tryParse(2, pieces) )
}
}
case class Version( major : Int, minor : Int, maintenance : Int ) extends Ordered[Version] {
override def compare( y: Version): Int = {
if ( this == y ) {
return 0
}
if ( this.major != y.major ) {
return this.major.compare(y.major)
}
if ( this.minor != y.minor ) {
return this.minor.compare(y.minor)
}
this.maintenance.compare(y.maintenance)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy