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