// 
// Decompiled by Procyon v0.6.0
// 

package com.google.common.flogger.parameter;

import com.google.common.flogger.backend.FormatOptions;

public final class DateTimeParameter extends Parameter
{
    private final DateTimeFormat format;
    private final String formatString;
    
    public static Parameter of(final DateTimeFormat format, final FormatOptions options, final int index) {
        return new DateTimeParameter(options, index, format);
    }
    
    private DateTimeParameter(final FormatOptions options, final int index, final DateTimeFormat format) {
        super(options, index);
        this.format = format;
        this.formatString = options.appendPrintfOptions(new StringBuilder("%")).append(options.shouldUpperCase() ? 'T' : 't').append(format.getChar()).toString();
    }
    
    @Override
    protected void accept(final ParameterVisitor visitor, final Object value) {
        visitor.visitDateTime(value, this.format, this.getFormatOptions());
    }
    
    @Override
    public String getFormat() {
        return this.formatString;
    }
}
