📄 syncbody.java
字号:
/**
* @(#)$RCSfile: SyncBody.java,v $ $Revision: 1.2 $
*
* ====================================================================
* Copyright 2001, Reaxion Corp.,
* 11418 105th PL NE, Kirkland, WA, 98033, USA
* All rights reserved.
* ====================================================================
*
* The contents of this file are subject to the Mozilla Public
* License Version 1.1 (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.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is the Tequila SyncML.
*
* The Initial Developer of the Original Code is Reaxion Corp.
* All Rights Reserved.
*/
package com.reaxion.tequila.syncml;
import java.util.*;
import com.reaxion.tequila.syncml.xml.IXMLNode;
import com.reaxion.tequila.syncml.util.*;
/**
* <!ELEMENT SyncBody ((Alert | Status |Sync)*, Final)>
* <p>
* <pre>
* <SyncBody>
* +<Alert>...</Alert>
* +<Status>...</Status>
* +<Sync>...</Sync>
* <Final/>
* </SyncBody>
* </pre>
*
* @version $1.0$
* @author Oleg A. Oksyuk
*/
public class SyncBody extends SyncElement
{
private Vector commands = new Vector();
public SyncBody(IXMLNode el)
{
super(el);
boolean finalExists = false;
IXMLNode child;
Enumeration en = el.getChildren();
while (en.hasMoreElements())
{
child = (IXMLNode) en.nextElement();
if (SyncCommandNames.ALERT.equals(child.getName()))
{
addCommand(new SyncAlert(child));
}
else if (SyncCommandNames.STATUS.equals(child.getName()))
{
addCommand(new SyncStatus(child));
}
else if (SyncCommandNames.SYNC.equals(child.getName()))
{
addCommand(new SyncSync(child));
}
else if (SyncCommandNames.FINAL.equals(child.getName()))
{
if (finalExists)
{
throw new SyncMLDocStructureException("More than one final in a body");
}
finalExists = true;
}
else
{
throw new SyncMLDocStructureException("Wrong command in a body");
}
}
if (!finalExists)
{
throw new SyncMLDocStructureException("Final element is absent in body");
}
}
public SyncBody()
{
super(SyncCommandNames.BODY);
}
public SyncBody(Enumeration outCommands)
{
super(SyncCommandNames.BODY);
while (outCommands.hasMoreElements())
{
addCommand((SyncCmdIdOwner) outCommands.nextElement());
}
}
public void addCommand(SyncCmdIdOwner command)
{
if ((command instanceof SyncAlert)
|| (command instanceof SyncStatus)
|| (command instanceof SyncSync)) {
commands.addElement(command);
}
else
{
throw new SyncMLDocStructureException(command+" command could be added to SyncBody");
}
}
public Enumeration getCommands()
{
return commands.elements();
}
public Object getElData(int level)
{
StringBuffer res = new StringBuffer();
Enumeration en = commands.elements();
SyncCmdIdOwner cmdIdOwner;
while (en.hasMoreElements())
{
cmdIdOwner = (SyncCmdIdOwner) en.nextElement();
res.append(cmdIdOwner.toString(level+1));
}
res.append(SyncCommandNames.DEF.SYNC_FINAL.toString(level+1));
return res;
}
}
/* -----------------------------------------------------------------------------
* Change log:
* -----------------------------------------------------------------------------
* $Log: SyncBody.java,v $
* Revision 1.2 2001/10/17 15:27:42 OlegO
* changed comments for better javadoc
*
* Revision 1.1.1.1 2001/10/11 13:13:32 OlegO
* no message
*
* Revision 1.1 2001/07/24 13:08:17 OlegO
* no message
*
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -