private ExpirationBean getExpirationBeanFromString()

in modules/core/src/main/java/org/apache/savan/eventing/EventingSubscriptionProcessor.java [285:329]


    private ExpirationBean getExpirationBeanFromString(String expiresStr) throws SavanException {

        ExpirationBean bean = new ExpirationBean();

        //expires can be a duration or a date time.
        //Doing the conversion using the ConverUtil helper class.

        Date date = null;
        boolean isDuration = CommonUtil.isDuration(expiresStr);

        if (isDuration) {
            try {
                bean.setDuration(true);
                Duration duration = ConverterUtil.convertToDuration(expiresStr);
                bean.setDurationValue(duration);
            } catch (IllegalArgumentException e) {
                String message = "Cannot convert the Expiration value to a valid duration";
                throw new SavanException(message, e);
            }
        } else {
            try {
                Calendar calendar = ConverterUtil.convertToDateTime(expiresStr);
                date = calendar.getTime();
                bean.setDateValue(date);
            } catch (Exception e) {
                String message = "Cannot convert the Expiration value to a valid DATE/TIME";
                throw new SavanException(message, e);
            }
        }

        boolean invalidExpirationTime = false;
        if (bean.isDuration()) {
            if (isInvalidDiration(bean.getDurationValue()))
                invalidExpirationTime = true;
        } else {
            if (isDateInThePast(bean.getDateValue()))
                invalidExpirationTime = true;
        }

        if (invalidExpirationTime) {
            //TODO throw Invalid Expiration Time fault
        }

        return bean;
    }