*/
package org.opendaylight.yangtools.yang.common;
+import com.google.common.base.Objects;
import java.io.Serializable;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Date;
-
import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.objcache.ObjectCache;
import org.opendaylight.yangtools.objcache.ObjectCacheFactory;
private final Date revision;
//Nullable
- private String formattedRevision;
+ private volatile String formattedRevision;
private QNameModule(final URI namespace, final Date revision) {
this.namespace = namespace;
return null;
}
- if (formattedRevision == null) {
- synchronized (this) {
- if (formattedRevision == null) {
- formattedRevision = SimpleDateFormatUtil.getRevisionFormat().format(revision);
- }
- }
+ String ret = formattedRevision;
+ if (ret == null) {
+ ret = SimpleDateFormatUtil.getRevisionFormat().format(revision);
+ formattedRevision = ret;
}
- return formattedRevision;
+ return ret;
}
/**
* Returns the namespace of the module which is specified as argument of
- * YANG {@link Module <b><font color="#00FF00">namespace</font></b>}
- * keyword.
+ * YANG Module <b><font color="#00FF00">namespace</font></b> keyword.
*
* @return URI format of the namespace of the module
*/
* Returns the revision date for the module.
*
* @return date of the module revision which is specified as argument of
- * YANG {@link Module <b><font color="#339900">revison</font></b>}
- * keyword
+ * YANG Module <b><font color="#339900">revison</font></b> keyword
*/
public Date getRevision() {
return revision;
}
return compositeURI;
}
+
+ @Override
+ public String toString() {
+ return Objects.toStringHelper(this).omitNullValues().add("ns", getNamespace()).add("rev", getFormattedRevision()).toString();
+ }
}