OMAScalar.java revision af955ffa0082189fb688429732427c333f2491ce
1package com.android.server.wifi.hotspot2.omadm;
2
3import android.util.Log;
4
5import java.io.IOException;
6import java.io.OutputStream;
7import java.util.Collection;
8import java.util.Iterator;
9
10public class OMAScalar extends OMANode {
11    private final String mValue;
12
13    public OMAScalar(OMANode parent, String name, String context, String value) {
14        super(parent, name, context);
15        mValue = value;
16    }
17
18    public String getScalarValue(Iterator<String> path) throws OMAException {
19        return mValue;
20    }
21
22    @Override
23    public OMAConstructed getListValue(Iterator<String> path) throws OMAException {
24        throw new OMAException("Scalar encountered in list path: " + getPathString());
25    }
26
27    @Override
28    public boolean isLeaf() {
29        return true;
30    }
31
32    @Override
33    public Collection<OMANode> getChildren() {
34        throw new UnsupportedOperationException();
35    }
36
37    @Override
38    public String getValue() {
39        return mValue;
40    }
41
42    @Override
43    public OMANode getChild(String name) {
44        throw new UnsupportedOperationException();
45    }
46
47    @Override
48    public OMANode addChild(String name, String context, String value, String path)
49            throws IOException {
50        throw new UnsupportedOperationException();
51    }
52
53    @Override
54    public void toString(StringBuilder sb, int level) {
55        sb.append(getPathString()).append('=').append(mValue);
56        if (getContext() != null) {
57            sb.append(" (").append(getContext()).append(')');
58        }
59        sb.append('\n');
60    }
61
62    @Override
63    public void marshal(OutputStream out, int level) throws IOException {
64        Log.d("PARSE-LOG", "Node " + getName() + " has value " + getValue());
65
66        OMAConstants.indent(level, out);
67        OMAConstants.serializeString(getName(), out);
68        out.write((byte) '=');
69        OMAConstants.serializeString(getValue(), out);
70        out.write((byte) '\n');
71    }
72}
73