171a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvistpackage com.android.server.wifi.hotspot2.omadm; 271a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist 371a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvistimport java.io.IOException; 471a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvistimport java.io.OutputStream; 571a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvistimport java.util.Collection; 671a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvistimport java.util.Iterator; 71d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvistimport java.util.Map; 871a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist 971a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvistpublic class OMAScalar extends OMANode { 1071a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist private final String mValue; 1171a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist 121d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist public OMAScalar(OMAConstructed parent, String name, String context, String value, 131d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist String ... avps) { 141d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist this(parent, name, context, value, buildAttributes(avps)); 151d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist } 161d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist 171d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist public OMAScalar(OMAConstructed parent, String name, String context, String value, 181d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist Map<String, String> avps) { 191d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist super(parent, name, context, avps); 2071a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist mValue = value; 2171a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist } 2271a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist 231d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist @Override 241d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist public OMAScalar reparent(OMAConstructed parent) { 251d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist return new OMAScalar(parent, getName(), getContext(), mValue, getAttributes()); 261d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist } 271d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist 2871a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist public String getScalarValue(Iterator<String> path) throws OMAException { 2971a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist return mValue; 3071a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist } 3171a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist 3271a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist @Override 331d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist public OMANode getListValue(Iterator<String> path) throws OMAException { 3471a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist throw new OMAException("Scalar encountered in list path: " + getPathString()); 3571a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist } 3671a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist 3771a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist @Override 3871a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist public boolean isLeaf() { 3971a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist return true; 4071a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist } 4171a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist 4271a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist @Override 4371a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist public Collection<OMANode> getChildren() { 4471a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist throw new UnsupportedOperationException(); 4571a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist } 4671a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist 4771a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist @Override 4871a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist public String getValue() { 4971a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist return mValue; 5071a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist } 5171a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist 5271a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist @Override 531d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist public OMANode getChild(String name) throws OMAException { 541d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist throw new OMAException("'" + getName() + "' is a scalar node"); 5571a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist } 5671a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist 5771a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist @Override 5871a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist public OMANode addChild(String name, String context, String value, String path) 5971a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist throws IOException { 6071a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist throw new UnsupportedOperationException(); 6171a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist } 6271a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist 6371a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist @Override 6471a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist public void toString(StringBuilder sb, int level) { 6571a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist sb.append(getPathString()).append('=').append(mValue); 6671a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist if (getContext() != null) { 6771a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist sb.append(" (").append(getContext()).append(')'); 6871a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist } 6971a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist sb.append('\n'); 7071a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist } 7171a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist 7271a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist @Override 7371a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist public void marshal(OutputStream out, int level) throws IOException { 7471a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist OMAConstants.indent(level, out); 7571a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist OMAConstants.serializeString(getName(), out); 7671a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist out.write((byte) '='); 7771a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist OMAConstants.serializeString(getValue(), out); 7871a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist out.write((byte) '\n'); 7971a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist } 801d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist 811d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist @Override 821d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist public void fillPayload(StringBuilder sb) { 831d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist sb.append('<').append(MOTree.ValueTag).append('>'); 84c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist sb.append(escape(mValue)); 851d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist sb.append("</").append(MOTree.ValueTag).append(">\n"); 861d5cd3938f9191184cd9aea3059a3b62bf3a0372Jan Nordqvist } 8771a988c8e9859244b83cd55bb6b6ee913fcaf95cJan Nordqvist} 88