/* ******************************************************************************* * Copyright (C) 2009, International Business Machines Corporation and * * others. All Rights Reserved. * ******************************************************************************* */ package com.ibm.icu.impl.locale; import com.ibm.icu.impl.locale.LanguageTag.ParseStatus; public class PrivateuseExtension extends Extension { public static final char SINGLETON = 'x'; protected PrivateuseExtension() { super(SINGLETON); } /* * package local constructor only used by LanguageTag implementation */ PrivateuseExtension(String privuse) { super(SINGLETON); _value = privuse; } protected void setExtensionValue(StringTokenIterator itr, ParseStatus sts) { if (sts.isError() || itr.isDone()) { _value = null; return; } StringBuilder buf = new StringBuilder(); while (!itr.isDone()) { String s = itr.current(); if (!LanguageTag.isPrivateuseSubtag(s)) { break; } s = LanguageTag.canonicalizePrivateuseSubtag(s); if (buf.length() != 0) { buf.append(LanguageTag.SEP); } buf.append(s); sts.parseLength = itr.currentEnd(); itr.next(); } if (buf.length() == 0) { _value = null; } else { _value = buf.toString(); } } }