Java tutorial
/* * Copyright 2012 - 2013 Silvio Wangler (silvio.wangler@gmail.com) * * 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 ch.silviowangler.dox; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; import java.io.Serializable; import static com.google.common.base.MoreObjects.toStringHelper; /** * @author Silvio Wangler * @since 0.1 */ public class DoxVersion implements Serializable { private String version; public DoxVersion(String version) { this.version = version; } public String getVersion() { return version; } public String formatVersion() { if (this.version.contains("-")) { String[] tokens = this.version.split("-"); if (tokens.length == 3 && this.version.matches("(\\d\\.?)+-[A-Za-z0-9]+-\\d{14}")) { DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyyMMddHHmmss"); DateTime dateTime = dateTimeFormatter.parseDateTime(tokens[tokens.length - 1]); StringBuilder sb = new StringBuilder(tokens[0]); sb.append("-").append(tokens[1]).append(" (").append(dateTime.toString("dd.MM.yyyy HH:mm:ss")) .append(")"); return sb.toString(); } else if (tokens.length == 2 && tokens[1].matches("\\d{14}")) { DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyyMMddHHmmss"); DateTime dateTime = dateTimeFormatter.parseDateTime(tokens[tokens.length - 1]); StringBuilder sb = new StringBuilder(tokens[0]); sb.append(" (").append(dateTime.toString("dd.MM.yyyy HH:mm:ss")).append(")"); return sb.toString(); } } if ("@dox.app.version@".equals(this.version)) { return "<development mode>"; } return "invalid"; } @Override public String toString() { return toStringHelper(this).add("version", version).toString(); } }