/* * Copyright (c) 2013 Cisco Systems, Inc. and others. 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.opendaylight.yangtools.yang.common; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public final class SimpleDateFormatUtil { /** * revision format according to Yang spec */ private static final String REVISION_SIMPLE_DATE = "yyyy-MM-dd"; /** * default Yang date that is used when date is not present */ private static final String DEFAULT_DATE = "1970-01-01"; /** * {@link SimpleDateFormatUtil#DEFAULT_DATE} for revision statement */ public static final Date DEFAULT_DATE_REV; /** * {@link SimpleDateFormatUtil#DEFAULT_DATE} for import statement */ public static final Date DEFAULT_DATE_IMP; /** * {@link SimpleDateFormatUtil#DEFAULT_DATE} for belongs-to statement */ public static final Date DEFAULT_BELONGS_TO_DATE; static { final SimpleDateFormat simpleDateFormat = new SimpleDateFormat(REVISION_SIMPLE_DATE); try { DEFAULT_DATE_REV = simpleDateFormat.parse(DEFAULT_DATE); DEFAULT_DATE_IMP = simpleDateFormat.parse(DEFAULT_DATE); DEFAULT_BELONGS_TO_DATE = simpleDateFormat.parse(DEFAULT_DATE); } catch (final ParseException e) { throw new ExceptionInInitializerError(e); } } private SimpleDateFormatUtil() { throw new UnsupportedOperationException("Utility class should not be instantiated"); } private static final ThreadLocal<SimpleDateFormat> REVISION_FORMAT = new ThreadLocal<SimpleDateFormat>() { @Override protected SimpleDateFormat initialValue() { return new SimpleDateFormat(REVISION_SIMPLE_DATE); } @Override public void set(final SimpleDateFormat value) { throw new UnsupportedOperationException(); } }; public static SimpleDateFormat getRevisionFormat() { return REVISION_FORMAT.get(); } }