package org.etk.core.rest.impl.header;
import java.util.Locale;
import javax.ws.rs.ext.RuntimeDelegate;
import javax.ws.rs.ext.RuntimeDelegate.HeaderDelegate;
public class AcceptLanguage extends Language implements QualityValue {
/**
* Default accepted language, it minds any language is acceptable.
*/
public static final AcceptLanguage DEFAULT = new AcceptLanguage(new Locale("*"));
/**
* Quality value for 'accepted' HTTP headers, e. g. en-gb;0.9
*/
private final float qValue;
/**
* See {@link RuntimeDelegate#createHeaderDelegate(Class)}.
*/
private static final HeaderDelegate<AcceptLanguage> DELEGATE =
RuntimeDelegate.getInstance().createHeaderDelegate(AcceptLanguage.class);
/**
* Creates a new instance of AcceptedLanguage by parsing the supplied string.
*
* @param header accepted language string
* @return AcceptedLanguage
*/
public static AcceptLanguage valueOf(String header) {
return DELEGATE.fromString(header);
}
/**
* Constructs new instance of accepted language with default quality value.
*
* @param locale the language
*/
public AcceptLanguage(Locale locale) {
super(locale);
qValue = DEFAULT_QUALITY_VALUE;
}
/**
* Constructs new instance of accepted language with quality value.
*
* @param locale the language
* @param qValue quality value
*/
public AcceptLanguage(Locale locale, float qValue) {
super(locale);
this.qValue = qValue;
}
// QualityValue
/**
* {@inheritDoc}
*/
public float getQvalue() {
return qValue;
}
}