1 /* 2 (C) Copyright IBM Corp. 2006, 2012 3 4 THIS FILE IS PROVIDED UNDER THE TERMS OF THE ECLIPSE PUBLIC LICENSE 5 ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE 6 CONSTITUTES RECIPIENTS ACCEPTANCE OF THE AGREEMENT. 7 8 You can obtain a current copy of the Eclipse Public License from 9 http://www.opensource.org/licenses/eclipse-1.0.php 10 11 @author : Endre Bak, ebak@de.ibm.com 12 * 13 * Flag Date Prog Description 14 * ------------------------------------------------------------------------------- 15 * 1565892 2006-10-06 ebak Make SBLIM client JSR48 compliant 16 * 2003590 2008-06-30 blaschke-oss Change licensing from CPL to EPL 17 * 2204488 2008-10-28 raman_arora Fix code to remove compiler warnings 18 * 2227442 2008-11-05 blaschke-oss Add missing serialVersionUID 19 * 2524131 2009-01-21 raman_arora Upgrade client to JDK 1.5 (Phase 1) 20 * 2531371 2009-02-10 raman_arora Upgrade client to JDK 1.5 (Phase 2) 21 * 2795671 2009-05-22 raman_arora Add Type to Comparable <T> 22 * 2935258 2010-01-22 blaschke-oss Sync up javax.cim.* javadoc with JSR48 1.0.0 23 * 3496301 2012-03-02 blaschke-oss Sync up javax.* javadoc with JSR48 1.0.0 Final 24 */ 25 26 package org.metricshub.wbem.javax.cim; 27 28 /*- 29 * ╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲ 30 * WBEM Java Client 31 * ჻჻჻჻჻჻ 32 * Copyright 2023 - 2025 MetricsHub 33 * ჻჻჻჻჻჻ 34 * Licensed under the Apache License, Version 2.0 (the "License"); 35 * you may not use this file except in compliance with the License. 36 * You may obtain a copy of the License at 37 * 38 * http://www.apache.org/licenses/LICENSE-2.0 39 * 40 * Unless required by applicable law or agreed to in writing, software 41 * distributed under the License is distributed on an "AS IS" BASIS, 42 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 43 * See the License for the specific language governing permissions and 44 * limitations under the License. 45 * ╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱ 46 */ 47 48 import java.io.Serializable; 49 50 //Sync'd against JSR48 1.0.0 javadoc (build 1.6.0_18) on Thu Mar 01 12:21:26 EST 2012 51 /** 52 * This abstract class represents a CIM Datetime data type as defined by the 53 * Distributed Management Task Force (<a href=http://www.dmtf.org>DMTF</a>) CIM 54 * Infrastructure Specification (<a 55 * href=http://www.dmtf.org/standards/published_documents/DSP0004V2.3_final.pdf 56 * >DSP004</a>). It is in the format yyyyMMddHHmmss.SSSSSSsutc where: 57 * <ul> 58 * <li>yyyy - is a 4 digit year</li> 59 * <li>MM - is the month</li> 60 * <li>dd - is the day of the month</li> 61 * <li>HH - is the hour (24 hour clock)</li> 62 * <li>mm - is the minute</li> 63 * <li>ss - is the second</li> 64 * <li>SSSSSS - is the number of microseconds</li> 65 * <li>s - is "+" or "-", indicating the sign of the UTC (Universal Coordinated 66 * Time; for all intents and purposes the same as Greenwich Mean Time) 67 * correction field, or a ":". In the case of a ":" the value is interpreted as 68 * a time interval, and yyyyMM are interpreted as days.</li> 69 * <li>utc - is the offset from UTC in minutes (using the sign indicated by s). 70 * It is ignored for a time interval.</li> 71 * </ul> 72 * 73 * For example, the absolute datetime for Monday, May 25, 1998, at 1:30 PM EST 74 * would be represented as: 19980525133015.000000-300. Values must be 75 * zero-padded so that the entire string is always the same 25-character length. 76 * Fields which are not significant must be replaced with asterisk characters. 77 * Similarly, intervals use the same format, except that the interpretation of 78 * the fields is based on elapsed time. <br> 79 * For example, the interval datetime for an elapsed time of 1 day, 13 hours, 23 80 * minutes, 12 seconds would be: 00000001132312.000000:000. A UTC offset of zero 81 * is always used for interval properties. 82 */ 83 public abstract class CIMDateTime implements Serializable, Comparable<CIMDateTime> { 84 private static final long serialVersionUID = 3424668043014662166L; 85 86 /** 87 * Creates a <code>CIMDateTime</code> object using a string. 88 * 89 * @param pDateString 90 * A string in the format of yyyyMMddHHmmss.SSSSSSsutc. 91 * @throws IllegalArgumentException 92 * If string is not in the correct format. 93 */ 94 public CIMDateTime(String pDateString) throws IllegalArgumentException { 95 // FIXME: what to do here? 96 } 97 98 protected CIMDateTime() { 99 // FIXME: what to do here? 100 } 101 102 /** 103 * Determines whether the <code>CIMDateTime</code> that is passed in is 104 * equal to the current <code>CIMDateTime</code> object. 105 * 106 * @param pObj 107 * The CIMDateTime object to compare to. 108 * @return <code>true</code> if this CIMDateTime object is equal to the one 109 * that was passed in, otherwise <code>false</code>. 110 */ 111 @Override 112 public boolean equals(Object pObj) { 113 if (!(pObj instanceof CIMDateTime)) return false; 114 CIMDateTime that = (CIMDateTime) pObj; 115 return getDateTimeString().equals(that.getDateTimeString()); 116 } 117 118 /** 119 * Gets the internal string representation of this object. 120 * 121 * @return The internal representation of the <code>CIMDateTime</code> 122 * object. 123 */ 124 public abstract String getDateTimeString(); 125 126 /** 127 * Returns the hash code for this object. 128 * 129 * @return A hash code value for this object. 130 * @see java.lang.Object#hashCode() 131 */ 132 @Override 133 public abstract int hashCode(); 134 }