WbxmlPrimitiveSerializer.java
上传用户:szyujian
上传日期:2016-09-20
资源大小:320k
文件大小:2k
源码类别:
android开发
开发平台:
C/C++
- /*
- * Copyright (C) 2007 Esmertec AG.
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package com.android.im.imps;
- import java.io.IOException;
- import java.io.OutputStream;
- import java.util.Map;
- import com.android.im.imps.ImpsConstants.ImpsVersion;
- public class WbxmlPrimitiveSerializer implements PrimitiveSerializer {
- private String mVersionNs;
- private String mTransacNs;
- public WbxmlPrimitiveSerializer(ImpsVersion impsVersion, String versionNs,
- String transacNs) {
- mVersionNs = versionNs;
- mTransacNs = transacNs;
- mWbxmlSerializer = new WbxmlSerializer(impsVersion);
- }
- private WbxmlSerializer mWbxmlSerializer;
- public void serialize(Primitive primitive, OutputStream out) throws IOException,
- SerializerException {
- mWbxmlSerializer.reset();
- mWbxmlSerializer.setOutput(out);
- PrimitiveElement elem = primitive.createMessage(mVersionNs, mTransacNs);
- writeElement(elem);
- }
- private void writeElement(PrimitiveElement element) throws IOException,
- SerializerException {
- String name = element.getTagName();
- String[] atts = null;
- Map<String, String> attrMap = element.getAttributes();
- if(attrMap != null && attrMap.size() > 0) {
- atts = new String[attrMap.size() * 2];
- int index = 0;
- for (Map.Entry<String, String> entry : attrMap.entrySet()) {
- atts[index++] = entry.getKey();
- atts[index++] = entry.getValue();
- }
- }
- mWbxmlSerializer.startElement(name, atts);
- String contents = element.getContents();
- if(contents != null) {
- mWbxmlSerializer.characters(contents);
- }
- if(element.getChildCount() > 0) {
- for(PrimitiveElement child : element.getChildren()) {
- writeElement(child);
- }
- }
- mWbxmlSerializer.endElement();
- }
- }