📄 syncsync.java
字号:
/**
* @(#)$RCSfile: SyncSync.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 Sync (CmdID, Put?, Target, Source?, (Add | Delete | Replace)*, NoResp?)>
* <p>
* <pre>
* <Sync>
* <CmdID>CmdID (int)</CmdID>
* <Target>
* <LocURI>DB Name</LocURI>
* ?<LocName>name</LocName>
* </Target>
* ?<Source>
* <LocURI>DB Name</LocURI>
* ?<LocName>name</LocName>
* </Source>
* ?<Put>...</Put>
* *<Add></Add>
* *<Delete></Delete>
* *<Replace></Replace>
* </Sync>
* </pre>
*
* @version $1.0$
* @author Oleg A. Oksyuk
*/
public class SyncSync extends SyncTargetOwner {
private SyncPut put;
private SyncSource source;
private Vector commands = new Vector();
public SyncSync(IXMLNode el)
{
super(el, new SyncTarget(el.getChild(SyncCommandNames.TARGET)));
IXMLNode child = el.getChild(SyncCommandNames.PUT);
put = (child != null) ? new SyncPut(child) : null;
child = el.getChild(SyncCommandNames.SOURCE);
source = (child != null) ? new SyncSource(child) : null;
Enumeration en = el.getChildren();
while (en.hasMoreElements())
{
child = (IXMLNode) en.nextElement();
if (SyncCommandNames.ADD.equals(child.getName()))
{
addCommand(new SyncAdd(child));
}
else if (SyncCommandNames.DELETE.equals(child.getName()))
{
addCommand(new SyncDelete(child));
}
else if (SyncCommandNames.REPLACE.equals(child.getName()))
{
addCommand(new SyncReplace(child));
}
}
}
public SyncSync(SyncCmdId cmdId, SyncTarget pTarget, SyncSource pSource, SyncPut pPut, boolean isNoResp)
{
super(SyncCommandNames.SYNC, cmdId, pTarget, isNoResp);
source = pSource;
put = pPut;
}
public SyncSync(SyncTarget pTarget, SyncSource pSource, SyncPut pPut, boolean isNoResp)
{
super(SyncCommandNames.SYNC, SyncCommandNames.DEF.EMPTY_CMD_ID, pTarget, isNoResp);
source = pSource;
put = pPut;
}
public void addCommand(SyncSyncCommand command)
{
if ((command instanceof SyncAdd)
|| (command instanceof SyncDelete)
|| (command instanceof SyncReplace)) {
commands.addElement(command);
} else {
throw new SyncMLDocStructureException(command.getName()+" command could be added to Sync");
}
}
public Enumeration getCommands()
{
return commands.elements();
}
public SyncPut getPut()
{
return put;
}
public SyncSource getSource()
{
return source;
}
public Object getElData(int level)
{
StringBuffer res = new StringBuffer();
res.append(getCmdId().toString(level+1));
if (isNoResp())
{
res.append(SyncCommandNames.DEF.SYNC_NO_RESP.toString(level+1));
}
res.append(getTarget().toString(level+1));
if (source != null)
{
res.append(source.toString(level+1));
}
if (put != null)
{
res.append(put.toString(level+1));
}
Enumeration comEn = getCommands();
SyncCommand comm;
while (comEn.hasMoreElements())
{
comm = (SyncCommand) comEn.nextElement();
res.append(comm.toString(level+1));
}
return res;
}
/**
* @return true if Sync has no Put command.
*/
public boolean isPureSync()
{
return (null == put);
}
/**
* @return true if Sync has only one command - Put.
*/
public boolean isPurePut()
{
return ((null != put) && (commands.isEmpty()));
}
}
/* -----------------------------------------------------------------------------
* Change log:
* -----------------------------------------------------------------------------
* $Log: SyncSync.java,v $
* Revision 1.2 2001/10/17 15:27:43 OlegO
* changed comments for better javadoc
*
* Revision 1.1.1.1 2001/10/11 13:13:32 OlegO
* no message
*
* Revision 1.2 2001/07/27 07:41:18 OlegO
* no message
*
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -