--- /dev/null
+/*******************************************************************************
+ * Copyright (c) 2016 EfficiOS Inc., Alexandre Montplaisir
+ *
+ * All rights reserved. This program and the accompanying materials are
+ * made available under the terms of the Eclipse Public License v1.0 which
+ * accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *******************************************************************************/
+
+package org.eclipse.tracecompass.internal.provisional.analysis.lami.core.types;
+
+import org.eclipse.jdt.annotation.Nullable;
+
+/**
+ * Lami 'version' data type
+ *
+ * @author Alexandre Montplaisir
+ */
+public class LamiVersion {
+
+ private final int fMajor;
+ private final int fMinor;
+ private final int fPatchLevel;
+ private final @Nullable String fExtra;
+
+ /**
+ * Construct a new version number. Normally to be show as:
+ *
+ * major.minor.patchlevel.extra
+ *
+ * @param major
+ * Major version number
+ * @param minor
+ * Minor version number
+ * @param patchLevel
+ * Patch version number
+ * @param extra
+ * Extra version number
+ */
+ public LamiVersion(int major, int minor, int patchLevel, @Nullable String extra) {
+ fMajor = major;
+ fMinor = minor;
+ fPatchLevel = patchLevel;
+ fExtra = extra;
+ }
+
+ /**
+ * @return The major version number
+ */
+ public int getMajor() {
+ return fMajor;
+ }
+
+ /**
+ * @return The minor version number
+ */
+ public int getMinor() {
+ return fMinor;
+ }
+
+ /**
+ * @return The patchlevel version number
+ */
+ public int getPatchLevel() {
+ return fPatchLevel;
+ }
+
+ /**
+ * @return The extra version number. May be a string, and may be null.
+ */
+ public @Nullable String getExtra() {
+ return fExtra;
+ }
+}