1c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist/* 2c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist * Copyright (C) 2016 The Android Open Source Project 3c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist * 4c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist * Licensed under the Apache License, Version 2.0 (the "License"); 5c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist * you may not use this file except in compliance with the License. 6c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist * You may obtain a copy of the License at 7c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist * 8c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist * http://www.apache.org/licenses/LICENSE-2.0 9c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist * 10c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist * Unless required by applicable law or agreed to in writing, software 11c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist * distributed under the License is distributed on an "AS IS" BASIS, 12c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist * See the License for the specific language governing permissions and 14c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist * limitations under the License. 15c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist */ 16c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist 17c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvistpackage com.android.server.wifi.hotspot2.omadm; 18c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist 19c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvistimport java.util.Map; 20c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist 21c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist/** 22c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist * A specialized OMAConstructed OMA-DM node used as the MgmtTree root node in Passpoint 23c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist * management trees. 24c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist */ 25c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvistpublic class ManagementTreeRoot extends OMAConstructed { 26c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist private final String mDtdRev; 27c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist 28c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist public ManagementTreeRoot(XMLNode node, String dtdRev) { 29c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist super(null, MOTree.MgmtTreeTag, null, new MultiValueMap<OMANode>(), 30c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist node.getTextualAttributes()); 31c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist mDtdRev = dtdRev; 32c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist } 33c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist 34c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist public ManagementTreeRoot(String dtdRev) { 35c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist super(null, MOTree.MgmtTreeTag, null, "xmlns", OMAConstants.SyncML); 36c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist mDtdRev = dtdRev; 37c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist } 38c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist 39c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist @Override 40c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist public void toXml(StringBuilder sb) { 41c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist sb.append('<').append(MOTree.MgmtTreeTag); 42c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist if (getAttributes() != null && !getAttributes().isEmpty()) { 43c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist for (Map.Entry<String, String> avp : getAttributes().entrySet()) { 44c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist sb.append(' ').append(avp.getKey()).append("=\"") 45c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist .append(escape(avp.getValue())).append('"'); 46c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist } 47c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist } 48c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist sb.append(">\n"); 49c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist 50c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist sb.append('<').append(OMAConstants.SyncMLVersionTag) 51c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist .append('>').append(mDtdRev) 52c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist .append("</").append(OMAConstants.SyncMLVersionTag).append(">\n"); 53c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist for (OMANode child : getChildren()) { 54c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist child.toXml(sb); 55c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist } 56c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist sb.append("</").append(MOTree.MgmtTreeTag).append(">\n"); 57c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist } 58c9b88562541a0c2acd60d0a01ac1e182e73c79f9Jan Nordqvist} 59