*/
protected final void encodeNonIdentifyingStringOnFirstBit(String URI, int id, Object data) throws FastInfosetException, IOException {
if (URI != null) {
id = _v.encodingAlgorithm.get(URI);
if (id == KeyIntMap.NOT_PRESENT) {
throw new EncodingAlgorithmException(CommonResourceBundle.getInstance().getString("message.EncodingAlgorithmURI", new Object[]{URI}));
}
id += EncodingConstants.ENCODING_ALGORITHM_APPLICATION_START;
EncodingAlgorithm ea = (EncodingAlgorithm)_registeredEncodingAlgorithms.get(URI);
if (ea != null) {
encodeAIIObjectAlgorithmData(id, data, ea);
} else {
if (data instanceof byte[]) {
byte[] d = (byte[])data;
encodeAIIOctetAlgorithmData(id, d, 0, d.length);
} else {
throw new EncodingAlgorithmException(CommonResourceBundle.getInstance().getString("message.nullEncodingAlgorithmURI"));
}
}
} else if (id <= EncodingConstants.ENCODING_ALGORITHM_BUILTIN_END) {
int length = 0;
switch(id) {
case EncodingAlgorithmIndexes.HEXADECIMAL:
case EncodingAlgorithmIndexes.BASE64:
length = ((byte[])data).length;
break;
case EncodingAlgorithmIndexes.SHORT:
length = ((short[])data).length;
break;
case EncodingAlgorithmIndexes.INT:
length = ((int[])data).length;
break;
case EncodingAlgorithmIndexes.LONG:
case EncodingAlgorithmIndexes.UUID:
length = ((long[])data).length;
break;
case EncodingAlgorithmIndexes.BOOLEAN:
length = ((boolean[])data).length;
break;
case EncodingAlgorithmIndexes.FLOAT:
length = ((float[])data).length;
break;
case EncodingAlgorithmIndexes.DOUBLE:
length = ((double[])data).length;
break;
case EncodingAlgorithmIndexes.CDATA:
throw new UnsupportedOperationException(CommonResourceBundle.getInstance().getString("message.CDATA"));
default:
throw new EncodingAlgorithmException(CommonResourceBundle.getInstance().getString("message.UnsupportedBuiltInAlgorithm", new Object[]{Integer.valueOf(id)}));
}
encodeAIIBuiltInAlgorithmData(id, data, 0, length);
} else if (id >= EncodingConstants.ENCODING_ALGORITHM_APPLICATION_START) {
if (data instanceof byte[]) {
byte[] d = (byte[])data;
encodeAIIOctetAlgorithmData(id, d, 0, d.length);
} else {
throw new EncodingAlgorithmException(CommonResourceBundle.getInstance().getString("message.nullEncodingAlgorithmURI"));
}
} else {
throw new EncodingAlgorithmException(CommonResourceBundle.getInstance().getString("message.identifiers10to31Reserved"));
}
}