blob: 28abac414711c72ea2a17197ae4f3d19bd3e77e3 [file] [log] [blame]
/*==================================================
* Geochrono Unit
*==================================================
*/
Timeline.GeochronoUnit = new Object();
Timeline.GeochronoUnit.MA = 0;
Timeline.GeochronoUnit.AGE = 1;
Timeline.GeochronoUnit.EPOCH = 2;
Timeline.GeochronoUnit.PERIOD = 3;
Timeline.GeochronoUnit.ERA = 4;
Timeline.GeochronoUnit.EON = 5;
Timeline.GeochronoUnit.getParser = function(format) {
return Timeline.GeochronoUnit.parseFromObject;
};
Timeline.GeochronoUnit.createLabeller = function(locale, timeZone) {
return new Timeline.GeochronoLabeller(locale);
};
Timeline.GeochronoUnit.wrapMA = function (n) {
return new Timeline.GeochronoUnit._MA(n);
};
Timeline.GeochronoUnit.makeDefaultValue = function () {
return Timeline.GeochronoUnit.wrapMA(0);
};
Timeline.GeochronoUnit.cloneValue = function (v) {
return new Timeline.GeochronoUnit._MA(v._n);
};
Timeline.GeochronoUnit.parseFromObject = function(o) {
if (o instanceof Timeline.GeochronoUnit._MA) {
return o;
} else if (typeof o == "number") {
return Timeline.GeochronoUnit.wrapMA(o);
} else if (typeof o == "string" && o.length > 0) {
return Timeline.GeochronoUnit.wrapMA(Number(o));
} else {
return null;
}
};
Timeline.GeochronoUnit.toNumber = function(v) {
return v._n;
};
Timeline.GeochronoUnit.fromNumber = function(n) {
return new Timeline.GeochronoUnit._MA(n);
};
Timeline.GeochronoUnit.compare = function(v1, v2) {
var n1, n2;
if (typeof v1 == "object") {
n1 = v1._n;
} else {
n1 = Number(v1);
}
if (typeof v2 == "object") {
n2 = v2._n;
} else {
n2 = Number(v2);
}
return n2 - n1;
};
Timeline.GeochronoUnit.earlier = function(v1, v2) {
return Timeline.GeochronoUnit.compare(v1, v2) < 0 ? v1 : v2;
};
Timeline.GeochronoUnit.later = function(v1, v2) {
return Timeline.GeochronoUnit.compare(v1, v2) > 0 ? v1 : v2;
};
Timeline.GeochronoUnit.change = function(v, n) {
return new Timeline.GeochronoUnit._MA(v._n - n);
};
Timeline.GeochronoUnit._MA = function(n) {
this._n = n;
};