mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-28 08:26:44 +00:00
added operational transformation (OT) bundle
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>com.sap.sailing.operationaltransformation</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@@ -0,0 +1,11 @@
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 86
|
||||
/svn/monet/!svn/ver/7639/trunk/ngpm/com.sap.runlet.operationaltransformation/.settings
|
||||
END
|
||||
org.eclipse.jdt.core.prefs
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 113
|
||||
/svn/monet/!svn/ver/7639/trunk/ngpm/com.sap.runlet.operationaltransformation/.settings/org.eclipse.jdt.core.prefs
|
||||
END
|
||||
@@ -0,0 +1,62 @@
|
||||
10
|
||||
|
||||
dir
|
||||
9910
|
||||
https://forge.sap.corp/svn/monet/trunk/ngpm/com.sap.runlet.operationaltransformation/.settings
|
||||
https://forge.sap.corp/svn/monet
|
||||
|
||||
|
||||
|
||||
2009-07-30T09:47:03.927281Z
|
||||
7639
|
||||
d043530
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
8e1b717f-a215-9248-8963-3bf2ea82000e
|
||||
|
||||
org.eclipse.jdt.core.prefs
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-07-30T11:12:32.187500Z
|
||||
568798bc673452f7fcf7725f6757062b
|
||||
2009-07-30T09:47:03.927281Z
|
||||
7639
|
||||
d043530
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
331
|
||||
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 10
|
||||
text/plain
|
||||
END
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
#Thu Jul 30 11:41:49 CEST 2009
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
||||
org.eclipse.jdt.core.compiler.compliance=1.6
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.source=1.6
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
#Thu Jul 30 11:41:49 CEST 2009
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
||||
org.eclipse.jdt.core.compiler.compliance=1.6
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.source=1.6
|
||||
@@ -0,0 +1,29 @@
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 76
|
||||
/svn/monet/!svn/ver/8898/trunk/ngpm/com.sap.runlet.operationaltransformation
|
||||
END
|
||||
build.properties
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 93
|
||||
/svn/monet/!svn/ver/7639/trunk/ngpm/com.sap.runlet.operationaltransformation/build.properties
|
||||
END
|
||||
OperationalTransformationTest.launch
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 113
|
||||
/svn/monet/!svn/ver/7651/trunk/ngpm/com.sap.runlet.operationaltransformation/OperationalTransformationTest.launch
|
||||
END
|
||||
.project
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 85
|
||||
/svn/monet/!svn/ver/7639/trunk/ngpm/com.sap.runlet.operationaltransformation/.project
|
||||
END
|
||||
.classpath
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 87
|
||||
/svn/monet/!svn/ver/7639/trunk/ngpm/com.sap.runlet.operationaltransformation/.classpath
|
||||
END
|
||||
@@ -0,0 +1,6 @@
|
||||
K 10
|
||||
svn:ignore
|
||||
V 4
|
||||
bin
|
||||
|
||||
END
|
||||
+176
@@ -0,0 +1,176 @@
|
||||
10
|
||||
|
||||
dir
|
||||
9910
|
||||
https://forge.sap.corp/svn/monet/trunk/ngpm/com.sap.runlet.operationaltransformation
|
||||
https://forge.sap.corp/svn/monet
|
||||
|
||||
|
||||
|
||||
2009-12-02T14:23:28.803367Z
|
||||
8898
|
||||
d043530
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
8e1b717f-a215-9248-8963-3bf2ea82000e
|
||||
|
||||
.classpath
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-07-30T11:12:32.250000Z
|
||||
7dfc337a1ea5247d85247f102e53ce15
|
||||
2009-07-30T09:47:03.927281Z
|
||||
7639
|
||||
d043530
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
376
|
||||
|
||||
.project
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-07-30T11:12:32.265625Z
|
||||
c7771af8771f770e963d9604846283fe
|
||||
2009-07-30T09:47:03.927281Z
|
||||
7639
|
||||
d043530
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
701
|
||||
|
||||
.settings
|
||||
dir
|
||||
|
||||
META-INF
|
||||
dir
|
||||
|
||||
OperationalTransformationTest.launch
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-07-30T12:06:17.203125Z
|
||||
9476187212ef2d2b198013f002625fbe
|
||||
2009-07-30T13:54:09.892881Z
|
||||
7651
|
||||
d043530
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
3571
|
||||
|
||||
build.properties
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-07-30T11:12:32.265625Z
|
||||
72f1e780fe4bd58f12d3d4445498055e
|
||||
2009-07-30T09:47:03.927281Z
|
||||
7639
|
||||
d043530
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
80
|
||||
|
||||
docs
|
||||
dir
|
||||
|
||||
src
|
||||
dir
|
||||
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 10
|
||||
text/plain
|
||||
END
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 10
|
||||
text/plain
|
||||
END
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 10
|
||||
text/plain
|
||||
END
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 10
|
||||
text/plain
|
||||
END
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>com.sap.runlet.operationaltransformation</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
|
||||
<booleanAttribute key="append.args" value="true"/>
|
||||
<booleanAttribute key="askclear" value="false"/>
|
||||
<booleanAttribute key="automaticAdd" value="true"/>
|
||||
<booleanAttribute key="automaticValidate" value="false"/>
|
||||
<stringAttribute key="bootstrap" value=""/>
|
||||
<stringAttribute key="checked" value="[NONE]"/>
|
||||
<booleanAttribute key="clearConfig" value="true"/>
|
||||
<booleanAttribute key="clearws" value="false"/>
|
||||
<booleanAttribute key="clearwslog" value="false"/>
|
||||
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
|
||||
<booleanAttribute key="default" value="true"/>
|
||||
<booleanAttribute key="includeOptional" value="true"/>
|
||||
<stringAttribute key="location" value="${workspace_loc}/../runtime-workspace"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/com.sap.runlet.operationaltransformation/src/com/sap/runlet/operationaltransformation/test/OperationalTransformationTests.java"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="1"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.hyades.trace.ui.ATTR_DATA_COLLECTOR" value="org.eclipse.tptp.trace.jvmti.jvmtiMechanism:org.eclipse.tptp.analysisType.jvmti.execution"/>
|
||||
<stringAttribute key="org.eclipse.hyades.trace.ui.ATTR_DESTINATION_FILE" value=""/>
|
||||
<stringAttribute key="org.eclipse.hyades.trace.ui.ATTR_DESTINATION_MONITOR" value="DefaultMonitor"/>
|
||||
<stringAttribute key="org.eclipse.hyades.trace.ui.ATTR_DESTINATION_PROJECT" value="ProfileProject"/>
|
||||
<booleanAttribute key="org.eclipse.hyades.trace.ui.ATTR_PROFILE_TO_FILE" value="false"/>
|
||||
<stringAttribute key="org.eclipse.hyades.trace.ui.ATTR_PROFILING_SET" value="tptp-dummy-profiling-set-OperationalTransformationTest"/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
|
||||
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_10"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.sap.runlet.operationaltransformation.test.OperationalTransformationTests"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.sap.runlet.operationaltransformation"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx1024m -XX:PermSize=150m -ea"/>
|
||||
<stringAttribute key="pde.version" value="3.3"/>
|
||||
<stringAttribute key="product" value="org.eclipse.platform.ide"/>
|
||||
<booleanAttribute key="show_selected_only" value="false"/>
|
||||
<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
|
||||
<booleanAttribute key="tracing" value="false"/>
|
||||
<booleanAttribute key="useDefaultConfig" value="true"/>
|
||||
<booleanAttribute key="useDefaultConfigArea" value="false"/>
|
||||
<booleanAttribute key="useProduct" value="true"/>
|
||||
</launchConfiguration>
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
source.. = src/
|
||||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.
|
||||
@@ -0,0 +1,11 @@
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 85
|
||||
/svn/monet/!svn/ver/8898/trunk/ngpm/com.sap.runlet.operationaltransformation/META-INF
|
||||
END
|
||||
MANIFEST.MF
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 97
|
||||
/svn/monet/!svn/ver/8898/trunk/ngpm/com.sap.runlet.operationaltransformation/META-INF/MANIFEST.MF
|
||||
END
|
||||
@@ -0,0 +1,62 @@
|
||||
10
|
||||
|
||||
dir
|
||||
9910
|
||||
https://forge.sap.corp/svn/monet/trunk/ngpm/com.sap.runlet.operationaltransformation/META-INF
|
||||
https://forge.sap.corp/svn/monet
|
||||
|
||||
|
||||
|
||||
2009-12-02T14:23:28.803367Z
|
||||
8898
|
||||
d043530
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
8e1b717f-a215-9248-8963-3bf2ea82000e
|
||||
|
||||
MANIFEST.MF
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-12-02T11:03:40.109375Z
|
||||
ea7fe51ec7c8a2360b15c92937b68188
|
||||
2009-12-02T14:23:28.803367Z
|
||||
8898
|
||||
d043530
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
387
|
||||
|
||||
Executable
+5
@@ -0,0 +1,5 @@
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 10
|
||||
text/plain
|
||||
END
|
||||
Executable
+10
@@ -0,0 +1,10 @@
|
||||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Operationaltransformation Plug-in
|
||||
Bundle-SymbolicName: com.sap.runlet.operationaltransformation
|
||||
Bundle-Version: 1.0.0.qualifier
|
||||
Bundle-Vendor: SAP
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
||||
Export-Package: com.sap.runlet.operationaltransformation,
|
||||
com.sap.runlet.operationaltransformation.test
|
||||
Require-Bundle: org.junit
|
||||
@@ -0,0 +1,10 @@
|
||||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Operationaltransformation Plug-in
|
||||
Bundle-SymbolicName: com.sap.sailing.operationaltransformation
|
||||
Bundle-Version: 1.0.0.qualifier
|
||||
Bundle-Vendor: SAP
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Export-Package: com.sap.sailing.operationaltransformation,
|
||||
com.sap.sailing.operationaltransformation.test
|
||||
Require-Bundle: org.junit
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<launchConfiguration type="org.eclipse.pde.ui.JunitLaunchConfig">
|
||||
<booleanAttribute key="append.args" value="true"/>
|
||||
<booleanAttribute key="askclear" value="false"/>
|
||||
<booleanAttribute key="automaticAdd" value="true"/>
|
||||
<booleanAttribute key="automaticValidate" value="false"/>
|
||||
<stringAttribute key="bootstrap" value=""/>
|
||||
<stringAttribute key="checked" value="[NONE]"/>
|
||||
<booleanAttribute key="clearConfig" value="true"/>
|
||||
<booleanAttribute key="clearws" value="false"/>
|
||||
<booleanAttribute key="clearwslog" value="false"/>
|
||||
<stringAttribute key="configLocation" value="${workspace_loc}/.metadata/.plugins/org.eclipse.pde.core/pde-junit"/>
|
||||
<booleanAttribute key="default" value="true"/>
|
||||
<booleanAttribute key="includeOptional" value="true"/>
|
||||
<stringAttribute key="location" value="${workspace_loc}/../runtime-workspace"/>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
|
||||
<listEntry value="/com.sap.runlet.operationaltransformation/src/com/sap/runlet/operationaltransformation/test/OperationalTransformationTests.java"/>
|
||||
</listAttribute>
|
||||
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
|
||||
<listEntry value="1"/>
|
||||
</listAttribute>
|
||||
<stringAttribute key="org.eclipse.hyades.trace.ui.ATTR_DATA_COLLECTOR" value="org.eclipse.tptp.trace.jvmti.jvmtiMechanism:org.eclipse.tptp.analysisType.jvmti.execution"/>
|
||||
<stringAttribute key="org.eclipse.hyades.trace.ui.ATTR_DESTINATION_FILE" value=""/>
|
||||
<stringAttribute key="org.eclipse.hyades.trace.ui.ATTR_DESTINATION_MONITOR" value="DefaultMonitor"/>
|
||||
<stringAttribute key="org.eclipse.hyades.trace.ui.ATTR_DESTINATION_PROJECT" value="ProfileProject"/>
|
||||
<booleanAttribute key="org.eclipse.hyades.trace.ui.ATTR_PROFILE_TO_FILE" value="false"/>
|
||||
<stringAttribute key="org.eclipse.hyades.trace.ui.ATTR_PROFILING_SET" value="tptp-dummy-profiling-set-OperationalTransformationTest"/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.CONTAINER" value=""/>
|
||||
<booleanAttribute key="org.eclipse.jdt.junit.KEEPRUNNING_ATTR" value="false"/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TESTNAME" value=""/>
|
||||
<stringAttribute key="org.eclipse.jdt.junit.TEST_KIND" value="org.eclipse.jdt.junit.loader.junit3"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_10"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.sap.runlet.operationaltransformation.test.OperationalTransformationTests"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl}"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="com.sap.runlet.operationaltransformation"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
|
||||
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Xmx1024m -XX:PermSize=150m -ea"/>
|
||||
<stringAttribute key="pde.version" value="3.3"/>
|
||||
<stringAttribute key="product" value="org.eclipse.platform.ide"/>
|
||||
<booleanAttribute key="show_selected_only" value="false"/>
|
||||
<stringAttribute key="templateConfig" value="${target_home}\configuration\config.ini"/>
|
||||
<booleanAttribute key="tracing" value="false"/>
|
||||
<booleanAttribute key="useDefaultConfig" value="true"/>
|
||||
<booleanAttribute key="useDefaultConfigArea" value="false"/>
|
||||
<booleanAttribute key="useProduct" value="true"/>
|
||||
</launchConfiguration>
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
<body>
|
||||
<p>
|
||||
Use the contents of this package for so-called <em>operational transformations</em>.
|
||||
This can be used to synchronize the states of a number of clients with a single server.
|
||||
The synchronization is performed asynchronously. The construction of the transformation
|
||||
function guarantees to lead to eventual consistency across clients and server.
|
||||
Read more about the general background of the algorithm on which this is based
|
||||
<a href="../docs/JupiterCollaborationSystem_Nichols.pdf">here</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To establish a server to which clients can connect, first decide how your <em>state</em>
|
||||
is encoded on which the <em>operations</em> will perform changes to transition from one
|
||||
state to the next. Then, design your operations class. The trickiest part comes next. You
|
||||
have to define a transformer that maps a pair of your operations to another pair of
|
||||
operations of the same type. The transformer has to implement the
|
||||
{@link com.sap.runlet.operationaltransformation.Transformer} interface, in particular
|
||||
the {@link com.sap.runlet.operationaltransformation.Transformer#transform} method. The
|
||||
transformation function assumes that both input operations have been applied to the same
|
||||
state, one on a client, the other one on the server. The resulting operation for the client
|
||||
applied on the client must lead to a state equal to the state reached on the server by
|
||||
applying the resulting operation for the server to the server's state.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Put formally, if <em>t</em> is a transformer, and
|
||||
if we have <em>s_c</em> as the state on the client and <em>s_s</em> as the state
|
||||
on the server, and <em>c</em> as the operation that was executed in state <em>s_c</em> on the
|
||||
client, and <em>s</em> as the operation executed on the server in state <em>s_s</em>, then the
|
||||
following condition must hold:<br>
|
||||
<pre>
|
||||
t.transform(c, s).getClientOp().applyTo(c.applyTo(s_c).equals(
|
||||
t.transform(c, s).getServerOp().applyTo(s.applyTo(s_s))
|
||||
</pre>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
You can create servers and clients, e.g., as follows:
|
||||
<pre>
|
||||
server = new {@link com.sap.runlet.operationaltransformation.PeerImpl PeerImpl}<MyOperationType, MyStateType>(
|
||||
"Server", new MyTransformer(), /* initial state */ new MyStateType(...), /* server */ true);
|
||||
client1 = new {@link com.sap.runlet.operationaltransformation.PeerImpl PeerImpl}<MyOperationType, MyStateType>("Client1", new MyTransformer(), server);
|
||||
client2 = new {@link com.sap.runlet.operationaltransformation.PeerImpl PeerImpl}<MyOperationType, MyStateType>("Client2", new MyTransformer(), server);
|
||||
</pre>
|
||||
|
||||
After that, you can start sending operations to the clients using the
|
||||
{@link com.sap.runlet.operationaltransformation.Peer#apply} method as follows:
|
||||
<pre>
|
||||
client1.{@link com.sap.runlet.operationaltransformation.Peer#apply apply}(new MyOperationType(...));
|
||||
client2.{@link com.sap.runlet.operationaltransformation.Peer#apply apply}(new MyOperationType(...));
|
||||
...
|
||||
</pre>
|
||||
and those changes will eventually get synchronized across all clients and the server. You can
|
||||
obtain the current state of a peer using the {@link com.sap.runlet.operationaltransformation.Peer#getCurrentState}
|
||||
operation.
|
||||
</p>
|
||||
|
||||
</body>
|
||||
@@ -0,0 +1,4 @@
|
||||
source.. = src/
|
||||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.
|
||||
@@ -0,0 +1,5 @@
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 81
|
||||
/svn/monet/!svn/ver/7650/trunk/ngpm/com.sap.runlet.operationaltransformation/docs
|
||||
END
|
||||
@@ -0,0 +1,26 @@
|
||||
K 10
|
||||
svn:ignore
|
||||
V 195
|
||||
resources
|
||||
|
||||
overview-tree.html
|
||||
|
||||
index-all.html
|
||||
|
||||
allclasses-frame.html
|
||||
|
||||
deprecated-list.html
|
||||
|
||||
allclasses-noframe.html
|
||||
|
||||
stylesheet.css
|
||||
|
||||
index.html
|
||||
|
||||
package-list
|
||||
|
||||
help-doc.html
|
||||
|
||||
constant-values.html
|
||||
|
||||
END
|
||||
@@ -0,0 +1,39 @@
|
||||
10
|
||||
|
||||
dir
|
||||
9910
|
||||
https://forge.sap.corp/svn/monet/trunk/ngpm/com.sap.runlet.operationaltransformation/docs
|
||||
https://forge.sap.corp/svn/monet
|
||||
|
||||
|
||||
|
||||
2009-07-30T11:47:40.072170Z
|
||||
7650
|
||||
d043530
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
8e1b717f-a215-9248-8963-3bf2ea82000e
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
empty
|
||||
|
||||
com
|
||||
dir
|
||||
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 24
|
||||
application/octet-stream
|
||||
END
|
||||
@@ -0,0 +1,45 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.6.0_14) on Thu Jul 30 14:17:57 CEST 2009 -->
|
||||
<TITLE>
|
||||
All Classes
|
||||
</TITLE>
|
||||
|
||||
<META NAME="date" CONTENT="2009-07-30">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
|
||||
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white">
|
||||
<FONT size="+1" CLASS="FrameHeadingFont">
|
||||
<B>All Classes</B></FONT>
|
||||
<BR>
|
||||
|
||||
<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
|
||||
<TR>
|
||||
<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="com/sap/runlet/operationaltransformation/AbstractOperation.html" title="class in com.sap.runlet.operationaltransformation" target="classFrame">AbstractOperation</A>
|
||||
<BR>
|
||||
<A HREF="com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="class in com.sap.runlet.operationaltransformation" target="classFrame">ClientServerOperationPair</A>
|
||||
<BR>
|
||||
<A HREF="com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation" target="classFrame"><I>Operation</I></A>
|
||||
<BR>
|
||||
<A HREF="com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation" target="classFrame"><I>Peer</I></A>
|
||||
<BR>
|
||||
<A HREF="com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation" target="classFrame">PeerImpl</A>
|
||||
<BR>
|
||||
<A HREF="com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="class in com.sap.runlet.operationaltransformation" target="classFrame">StatesAndOperations</A>
|
||||
<BR>
|
||||
<A HREF="com/sap/runlet/operationaltransformation/Transformer.html" title="interface in com.sap.runlet.operationaltransformation" target="classFrame"><I>Transformer</I></A>
|
||||
<BR>
|
||||
<A HREF="com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="class in com.sap.runlet.operationaltransformation" target="classFrame">UnmergedOperationsQueue</A>
|
||||
<BR>
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.6.0_14) on Thu Jul 30 14:17:57 CEST 2009 -->
|
||||
<TITLE>
|
||||
All Classes
|
||||
</TITLE>
|
||||
|
||||
<META NAME="date" CONTENT="2009-07-30">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
|
||||
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white">
|
||||
<FONT size="+1" CLASS="FrameHeadingFont">
|
||||
<B>All Classes</B></FONT>
|
||||
<BR>
|
||||
|
||||
<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
|
||||
<TR>
|
||||
<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="com/sap/runlet/operationaltransformation/AbstractOperation.html" title="class in com.sap.runlet.operationaltransformation">AbstractOperation</A>
|
||||
<BR>
|
||||
<A HREF="com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="class in com.sap.runlet.operationaltransformation">ClientServerOperationPair</A>
|
||||
<BR>
|
||||
<A HREF="com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation"><I>Operation</I></A>
|
||||
<BR>
|
||||
<A HREF="com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation"><I>Peer</I></A>
|
||||
<BR>
|
||||
<A HREF="com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation">PeerImpl</A>
|
||||
<BR>
|
||||
<A HREF="com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="class in com.sap.runlet.operationaltransformation">StatesAndOperations</A>
|
||||
<BR>
|
||||
<A HREF="com/sap/runlet/operationaltransformation/Transformer.html" title="interface in com.sap.runlet.operationaltransformation"><I>Transformer</I></A>
|
||||
<BR>
|
||||
<A HREF="com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="class in com.sap.runlet.operationaltransformation">UnmergedOperationsQueue</A>
|
||||
<BR>
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,5 @@
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 85
|
||||
/svn/monet/!svn/ver/7650/trunk/ngpm/com.sap.runlet.operationaltransformation/docs/com
|
||||
END
|
||||
@@ -0,0 +1,39 @@
|
||||
10
|
||||
|
||||
dir
|
||||
9910
|
||||
https://forge.sap.corp/svn/monet/trunk/ngpm/com.sap.runlet.operationaltransformation/docs/com
|
||||
https://forge.sap.corp/svn/monet
|
||||
|
||||
|
||||
|
||||
2009-07-30T11:47:40.072170Z
|
||||
7650
|
||||
d043530
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
8e1b717f-a215-9248-8963-3bf2ea82000e
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
empty
|
||||
|
||||
sap
|
||||
dir
|
||||
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 89
|
||||
/svn/monet/!svn/ver/7650/trunk/ngpm/com.sap.runlet.operationaltransformation/docs/com/sap
|
||||
END
|
||||
@@ -0,0 +1,39 @@
|
||||
10
|
||||
|
||||
dir
|
||||
9910
|
||||
https://forge.sap.corp/svn/monet/trunk/ngpm/com.sap.runlet.operationaltransformation/docs/com/sap
|
||||
https://forge.sap.corp/svn/monet
|
||||
|
||||
|
||||
|
||||
2009-07-30T11:47:40.072170Z
|
||||
7650
|
||||
d043530
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
8e1b717f-a215-9248-8963-3bf2ea82000e
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
empty
|
||||
|
||||
runlet
|
||||
dir
|
||||
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 96
|
||||
/svn/monet/!svn/ver/7650/trunk/ngpm/com.sap.runlet.operationaltransformation/docs/com/sap/runlet
|
||||
END
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
K 10
|
||||
svn:ignore
|
||||
V 26
|
||||
operationaltransformation
|
||||
|
||||
END
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
10
|
||||
|
||||
dir
|
||||
9910
|
||||
https://forge.sap.corp/svn/monet/trunk/ngpm/com.sap.runlet.operationaltransformation/docs/com/sap/runlet
|
||||
https://forge.sap.corp/svn/monet
|
||||
|
||||
|
||||
|
||||
2009-07-30T11:47:40.072170Z
|
||||
7650
|
||||
d043530
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
8e1b717f-a215-9248-8963-3bf2ea82000e
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
empty
|
||||
|
||||
docs
|
||||
dir
|
||||
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 101
|
||||
/svn/monet/!svn/ver/7650/trunk/ngpm/com.sap.runlet.operationaltransformation/docs/com/sap/runlet/docs
|
||||
END
|
||||
JupiterCollaborationSystem_Nichols.pdf
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 140
|
||||
/svn/monet/!svn/ver/7650/trunk/ngpm/com.sap.runlet.operationaltransformation/docs/com/sap/runlet/docs/JupiterCollaborationSystem_Nichols.pdf
|
||||
END
|
||||
+70
@@ -0,0 +1,70 @@
|
||||
10
|
||||
|
||||
dir
|
||||
9910
|
||||
https://forge.sap.corp/svn/monet/trunk/ngpm/com.sap.runlet.operationaltransformation/docs/com/sap/runlet/docs
|
||||
https://forge.sap.corp/svn/monet
|
||||
|
||||
|
||||
|
||||
2009-07-30T11:47:40.072170Z
|
||||
7650
|
||||
d043530
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
8e1b717f-a215-9248-8963-3bf2ea82000e
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
empty
|
||||
|
||||
JupiterCollaborationSystem_Nichols.pdf
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-07-30T11:45:59.546875Z
|
||||
0b0a7021188e78ae27a09bbe31f7e687
|
||||
2009-07-30T11:47:40.072170Z
|
||||
7650
|
||||
d043530
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1031529
|
||||
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 24
|
||||
application/octet-stream
|
||||
END
|
||||
BIN
Binary file not shown.
BIN
Binary file not shown.
+263
@@ -0,0 +1,263 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.6.0_14) on Thu Jul 30 14:17:57 CEST 2009 -->
|
||||
<TITLE>
|
||||
AbstractOperation
|
||||
</TITLE>
|
||||
|
||||
<META NAME="date" CONTENT="2009-07-30">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="AbstractOperation";
|
||||
}
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV CLASS
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="class in com.sap.runlet.operationaltransformation"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/AbstractOperation.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="AbstractOperation.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
com.sap.runlet.operationaltransformation</FONT>
|
||||
<BR>
|
||||
Class AbstractOperation<S></H2>
|
||||
<PRE>
|
||||
java.lang.Object
|
||||
<IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.sap.runlet.operationaltransformation.AbstractOperation<S></B>
|
||||
</PRE>
|
||||
<DL>
|
||||
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><S>, java.lang.Cloneable</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE>public abstract class <B>AbstractOperation<S></B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><S></DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||
|
||||
<A NAME="constructor_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Constructor Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/AbstractOperation.html#AbstractOperation()">AbstractOperation</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
|
||||
<A NAME="method_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Method Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../../../com/sap/runlet/operationaltransformation/AbstractOperation.html" title="class in com.sap.runlet.operationaltransformation">AbstractOperation</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/AbstractOperation.html" title="type parameter in AbstractOperation">S</A>></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/AbstractOperation.html#clone()">clone</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE>equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="methods_inherited_from_class_com.sap.runlet.operationaltransformation.Operation"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||
<TH ALIGN="left"><B>Methods inherited from interface com.sap.runlet.operationaltransformation.<A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A></B></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html#applyTo(S)">applyTo</A></CODE></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||
|
||||
<A NAME="constructor_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Constructor Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="AbstractOperation()"><!-- --></A><H3>
|
||||
AbstractOperation</H3>
|
||||
<PRE>
|
||||
public <B>AbstractOperation</B>()</PRE>
|
||||
<DL>
|
||||
</DL>
|
||||
|
||||
<!-- ============ METHOD DETAIL ========== -->
|
||||
|
||||
<A NAME="method_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Method Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="clone()"><!-- --></A><H3>
|
||||
clone</H3>
|
||||
<PRE>
|
||||
public <A HREF="../../../../com/sap/runlet/operationaltransformation/AbstractOperation.html" title="class in com.sap.runlet.operationaltransformation">AbstractOperation</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/AbstractOperation.html" title="type parameter in AbstractOperation">S</A>> <B>clone</B>()</PRE>
|
||||
<DL>
|
||||
<DD><DL>
|
||||
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html#clone()">clone</A></CODE> in interface <CODE><A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/AbstractOperation.html" title="type parameter in AbstractOperation">S</A>></CODE><DT><B>Overrides:</B><DD><CODE>clone</CODE> in class <CODE>java.lang.Object</CODE></DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV CLASS
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="class in com.sap.runlet.operationaltransformation"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/AbstractOperation.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="AbstractOperation.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
+269
@@ -0,0 +1,269 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.6.0_14) on Thu Jul 30 14:17:57 CEST 2009 -->
|
||||
<TITLE>
|
||||
ClientServerOperationPair
|
||||
</TITLE>
|
||||
|
||||
<META NAME="date" CONTENT="2009-07-30">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="ClientServerOperationPair";
|
||||
}
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/AbstractOperation.html" title="class in com.sap.runlet.operationaltransformation"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="ClientServerOperationPair.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
com.sap.runlet.operationaltransformation</FONT>
|
||||
<BR>
|
||||
Class ClientServerOperationPair<O extends <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><?>></H2>
|
||||
<PRE>
|
||||
java.lang.Object
|
||||
<IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.sap.runlet.operationaltransformation.ClientServerOperationPair<O></B>
|
||||
</PRE>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE>public class <B>ClientServerOperationPair<O extends <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><?>></B><DT>extends java.lang.Object</DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||
|
||||
<A NAME="constructor_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Constructor Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/ClientServerOperationPair.html#ClientServerOperationPair(O, O)">ClientServerOperationPair</A></B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="type parameter in ClientServerOperationPair">O</A> clientOp,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="type parameter in ClientServerOperationPair">O</A> serverOp)</CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
|
||||
<A NAME="method_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Method Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../../../com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="type parameter in ClientServerOperationPair">O</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/ClientServerOperationPair.html#getClientOp()">getClientOp</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../../../com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="type parameter in ClientServerOperationPair">O</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/ClientServerOperationPair.html#getServerOp()">getServerOp</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||
|
||||
<A NAME="constructor_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Constructor Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="ClientServerOperationPair(com.sap.runlet.operationaltransformation.Operation,com.sap.runlet.operationaltransformation.Operation)"><!-- --></A><A NAME="ClientServerOperationPair(O, O)"><!-- --></A><H3>
|
||||
ClientServerOperationPair</H3>
|
||||
<PRE>
|
||||
public <B>ClientServerOperationPair</B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="type parameter in ClientServerOperationPair">O</A> clientOp,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="type parameter in ClientServerOperationPair">O</A> serverOp)</PRE>
|
||||
<DL>
|
||||
</DL>
|
||||
|
||||
<!-- ============ METHOD DETAIL ========== -->
|
||||
|
||||
<A NAME="method_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Method Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="getClientOp()"><!-- --></A><H3>
|
||||
getClientOp</H3>
|
||||
<PRE>
|
||||
public <A HREF="../../../../com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="type parameter in ClientServerOperationPair">O</A> <B>getClientOp</B>()</PRE>
|
||||
<DL>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="getServerOp()"><!-- --></A><H3>
|
||||
getServerOp</H3>
|
||||
<PRE>
|
||||
public <A HREF="../../../../com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="type parameter in ClientServerOperationPair">O</A> <B>getServerOp</B>()</PRE>
|
||||
<DL>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/AbstractOperation.html" title="class in com.sap.runlet.operationaltransformation"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="ClientServerOperationPair.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
+245
@@ -0,0 +1,245 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.6.0_14) on Thu Jul 30 14:17:57 CEST 2009 -->
|
||||
<TITLE>
|
||||
Operation
|
||||
</TITLE>
|
||||
|
||||
<META NAME="date" CONTENT="2009-07-30">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="Operation";
|
||||
}
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="class in com.sap.runlet.operationaltransformation"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/Operation.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="Operation.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
com.sap.runlet.operationaltransformation</FONT>
|
||||
<BR>
|
||||
Interface Operation<S></H2>
|
||||
<DL>
|
||||
<DT><DT><B>Type Parameters:</B><DD><CODE>S</CODE> - the class that models the state, on instances of which operations perform changes</DL>
|
||||
<DL>
|
||||
<DT><B>All Superinterfaces:</B> <DD>java.lang.Cloneable</DD>
|
||||
</DL>
|
||||
<DL>
|
||||
<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/sap/runlet/operationaltransformation/AbstractOperation.html" title="class in com.sap.runlet.operationaltransformation">AbstractOperation</A></DD>
|
||||
</DL>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE>public interface <B>Operation<S></B><DT>extends java.lang.Cloneable</DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
A change operation can be applied to some start state of some
|
||||
universe and transforms that universe into a target state.
|
||||
<P>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
|
||||
<A NAME="method_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Method Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="type parameter in Operation">S</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html#applyTo(S)">applyTo</A></B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="type parameter in Operation">S</A> toState)</CODE>
|
||||
|
||||
<BR>
|
||||
Applies this operation to the state <tt>toState</tt>, producing a new target state
|
||||
which is returned.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="type parameter in Operation">S</A>></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html#clone()">clone</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ============ METHOD DETAIL ========== -->
|
||||
|
||||
<A NAME="method_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Method Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="clone()"><!-- --></A><H3>
|
||||
clone</H3>
|
||||
<PRE>
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="type parameter in Operation">S</A>> <B>clone</B>()</PRE>
|
||||
<DL>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="applyTo(java.lang.Object)"><!-- --></A><A NAME="applyTo(S)"><!-- --></A><H3>
|
||||
applyTo</H3>
|
||||
<PRE>
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="type parameter in Operation">S</A> <B>applyTo</B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="type parameter in Operation">S</A> toState)</PRE>
|
||||
<DL>
|
||||
<DD>Applies this operation to the state <tt>toState</tt>, producing a new target state
|
||||
which is returned.
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
<DT><B>Parameters:</B><DD><CODE>toState</CODE> - the state to which to apply this operation
|
||||
<DT><B>Returns:</B><DD>the state produced by applying this operation to <tt>toState</tt></DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="class in com.sap.runlet.operationaltransformation"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/Operation.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="Operation.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
+371
@@ -0,0 +1,371 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.6.0_14) on Thu Jul 30 14:17:57 CEST 2009 -->
|
||||
<TITLE>
|
||||
Peer
|
||||
</TITLE>
|
||||
|
||||
<META NAME="date" CONTENT="2009-07-30">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="Peer";
|
||||
}
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/Peer.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="Peer.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
com.sap.runlet.operationaltransformation</FONT>
|
||||
<BR>
|
||||
Interface Peer<O extends <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><S>,S></H2>
|
||||
<DL>
|
||||
<DT><DT><B>Type Parameters:</B><DD><CODE>O</CODE> - the type of operations that can be applied to the states<DD><CODE>S</CODE> - the type of the states on which the operations perform changes</DL>
|
||||
<DL>
|
||||
<DT><B>All Known Implementing Classes:</B> <DD><A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation">PeerImpl</A></DD>
|
||||
</DL>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE>public interface <B>Peer<O extends <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><S>,S></B></DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
Accepts change operations from clients and maintains a shared state. If new
|
||||
clients connect, the full state can be sent to the client for initial
|
||||
synchronization. When a change <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation"><CODE>Operation</CODE></A> is received from a client
|
||||
that operation will be based on some state. Since that state the
|
||||
server may have applied one or more change operations already. In order to
|
||||
synchronize the requesting client, the server transforms all in-between
|
||||
change operations for the requesting client and sends those transformation
|
||||
results back to the requesting client. The client's operation, in turn, is
|
||||
disseminated to all other clients for them to merge into their local replica
|
||||
of the global state.
|
||||
<P>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
|
||||
<A NAME="method_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Method Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">S</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#addPeer(com.sap.runlet.operationaltransformation.Peer)">addPeer</A></B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">O</A>,<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">S</A>> peer)</CODE>
|
||||
|
||||
<BR>
|
||||
Registers a peer with this peer for replication.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> void</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#apply(O)">apply</A></B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">O</A> operation)</CODE>
|
||||
|
||||
<BR>
|
||||
Applies a change operation locally to the current peer's state.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> void</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#apply(com.sap.runlet.operationaltransformation.Peer, O, int)">apply</A></B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">O</A>,<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">S</A>> source,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">O</A> operation,
|
||||
int numberOfOperationsSourceHasMergedFromThis)</CODE>
|
||||
|
||||
<BR>
|
||||
Usually, the framework handles calls to this method and framework users
|
||||
should therefore not need to call this method.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> void</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#confirm(com.sap.runlet.operationaltransformation.Peer, int)">confirm</A></B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">O</A>,<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">S</A>> source,
|
||||
int numberOfMergedOperations)</CODE>
|
||||
|
||||
<BR>
|
||||
Tells this peer that the <tt>source</tt> peer has successfully merged
|
||||
<tt>numberOfMergedOperations</tt> altogether coming from this peer
|
||||
into its operation sequence.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">S</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#getCurrentState()">getCurrentState</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
Tells the current state in which the peer is.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> void</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#waitForNotRunning()">waitForNotRunning</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
Blocks until the queue of tasks that works on achieving consistency across peers
|
||||
has completely drained.</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ============ METHOD DETAIL ========== -->
|
||||
|
||||
<A NAME="method_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Method Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="addPeer(com.sap.runlet.operationaltransformation.Peer)"><!-- --></A><H3>
|
||||
addPeer</H3>
|
||||
<PRE>
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">S</A> <B>addPeer</B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">O</A>,<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">S</A>> peer)</PRE>
|
||||
<DL>
|
||||
<DD>Registers a peer with this peer for replication. From this point on, this
|
||||
peer will remember which operations it has forwarded to that peer for
|
||||
later transformation jobs for operations coming in from that client.<p>
|
||||
|
||||
The <tt>peer</tt> is expected to set the state returned by this operation
|
||||
as its initial state.
|
||||
<P>
|
||||
<DD><DL>
|
||||
|
||||
<DT><B>Returns:</B><DD>the current server state; the calling client can use this as its
|
||||
initial state</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="apply(com.sap.runlet.operationaltransformation.Peer,com.sap.runlet.operationaltransformation.Operation,int)"><!-- --></A><A NAME="apply(com.sap.runlet.operationaltransformation.Peer, O, int)"><!-- --></A><H3>
|
||||
apply</H3>
|
||||
<PRE>
|
||||
void <B>apply</B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">O</A>,<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">S</A>> source,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">O</A> operation,
|
||||
int numberOfOperationsSourceHasMergedFromThis)</PRE>
|
||||
<DL>
|
||||
<DD>Usually, the framework handles calls to this method and framework users
|
||||
should therefore not need to call this method.
|
||||
<p>
|
||||
|
||||
Synchronizes an <tt>operation</tt> from the <tt>source</tt> peer to this
|
||||
peer. The <tt>source</tt> peer specifies how many operations from this
|
||||
peer it already merged into its operations sequence before having
|
||||
executed <tt>operation</tt>.
|
||||
<p>
|
||||
|
||||
The operation has to be transformed using this peer's operational
|
||||
transformation and using the sequence of operations applied to the
|
||||
operation's start state up to this peer's current state. This results in
|
||||
the operation that needs to be applied to the current state to produce
|
||||
the next state.
|
||||
<p>
|
||||
|
||||
After applying this possibly transformed operation to this peer's current
|
||||
state and thus producing a new current state, all registered peers except
|
||||
<tt>source</tt> are notified about the change by sending them the
|
||||
transformed operation.
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="apply(com.sap.runlet.operationaltransformation.Operation)"><!-- --></A><A NAME="apply(O)"><!-- --></A><H3>
|
||||
apply</H3>
|
||||
<PRE>
|
||||
void <B>apply</B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">O</A> operation)</PRE>
|
||||
<DL>
|
||||
<DD>Applies a change operation locally to the current peer's state.
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="confirm(com.sap.runlet.operationaltransformation.Peer, int)"><!-- --></A><H3>
|
||||
confirm</H3>
|
||||
<PRE>
|
||||
void <B>confirm</B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">O</A>,<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">S</A>> source,
|
||||
int numberOfMergedOperations)</PRE>
|
||||
<DL>
|
||||
<DD>Tells this peer that the <tt>source</tt> peer has successfully merged
|
||||
<tt>numberOfMergedOperations</tt> altogether coming from this peer
|
||||
into its operation sequence. This peer can take this as an opportunity
|
||||
to clean up the queue and remove the transformed copies of all operations
|
||||
up to number <tt>numberOfMergedOperations-1</tt>.
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="getCurrentState()"><!-- --></A><H3>
|
||||
getCurrentState</H3>
|
||||
<PRE>
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">S</A> <B>getCurrentState</B>()</PRE>
|
||||
<DL>
|
||||
<DD>Tells the current state in which the peer is. This is the state constructed by
|
||||
the sequence of calls to <A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#apply(O)"><CODE>apply(Operation)</CODE></A> and the merged in notifications
|
||||
from other peers.
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="waitForNotRunning()"><!-- --></A><H3>
|
||||
waitForNotRunning</H3>
|
||||
<PRE>
|
||||
void <B>waitForNotRunning</B>()</PRE>
|
||||
<DL>
|
||||
<DD>Blocks until the queue of tasks that works on achieving consistency across peers
|
||||
has completely drained.
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/Peer.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="Peer.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
+548
@@ -0,0 +1,548 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.6.0_14) on Thu Jul 30 14:17:57 CEST 2009 -->
|
||||
<TITLE>
|
||||
PeerImpl
|
||||
</TITLE>
|
||||
|
||||
<META NAME="date" CONTENT="2009-07-30">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="PeerImpl";
|
||||
}
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="class in com.sap.runlet.operationaltransformation"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/PeerImpl.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="PeerImpl.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
com.sap.runlet.operationaltransformation</FONT>
|
||||
<BR>
|
||||
Class PeerImpl<O extends <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><S>,S></H2>
|
||||
<PRE>
|
||||
java.lang.Object
|
||||
<IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.sap.runlet.operationaltransformation.PeerImpl<O,S></B>
|
||||
</PRE>
|
||||
<DL>
|
||||
<DT><DT><B>Type Parameters:</B><DD><CODE>O</CODE> - type of change operations to be processed by this server<DD><CODE>S</CODE> - type of state managed by this server to which the operations can be applied</DL>
|
||||
<DL>
|
||||
<DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><O,S></DD>
|
||||
</DL>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE>public class <B>PeerImpl<O extends <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><S>,S></B><DT>extends java.lang.Object<DT>implements <A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><O,S></DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
A very simple peer implementation for operational transformations that starts
|
||||
out with a provided initial state and then receives operations which it applies
|
||||
to its state. It manages a set of clients. Using the <tt>server</tt> constructor
|
||||
parameter one can configure whether this peer is a client or a server.
|
||||
<P>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||
|
||||
<A NAME="constructor_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Constructor Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html#PeerImpl(java.lang.String, com.sap.runlet.operationaltransformation.Transformer, com.sap.runlet.operationaltransformation.Peer)">PeerImpl</A></B>(java.lang.String name,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html" title="interface in com.sap.runlet.operationaltransformation">Transformer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A>> transformer,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A>,<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>> server)</CODE>
|
||||
|
||||
<BR>
|
||||
Constructs a client peer with a name and connects it to the
|
||||
<tt>server</tt> peer, establishing the two-way link between client and
|
||||
server peers.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html#PeerImpl(java.lang.String, com.sap.runlet.operationaltransformation.Transformer, S, boolean)">PeerImpl</A></B>(java.lang.String name,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html" title="interface in com.sap.runlet.operationaltransformation">Transformer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A>> transformer,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A> initialState,
|
||||
boolean server)</CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html#PeerImpl(com.sap.runlet.operationaltransformation.Transformer, com.sap.runlet.operationaltransformation.Peer)">PeerImpl</A></B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html" title="interface in com.sap.runlet.operationaltransformation">Transformer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A>> transformer,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A>,<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>> server)</CODE>
|
||||
|
||||
<BR>
|
||||
Constructs a client peer and connects it to the <tt>server</tt> peer, establishing
|
||||
the two-way link between client and server peers.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html#PeerImpl(com.sap.runlet.operationaltransformation.Transformer, S, boolean)">PeerImpl</A></B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html" title="interface in com.sap.runlet.operationaltransformation">Transformer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A>> transformer,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A> initialState,
|
||||
boolean server)</CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
|
||||
<A NAME="method_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Method Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html#addPeer(com.sap.runlet.operationaltransformation.Peer)">addPeer</A></B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A>,<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>> peer)</CODE>
|
||||
|
||||
<BR>
|
||||
Registers a peer with this peer for replication.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> void</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html#apply(O)">apply</A></B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A> operation)</CODE>
|
||||
|
||||
<BR>
|
||||
Applies a change operation locally to the current peer's state.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> void</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html#apply(com.sap.runlet.operationaltransformation.Peer, O, int)">apply</A></B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A>,<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>> source,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A> operation,
|
||||
int numberOfOperationsSourceHasMergedFromThis)</CODE>
|
||||
|
||||
<BR>
|
||||
Usually, the framework handles calls to this method and framework users
|
||||
should therefore not need to call this method.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> void</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html#confirm(com.sap.runlet.operationaltransformation.Peer, int)">confirm</A></B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A>,<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>> source,
|
||||
int numberOfMergedOperations)</CODE>
|
||||
|
||||
<BR>
|
||||
Tells this peer that the <tt>source</tt> peer has successfully merged
|
||||
<tt>numberOfMergedOperations</tt> altogether coming from this peer
|
||||
into its operation sequence.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> void</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html#finalize()">finalize</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html#getCurrentState()">getCurrentState</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
Tells the current state in which the peer is.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> java.lang.String</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html#toString()">toString</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> void</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html#waitForNotRunning()">waitForNotRunning</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
Blocks until the queue of tasks that works on achieving consistency across peers
|
||||
has completely drained.</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE>clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||
|
||||
<A NAME="constructor_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Constructor Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="PeerImpl(com.sap.runlet.operationaltransformation.Transformer,java.lang.Object,boolean)"><!-- --></A><A NAME="PeerImpl(com.sap.runlet.operationaltransformation.Transformer, S, boolean)"><!-- --></A><H3>
|
||||
PeerImpl</H3>
|
||||
<PRE>
|
||||
public <B>PeerImpl</B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html" title="interface in com.sap.runlet.operationaltransformation">Transformer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A>> transformer,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A> initialState,
|
||||
boolean server)</PRE>
|
||||
<DL>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="PeerImpl(java.lang.String,com.sap.runlet.operationaltransformation.Transformer,java.lang.Object,boolean)"><!-- --></A><A NAME="PeerImpl(java.lang.String, com.sap.runlet.operationaltransformation.Transformer, S, boolean)"><!-- --></A><H3>
|
||||
PeerImpl</H3>
|
||||
<PRE>
|
||||
public <B>PeerImpl</B>(java.lang.String name,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html" title="interface in com.sap.runlet.operationaltransformation">Transformer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A>> transformer,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A> initialState,
|
||||
boolean server)</PRE>
|
||||
<DL>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="PeerImpl(com.sap.runlet.operationaltransformation.Transformer, com.sap.runlet.operationaltransformation.Peer)"><!-- --></A><H3>
|
||||
PeerImpl</H3>
|
||||
<PRE>
|
||||
public <B>PeerImpl</B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html" title="interface in com.sap.runlet.operationaltransformation">Transformer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A>> transformer,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A>,<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>> server)</PRE>
|
||||
<DL>
|
||||
<DD>Constructs a client peer and connects it to the <tt>server</tt> peer, establishing
|
||||
the two-way link between client and server peers. The initial state is taken from
|
||||
the server.
|
||||
<P>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="PeerImpl(java.lang.String, com.sap.runlet.operationaltransformation.Transformer, com.sap.runlet.operationaltransformation.Peer)"><!-- --></A><H3>
|
||||
PeerImpl</H3>
|
||||
<PRE>
|
||||
public <B>PeerImpl</B>(java.lang.String name,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html" title="interface in com.sap.runlet.operationaltransformation">Transformer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A>> transformer,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A>,<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>> server)</PRE>
|
||||
<DL>
|
||||
<DD>Constructs a client peer with a name and connects it to the
|
||||
<tt>server</tt> peer, establishing the two-way link between client and
|
||||
server peers. The initial state is taken from the server.
|
||||
<P>
|
||||
</DL>
|
||||
|
||||
<!-- ============ METHOD DETAIL ========== -->
|
||||
|
||||
<A NAME="method_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Method Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="finalize()"><!-- --></A><H3>
|
||||
finalize</H3>
|
||||
<PRE>
|
||||
public void <B>finalize</B>()</PRE>
|
||||
<DL>
|
||||
<DD><DL>
|
||||
<DT><B>Overrides:</B><DD><CODE>finalize</CODE> in class <CODE>java.lang.Object</CODE></DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="addPeer(com.sap.runlet.operationaltransformation.Peer)"><!-- --></A><H3>
|
||||
addPeer</H3>
|
||||
<PRE>
|
||||
public <A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A> <B>addPeer</B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A>,<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>> peer)</PRE>
|
||||
<DL>
|
||||
<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#addPeer(com.sap.runlet.operationaltransformation.Peer)">Peer</A></CODE></B></DD>
|
||||
<DD>Registers a peer with this peer for replication. From this point on, this
|
||||
peer will remember which operations it has forwarded to that peer for
|
||||
later transformation jobs for operations coming in from that client.<p>
|
||||
|
||||
The <tt>peer</tt> is expected to set the state returned by this operation
|
||||
as its initial state.
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#addPeer(com.sap.runlet.operationaltransformation.Peer)">addPeer</A></CODE> in interface <CODE><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A> extends <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>>,<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>></CODE></DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
|
||||
<DT><B>Returns:</B><DD>the current server state; the calling client can use this as its
|
||||
initial state</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="getCurrentState()"><!-- --></A><H3>
|
||||
getCurrentState</H3>
|
||||
<PRE>
|
||||
public <A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A> <B>getCurrentState</B>()</PRE>
|
||||
<DL>
|
||||
<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#getCurrentState()">Peer</A></CODE></B></DD>
|
||||
<DD>Tells the current state in which the peer is. This is the state constructed by
|
||||
the sequence of calls to <A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#apply(O)"><CODE>Peer.apply(Operation)</CODE></A> and the merged in notifications
|
||||
from other peers.
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#getCurrentState()">getCurrentState</A></CODE> in interface <CODE><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A> extends <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>>,<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>></CODE></DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="apply(com.sap.runlet.operationaltransformation.Operation)"><!-- --></A><A NAME="apply(O)"><!-- --></A><H3>
|
||||
apply</H3>
|
||||
<PRE>
|
||||
public void <B>apply</B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A> operation)</PRE>
|
||||
<DL>
|
||||
<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#apply(O)">Peer</A></CODE></B></DD>
|
||||
<DD>Applies a change operation locally to the current peer's state.
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#apply(O)">apply</A></CODE> in interface <CODE><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A> extends <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>>,<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>></CODE></DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="apply(com.sap.runlet.operationaltransformation.Peer,com.sap.runlet.operationaltransformation.Operation,int)"><!-- --></A><A NAME="apply(com.sap.runlet.operationaltransformation.Peer, O, int)"><!-- --></A><H3>
|
||||
apply</H3>
|
||||
<PRE>
|
||||
public void <B>apply</B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A>,<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>> source,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A> operation,
|
||||
int numberOfOperationsSourceHasMergedFromThis)</PRE>
|
||||
<DL>
|
||||
<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#apply(com.sap.runlet.operationaltransformation.Peer, O, int)">Peer</A></CODE></B></DD>
|
||||
<DD>Usually, the framework handles calls to this method and framework users
|
||||
should therefore not need to call this method.
|
||||
<p>
|
||||
|
||||
Synchronizes an <tt>operation</tt> from the <tt>source</tt> peer to this
|
||||
peer. The <tt>source</tt> peer specifies how many operations from this
|
||||
peer it already merged into its operations sequence before having
|
||||
executed <tt>operation</tt>.
|
||||
<p>
|
||||
|
||||
The operation has to be transformed using this peer's operational
|
||||
transformation and using the sequence of operations applied to the
|
||||
operation's start state up to this peer's current state. This results in
|
||||
the operation that needs to be applied to the current state to produce
|
||||
the next state.
|
||||
<p>
|
||||
|
||||
After applying this possibly transformed operation to this peer's current
|
||||
state and thus producing a new current state, all registered peers except
|
||||
<tt>source</tt> are notified about the change by sending them the
|
||||
transformed operation.
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#apply(com.sap.runlet.operationaltransformation.Peer, O, int)">apply</A></CODE> in interface <CODE><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A> extends <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>>,<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>></CODE></DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="toString()"><!-- --></A><H3>
|
||||
toString</H3>
|
||||
<PRE>
|
||||
public java.lang.String <B>toString</B>()</PRE>
|
||||
<DL>
|
||||
<DD><DL>
|
||||
<DT><B>Overrides:</B><DD><CODE>toString</CODE> in class <CODE>java.lang.Object</CODE></DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="confirm(com.sap.runlet.operationaltransformation.Peer, int)"><!-- --></A><H3>
|
||||
confirm</H3>
|
||||
<PRE>
|
||||
public void <B>confirm</B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A>,<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>> source,
|
||||
int numberOfMergedOperations)</PRE>
|
||||
<DL>
|
||||
<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#confirm(com.sap.runlet.operationaltransformation.Peer, int)">Peer</A></CODE></B></DD>
|
||||
<DD>Tells this peer that the <tt>source</tt> peer has successfully merged
|
||||
<tt>numberOfMergedOperations</tt> altogether coming from this peer
|
||||
into its operation sequence. This peer can take this as an opportunity
|
||||
to clean up the queue and remove the transformed copies of all operations
|
||||
up to number <tt>numberOfMergedOperations-1</tt>.
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#confirm(com.sap.runlet.operationaltransformation.Peer, int)">confirm</A></CODE> in interface <CODE><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A> extends <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>>,<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>></CODE></DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="waitForNotRunning()"><!-- --></A><H3>
|
||||
waitForNotRunning</H3>
|
||||
<PRE>
|
||||
public void <B>waitForNotRunning</B>()</PRE>
|
||||
<DL>
|
||||
<DD><B>Description copied from interface: <CODE><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#waitForNotRunning()">Peer</A></CODE></B></DD>
|
||||
<DD>Blocks until the queue of tasks that works on achieving consistency across peers
|
||||
has completely drained.
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Specified by:</B><DD><CODE><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#waitForNotRunning()">waitForNotRunning</A></CODE> in interface <CODE><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A> extends <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>>,<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>></CODE></DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="class in com.sap.runlet.operationaltransformation"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/PeerImpl.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="PeerImpl.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
+208
@@ -0,0 +1,208 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.6.0_14) on Thu Jul 30 13:48:55 CEST 2009 -->
|
||||
<TITLE>
|
||||
State
|
||||
</TITLE>
|
||||
|
||||
<META NAME="date" CONTENT="2009-07-30">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="State";
|
||||
}
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="class in com.sap.runlet.operationaltransformation"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/State.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="State.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
com.sap.runlet.operationaltransformation</FONT>
|
||||
<BR>
|
||||
Interface State</H2>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE>public interface <B>State</B></DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
A state of the "universe" in which the <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation"><CODE>Operation</CODE></A>s perform state changes.
|
||||
<P>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
|
||||
<A NAME="method_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Method Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> java.lang.Object</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/State.html#getId()">getId</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
Returns an identifier for this state.</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ============ METHOD DETAIL ========== -->
|
||||
|
||||
<A NAME="method_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Method Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="getId()"><!-- --></A><H3>
|
||||
getId</H3>
|
||||
<PRE>
|
||||
java.lang.Object <B>getId</B>()</PRE>
|
||||
<DL>
|
||||
<DD>Returns an identifier for this state.
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="class in com.sap.runlet.operationaltransformation"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/State.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="State.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
+281
@@ -0,0 +1,281 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.6.0_14) on Thu Jul 30 14:17:57 CEST 2009 -->
|
||||
<TITLE>
|
||||
StatesAndOperations
|
||||
</TITLE>
|
||||
|
||||
<META NAME="date" CONTENT="2009-07-30">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="StatesAndOperations";
|
||||
}
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html" title="interface in com.sap.runlet.operationaltransformation"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/StatesAndOperations.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="StatesAndOperations.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
com.sap.runlet.operationaltransformation</FONT>
|
||||
<BR>
|
||||
Class StatesAndOperations<O extends <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><S>,S></H2>
|
||||
<PRE>
|
||||
java.lang.Object
|
||||
<IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.sap.runlet.operationaltransformation.StatesAndOperations<O,S></B>
|
||||
</PRE>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE>public class <B>StatesAndOperations<O extends <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><S>,S></B><DT>extends java.lang.Object</DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
Maintains a list of states and the operations that transformed the i-th into
|
||||
the i+1st, starting with an initial state. Using <A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html#apply(O)"><CODE>apply(Operation)</CODE></A>,
|
||||
operation/state pairs can be appended to the end.
|
||||
<p>
|
||||
<P>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||
|
||||
<A NAME="constructor_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Constructor Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html#StatesAndOperations(S)">StatesAndOperations</A></B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="type parameter in StatesAndOperations">S</A> initialState)</CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
|
||||
<A NAME="method_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Method Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="type parameter in StatesAndOperations">S</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html#apply(O)">apply</A></B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="type parameter in StatesAndOperations">O</A> operation)</CODE>
|
||||
|
||||
<BR>
|
||||
Applies the <tt>operation</tt> to the <A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html#getCurrentState()"><CODE>current
|
||||
state</CODE></A> and records both, the new current state and the operation.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="type parameter in StatesAndOperations">S</A></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html#getCurrentState()">getCurrentState</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||
|
||||
<A NAME="constructor_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Constructor Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="StatesAndOperations(java.lang.Object)"><!-- --></A><A NAME="StatesAndOperations(S)"><!-- --></A><H3>
|
||||
StatesAndOperations</H3>
|
||||
<PRE>
|
||||
public <B>StatesAndOperations</B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="type parameter in StatesAndOperations">S</A> initialState)</PRE>
|
||||
<DL>
|
||||
</DL>
|
||||
|
||||
<!-- ============ METHOD DETAIL ========== -->
|
||||
|
||||
<A NAME="method_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Method Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="apply(com.sap.runlet.operationaltransformation.Operation)"><!-- --></A><A NAME="apply(O)"><!-- --></A><H3>
|
||||
apply</H3>
|
||||
<PRE>
|
||||
public <A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="type parameter in StatesAndOperations">S</A> <B>apply</B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="type parameter in StatesAndOperations">O</A> operation)</PRE>
|
||||
<DL>
|
||||
<DD>Applies the <tt>operation</tt> to the <A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html#getCurrentState()"><CODE>current
|
||||
state</CODE></A> and records both, the new current state and the operation.
|
||||
<P>
|
||||
<DD><DL>
|
||||
|
||||
<DT><B>Returns:</B><DD>the new current state that results from applying
|
||||
<tt>operation</tt> to the state that was current when the
|
||||
operation was invoked.</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="getCurrentState()"><!-- --></A><H3>
|
||||
getCurrentState</H3>
|
||||
<PRE>
|
||||
public <A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="type parameter in StatesAndOperations">S</A> <B>getCurrentState</B>()</PRE>
|
||||
<DL>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html" title="interface in com.sap.runlet.operationaltransformation"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/StatesAndOperations.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="StatesAndOperations.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
+211
@@ -0,0 +1,211 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.6.0_14) on Thu Jul 30 14:17:57 CEST 2009 -->
|
||||
<TITLE>
|
||||
Transformer
|
||||
</TITLE>
|
||||
|
||||
<META NAME="date" CONTENT="2009-07-30">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="Transformer";
|
||||
}
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="class in com.sap.runlet.operationaltransformation"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="class in com.sap.runlet.operationaltransformation"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/Transformer.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="Transformer.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
com.sap.runlet.operationaltransformation</FONT>
|
||||
<BR>
|
||||
Interface Transformer<O extends <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><?>></H2>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE>public interface <B>Transformer<O extends <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><?>></B></DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
|
||||
<A NAME="method_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Method Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> <A HREF="../../../../com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="class in com.sap.runlet.operationaltransformation">ClientServerOperationPair</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html" title="type parameter in Transformer">O</A>></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html#transform(O, O)">transform</A></B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html" title="type parameter in Transformer">O</A> clientOp,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html" title="type parameter in Transformer">O</A> serverOp)</CODE>
|
||||
|
||||
<BR>
|
||||
Takes an operation from the client and an operation from the server, both
|
||||
based on the same state.</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ============ METHOD DETAIL ========== -->
|
||||
|
||||
<A NAME="method_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Method Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="transform(com.sap.runlet.operationaltransformation.Operation,com.sap.runlet.operationaltransformation.Operation)"><!-- --></A><A NAME="transform(O, O)"><!-- --></A><H3>
|
||||
transform</H3>
|
||||
<PRE>
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="class in com.sap.runlet.operationaltransformation">ClientServerOperationPair</A><<A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html" title="type parameter in Transformer">O</A>> <B>transform</B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html" title="type parameter in Transformer">O</A> clientOp,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html" title="type parameter in Transformer">O</A> serverOp)</PRE>
|
||||
<DL>
|
||||
<DD>Takes an operation from the client and an operation from the server, both
|
||||
based on the same state. The complementary pair of operations is computed
|
||||
such that if the client applies the server operation returned, and the
|
||||
server applies the client operation returned, both end up in equal states
|
||||
again.
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="class in com.sap.runlet.operationaltransformation"><B>PREV CLASS</B></A>
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="class in com.sap.runlet.operationaltransformation"><B>NEXT CLASS</B></A></FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/Transformer.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="Transformer.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
+353
@@ -0,0 +1,353 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.6.0_14) on Thu Jul 30 14:17:57 CEST 2009 -->
|
||||
<TITLE>
|
||||
UnmergedOperationsQueue
|
||||
</TITLE>
|
||||
|
||||
<META NAME="date" CONTENT="2009-07-30">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="UnmergedOperationsQueue";
|
||||
}
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html" title="interface in com.sap.runlet.operationaltransformation"><B>PREV CLASS</B></A>
|
||||
NEXT CLASS</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="UnmergedOperationsQueue.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<!-- ======== START OF CLASS DATA ======== -->
|
||||
<H2>
|
||||
<FONT SIZE="-1">
|
||||
com.sap.runlet.operationaltransformation</FONT>
|
||||
<BR>
|
||||
Class UnmergedOperationsQueue<O extends <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><S>,S></H2>
|
||||
<PRE>
|
||||
java.lang.Object
|
||||
<IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.sap.runlet.operationaltransformation.UnmergedOperationsQueue<O,S></B>
|
||||
</PRE>
|
||||
<HR>
|
||||
<DL>
|
||||
<DT><PRE>public class <B>UnmergedOperationsQueue<O extends <A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><S>,S></B><DT>extends java.lang.Object</DL>
|
||||
</PRE>
|
||||
|
||||
<P>
|
||||
<HR>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
|
||||
|
||||
<A NAME="constructor_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Constructor Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html#UnmergedOperationsQueue()">UnmergedOperationsQueue</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<!-- ========== METHOD SUMMARY =========== -->
|
||||
|
||||
<A NAME="method_summary"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Method Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> void</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html#confirm(int)">confirm</A></B>(int numberOfMergedOperations)</CODE>
|
||||
|
||||
<BR>
|
||||
Cleans up the queue so that only unconfirmed / unmerged operations
|
||||
remain.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> java.util.List<<A HREF="../../../../com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="type parameter in UnmergedOperationsQueue">O</A>></CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html#getUnmergedOperations(int)">getUnmergedOperations</A></B>(int numberOfConfirmedLocalOperations)</CODE>
|
||||
|
||||
<BR>
|
||||
Returns a copied list of unmerged and stepwise transformed local
|
||||
operations starting at the requested local operation number.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> void</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html#sentOutOperation(O)">sentOutOperation</A></B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="type parameter in UnmergedOperationsQueue">O</A> operationSentOut)</CODE>
|
||||
|
||||
<BR>
|
||||
After an operation has been locally applied and needs to be propagated
|
||||
to the peer for which this is the queue of unmerged operations, the operation
|
||||
must be appended to this queue.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> java.lang.String</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html#toString()">toString</A></B>()</CODE>
|
||||
|
||||
<BR>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
|
||||
<CODE> void</CODE></FONT></TD>
|
||||
<TD><CODE><B><A HREF="../../../../com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html#updateWithTransformed(int, O)">updateWithTransformed</A></B>(int localOperationNumber,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="type parameter in UnmergedOperationsQueue">O</A> transformedOperation)</CODE>
|
||||
|
||||
<BR>
|
||||
Replaces the local operation with number <tt>localOperationNumber</tt> in the queue by
|
||||
<tt>transformedOperation</tt>.</TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
|
||||
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<P>
|
||||
|
||||
<!-- ========= CONSTRUCTOR DETAIL ======== -->
|
||||
|
||||
<A NAME="constructor_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Constructor Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="UnmergedOperationsQueue()"><!-- --></A><H3>
|
||||
UnmergedOperationsQueue</H3>
|
||||
<PRE>
|
||||
public <B>UnmergedOperationsQueue</B>()</PRE>
|
||||
<DL>
|
||||
</DL>
|
||||
|
||||
<!-- ============ METHOD DETAIL ========== -->
|
||||
|
||||
<A NAME="method_detail"><!-- --></A>
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
|
||||
<B>Method Detail</B></FONT></TH>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<A NAME="sentOutOperation(com.sap.runlet.operationaltransformation.Operation)"><!-- --></A><A NAME="sentOutOperation(O)"><!-- --></A><H3>
|
||||
sentOutOperation</H3>
|
||||
<PRE>
|
||||
public void <B>sentOutOperation</B>(<A HREF="../../../../com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="type parameter in UnmergedOperationsQueue">O</A> operationSentOut)</PRE>
|
||||
<DL>
|
||||
<DD>After an operation has been locally applied and needs to be propagated
|
||||
to the peer for which this is the queue of unmerged operations, the operation
|
||||
must be appended to this queue.
|
||||
<P>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="getUnmergedOperations(int)"><!-- --></A><H3>
|
||||
getUnmergedOperations</H3>
|
||||
<PRE>
|
||||
public java.util.List<<A HREF="../../../../com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="type parameter in UnmergedOperationsQueue">O</A>> <B>getUnmergedOperations</B>(int numberOfConfirmedLocalOperations)</PRE>
|
||||
<DL>
|
||||
<DD>Returns a copied list of unmerged and stepwise transformed local
|
||||
operations starting at the requested local operation number.
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Parameters:</B><DD><CODE>numberOfConfirmedLocalOperations</CODE> - A value of 0 means that the remote peer has not confirmed the
|
||||
merge of any local operation yet.</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="updateWithTransformed(int,com.sap.runlet.operationaltransformation.Operation)"><!-- --></A><A NAME="updateWithTransformed(int, O)"><!-- --></A><H3>
|
||||
updateWithTransformed</H3>
|
||||
<PRE>
|
||||
public void <B>updateWithTransformed</B>(int localOperationNumber,
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="type parameter in UnmergedOperationsQueue">O</A> transformedOperation)</PRE>
|
||||
<DL>
|
||||
<DD>Replaces the local operation with number <tt>localOperationNumber</tt> in the queue by
|
||||
<tt>transformedOperation</tt>.
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Parameters:</B><DD><CODE>localOperationNumber</CODE> - starts with 0</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="confirm(int)"><!-- --></A><H3>
|
||||
confirm</H3>
|
||||
<PRE>
|
||||
public void <B>confirm</B>(int numberOfMergedOperations)</PRE>
|
||||
<DL>
|
||||
<DD>Cleans up the queue so that only unconfirmed / unmerged operations
|
||||
remain. Afterwards, <A HREF="../../../../com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html#getUnmergedOperations(int)"><CODE>asking for an
|
||||
unmerged operation</CODE></A> with an argument for
|
||||
<tt>numberOfConfirmedLocalOperations</tt> smaller than
|
||||
<tt>numberOfMergedOperations</tt> passed to this call will result in an
|
||||
exception.
|
||||
<P>
|
||||
<DD><DL>
|
||||
<DT><B>Parameters:</B><DD><CODE>numberOfMergedOperations</CODE> - tells how many operations that emerged from the local peer the
|
||||
remote peer has confirmed to have merged.</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
<A NAME="toString()"><!-- --></A><H3>
|
||||
toString</H3>
|
||||
<PRE>
|
||||
public java.lang.String <B>toString</B>()</PRE>
|
||||
<DL>
|
||||
<DD><DL>
|
||||
<DT><B>Overrides:</B><DD><CODE>toString</CODE> in class <CODE>java.lang.Object</CODE></DL>
|
||||
</DD>
|
||||
<DD><DL>
|
||||
</DL>
|
||||
</DD>
|
||||
</DL>
|
||||
<!-- ========= END OF CLASS DATA ========= -->
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html" title="interface in com.sap.runlet.operationaltransformation"><B>PREV CLASS</B></A>
|
||||
NEXT CLASS</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="UnmergedOperationsQueue.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
<TR>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
SUMMARY: NESTED | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
|
||||
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
|
||||
DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.6.0_14) on Thu Jul 30 14:17:57 CEST 2009 -->
|
||||
<TITLE>
|
||||
com.sap.runlet.operationaltransformation
|
||||
</TITLE>
|
||||
|
||||
<META NAME="date" CONTENT="2009-07-30">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
|
||||
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white">
|
||||
<FONT size="+1" CLASS="FrameTitleFont">
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html" target="classFrame">com.sap.runlet.operationaltransformation</A></FONT>
|
||||
<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
|
||||
<TR>
|
||||
<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
|
||||
Interfaces</FONT>
|
||||
<FONT CLASS="FrameItemFont">
|
||||
<BR>
|
||||
<A HREF="Operation.html" title="interface in com.sap.runlet.operationaltransformation" target="classFrame"><I>Operation</I></A>
|
||||
<BR>
|
||||
<A HREF="Peer.html" title="interface in com.sap.runlet.operationaltransformation" target="classFrame"><I>Peer</I></A>
|
||||
<BR>
|
||||
<A HREF="Transformer.html" title="interface in com.sap.runlet.operationaltransformation" target="classFrame"><I>Transformer</I></A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
|
||||
<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
|
||||
<TR>
|
||||
<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
|
||||
Classes</FONT>
|
||||
<FONT CLASS="FrameItemFont">
|
||||
<BR>
|
||||
<A HREF="AbstractOperation.html" title="class in com.sap.runlet.operationaltransformation" target="classFrame">AbstractOperation</A>
|
||||
<BR>
|
||||
<A HREF="ClientServerOperationPair.html" title="class in com.sap.runlet.operationaltransformation" target="classFrame">ClientServerOperationPair</A>
|
||||
<BR>
|
||||
<A HREF="PeerImpl.html" title="class in com.sap.runlet.operationaltransformation" target="classFrame">PeerImpl</A>
|
||||
<BR>
|
||||
<A HREF="StatesAndOperations.html" title="class in com.sap.runlet.operationaltransformation" target="classFrame">StatesAndOperations</A>
|
||||
<BR>
|
||||
<A HREF="UnmergedOperationsQueue.html" title="class in com.sap.runlet.operationaltransformation" target="classFrame">UnmergedOperationsQueue</A></FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
+265
@@ -0,0 +1,265 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.6.0_14) on Thu Jul 30 14:17:57 CEST 2009 -->
|
||||
<TITLE>
|
||||
com.sap.runlet.operationaltransformation
|
||||
</TITLE>
|
||||
|
||||
<META NAME="date" CONTENT="2009-07-30">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="com.sap.runlet.operationaltransformation";
|
||||
}
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV PACKAGE
|
||||
NEXT PACKAGE</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/package-summary.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<H2>
|
||||
Package com.sap.runlet.operationaltransformation
|
||||
</H2>
|
||||
|
||||
Use the contents of this package for so-called <em>operational transformations</em>.
|
||||
<P>
|
||||
<B>See:</B>
|
||||
<BR>
|
||||
<A HREF="#package_description"><B>Description</B></A>
|
||||
<P>
|
||||
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Interface Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD WIDTH="15%"><B><A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation<S></A></B></TD>
|
||||
<TD>A change operation can be applied to some start state of some
|
||||
universe and transforms that universe into a target state.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD WIDTH="15%"><B><A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer<O extends Operation<S>,S></A></B></TD>
|
||||
<TD>Accepts change operations from clients and maintains a shared state.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD WIDTH="15%"><B><A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html" title="interface in com.sap.runlet.operationaltransformation">Transformer<O extends Operation<?>></A></B></TD>
|
||||
<TD> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
|
||||
<P>
|
||||
|
||||
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
|
||||
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
|
||||
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
|
||||
<B>Class Summary</B></FONT></TH>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD WIDTH="15%"><B><A HREF="../../../../com/sap/runlet/operationaltransformation/AbstractOperation.html" title="class in com.sap.runlet.operationaltransformation">AbstractOperation<S></A></B></TD>
|
||||
<TD> </TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD WIDTH="15%"><B><A HREF="../../../../com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="class in com.sap.runlet.operationaltransformation">ClientServerOperationPair<O extends Operation<?>></A></B></TD>
|
||||
<TD> </TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD WIDTH="15%"><B><A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation">PeerImpl<O extends Operation<S>,S></A></B></TD>
|
||||
<TD>A very simple peer implementation for operational transformations that starts
|
||||
out with a provided initial state and then receives operations which it applies
|
||||
to its state.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD WIDTH="15%"><B><A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="class in com.sap.runlet.operationaltransformation">StatesAndOperations<O extends Operation<S>,S></A></B></TD>
|
||||
<TD>Maintains a list of states and the operations that transformed the i-th into
|
||||
the i+1st, starting with an initial state.</TD>
|
||||
</TR>
|
||||
<TR BGCOLOR="white" CLASS="TableRowColor">
|
||||
<TD WIDTH="15%"><B><A HREF="../../../../com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="class in com.sap.runlet.operationaltransformation">UnmergedOperationsQueue<O extends Operation<S>,S></A></B></TD>
|
||||
<TD> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
|
||||
<P>
|
||||
<A NAME="package_description"><!-- --></A><H2>
|
||||
Package com.sap.runlet.operationaltransformation Description
|
||||
</H2>
|
||||
|
||||
<P>
|
||||
<p>
|
||||
Use the contents of this package for so-called <em>operational transformations</em>.
|
||||
This can be used to synchronize the states of a number of clients with a single server.
|
||||
The synchronization is performed asynchronously. The construction of the transformation
|
||||
function guarantees to lead to eventual consistency across clients and server.
|
||||
Read more about the general background of the algorithm on which this is based
|
||||
<a href="../docs/JupiterCollaborationSystem_Nichols.pdf">here</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To establish a server to which clients can connect, first decide how your <em>state</em>
|
||||
is encoded on which the <em>operations</em> will perform changes to transition from one
|
||||
state to the next. Then, design your operations class. The trickiest part comes next. You
|
||||
have to define a transformer that maps a pair of your operations to another pair of
|
||||
operations of the same type. The transformer has to implement the
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html" title="interface in com.sap.runlet.operationaltransformation"><CODE>Transformer</CODE></A> interface, in particular
|
||||
the <A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html#transform(O, O)"><CODE>Transformer.transform(O, O)</CODE></A> method. The
|
||||
transformation function assumes that both input operations have been applied to the same
|
||||
state, one on a client, the other one on the server. The resulting operation for the client
|
||||
applied on the client must lead to a state equal to the state reached on the server by
|
||||
applying the resulting operation for the server to the server's state.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Put formally, if <em>t</em> is a transformer, and
|
||||
if we have <em>s_c</em> as the state on the client and <em>s_s</em> as the state
|
||||
on the server, and <em>c</em> as the operation that was executed in state <em>s_c</em> on the
|
||||
client, and <em>s</em> as the operation executed on the server in state <em>s_s</em>, then the
|
||||
following condition must hold:<br>
|
||||
<pre>
|
||||
t.transform(c, s).getClientOp().applyTo(c.applyTo(s_c).equals(
|
||||
t.transform(c, s).getServerOp().applyTo(s.applyTo(s_s))
|
||||
</pre>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
You can create servers and clients, e.g., as follows:
|
||||
<pre>
|
||||
server = new <A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation"><CODE>PeerImpl</CODE></A><MyOperationType, MyStateType>(
|
||||
"Server", new MyTransformer(), /* initial state */ new MyStateType(...), /* server */ true);
|
||||
client1 = new <A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation"><CODE>PeerImpl</CODE></A><MyOperationType, MyStateType>("Client1", new MyTransformer(), server);
|
||||
client2 = new <A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation"><CODE>PeerImpl</CODE></A><MyOperationType, MyStateType>("Client2", new MyTransformer(), server);
|
||||
</pre>
|
||||
|
||||
After that, you can start sending operations to the clients using the
|
||||
<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#apply(com.sap.runlet.operationaltransformation.Peer, O, int)"><CODE>Peer.apply(com.sap.runlet.operationaltransformation.Peer<O, S>, O, int)</CODE></A> method as follows:
|
||||
<pre>
|
||||
client1.<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#apply(com.sap.runlet.operationaltransformation.Peer, O, int)"><CODE>apply</CODE></A>(new MyOperationType(...));
|
||||
client2.<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#apply(com.sap.runlet.operationaltransformation.Peer, O, int)"><CODE>apply</CODE></A>(new MyOperationType(...));
|
||||
...
|
||||
</pre>
|
||||
and those changes will eventually get synchronized across all clients and the server. You can
|
||||
obtain the current state of a peer using the <A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html#getCurrentState()"><CODE>Peer.getCurrentState()</CODE></A>
|
||||
operation.
|
||||
</p>
|
||||
<P>
|
||||
|
||||
<P>
|
||||
<DL>
|
||||
</DL>
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV PACKAGE
|
||||
NEXT PACKAGE</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/package-summary.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
+155
@@ -0,0 +1,155 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.6.0_14) on Thu Jul 30 14:17:57 CEST 2009 -->
|
||||
<TITLE>
|
||||
com.sap.runlet.operationaltransformation Class Hierarchy
|
||||
</TITLE>
|
||||
|
||||
<META NAME="date" CONTENT="2009-07-30">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="com.sap.runlet.operationaltransformation Class Hierarchy";
|
||||
}
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV
|
||||
NEXT</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/package-tree.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<CENTER>
|
||||
<H2>
|
||||
Hierarchy For Package com.sap.runlet.operationaltransformation
|
||||
</H2>
|
||||
</CENTER>
|
||||
<H2>
|
||||
Class Hierarchy
|
||||
</H2>
|
||||
<UL>
|
||||
<LI TYPE="circle">java.lang.Object<UL>
|
||||
<LI TYPE="circle">com.sap.runlet.operationaltransformation.<A HREF="../../../../com/sap/runlet/operationaltransformation/AbstractOperation.html" title="class in com.sap.runlet.operationaltransformation"><B>AbstractOperation</B></A><S> (implements com.sap.runlet.operationaltransformation.<A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><S>)
|
||||
<LI TYPE="circle">com.sap.runlet.operationaltransformation.<A HREF="../../../../com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="class in com.sap.runlet.operationaltransformation"><B>ClientServerOperationPair</B></A><O><LI TYPE="circle">com.sap.runlet.operationaltransformation.<A HREF="../../../../com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation"><B>PeerImpl</B></A><O,S> (implements com.sap.runlet.operationaltransformation.<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><O,S>)
|
||||
<LI TYPE="circle">com.sap.runlet.operationaltransformation.<A HREF="../../../../com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="class in com.sap.runlet.operationaltransformation"><B>StatesAndOperations</B></A><O,S><LI TYPE="circle">com.sap.runlet.operationaltransformation.<A HREF="../../../../com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="class in com.sap.runlet.operationaltransformation"><B>UnmergedOperationsQueue</B></A><O,S></UL>
|
||||
</UL>
|
||||
<H2>
|
||||
Interface Hierarchy
|
||||
</H2>
|
||||
<UL>
|
||||
<LI TYPE="circle">java.lang.Cloneable<UL>
|
||||
<LI TYPE="circle">com.sap.runlet.operationaltransformation.<A HREF="../../../../com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation"><B>Operation</B></A><S></UL>
|
||||
<LI TYPE="circle">com.sap.runlet.operationaltransformation.<A HREF="../../../../com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation"><B>Peer</B></A><O,S><LI TYPE="circle">com.sap.runlet.operationaltransformation.<A HREF="../../../../com/sap/runlet/operationaltransformation/Transformer.html" title="interface in com.sap.runlet.operationaltransformation"><B>Transformer</B></A><O></UL>
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV
|
||||
NEXT</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="../../../../index.html?com/sap/runlet/operationaltransformation/package-tree.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,142 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.6.0_14) on Thu Jul 30 14:17:57 CEST 2009 -->
|
||||
<TITLE>
|
||||
Constant Field Values
|
||||
</TITLE>
|
||||
|
||||
<META NAME="date" CONTENT="2009-07-30">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="Constant Field Values";
|
||||
}
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/sap/runlet/operationaltransformation/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV
|
||||
NEXT</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<CENTER>
|
||||
<H1>
|
||||
Constant Field Values</H1>
|
||||
</CENTER>
|
||||
<HR SIZE="4" NOSHADE>
|
||||
<B>Contents</B><UL>
|
||||
</UL>
|
||||
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/sap/runlet/operationaltransformation/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV
|
||||
NEXT</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,142 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.6.0_14) on Thu Jul 30 14:17:57 CEST 2009 -->
|
||||
<TITLE>
|
||||
Deprecated List
|
||||
</TITLE>
|
||||
|
||||
<META NAME="date" CONTENT="2009-07-30">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="Deprecated List";
|
||||
}
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/sap/runlet/operationaltransformation/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV
|
||||
NEXT</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<CENTER>
|
||||
<H2>
|
||||
<B>Deprecated API</B></H2>
|
||||
</CENTER>
|
||||
<HR SIZE="4" NOSHADE>
|
||||
<B>Contents</B><UL>
|
||||
</UL>
|
||||
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/sap/runlet/operationaltransformation/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV
|
||||
NEXT</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,209 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.6.0_14) on Thu Jul 30 14:17:57 CEST 2009 -->
|
||||
<TITLE>
|
||||
API Help
|
||||
</TITLE>
|
||||
|
||||
<META NAME="date" CONTENT="2009-07-30">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="API Help";
|
||||
}
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/sap/runlet/operationaltransformation/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV
|
||||
NEXT</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<CENTER>
|
||||
<H1>
|
||||
How This API Document Is Organized</H1>
|
||||
</CENTER>
|
||||
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>
|
||||
Package</H3>
|
||||
<BLOCKQUOTE>
|
||||
|
||||
<P>
|
||||
Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>
|
||||
<LI>Interfaces (italic)<LI>Classes<LI>Enums<LI>Exceptions<LI>Errors<LI>Annotation Types</UL>
|
||||
</BLOCKQUOTE>
|
||||
<H3>
|
||||
Class/Interface</H3>
|
||||
<BLOCKQUOTE>
|
||||
|
||||
<P>
|
||||
Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL>
|
||||
<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description
|
||||
<P>
|
||||
<LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary
|
||||
<P>
|
||||
<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>
|
||||
Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE>
|
||||
</BLOCKQUOTE>
|
||||
<H3>
|
||||
Annotation Type</H3>
|
||||
<BLOCKQUOTE>
|
||||
|
||||
<P>
|
||||
Each annotation type has its own separate page with the following sections:<UL>
|
||||
<LI>Annotation Type declaration<LI>Annotation Type description<LI>Required Element Summary<LI>Optional Element Summary<LI>Element Detail</UL>
|
||||
</BLOCKQUOTE>
|
||||
</BLOCKQUOTE>
|
||||
<H3>
|
||||
Enum</H3>
|
||||
<BLOCKQUOTE>
|
||||
|
||||
<P>
|
||||
Each enum has its own separate page with the following sections:<UL>
|
||||
<LI>Enum declaration<LI>Enum description<LI>Enum Constant Summary<LI>Enum Constant Detail</UL>
|
||||
</BLOCKQUOTE>
|
||||
<H3>
|
||||
Tree (Class Hierarchy)</H3>
|
||||
<BLOCKQUOTE>
|
||||
There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.<UL>
|
||||
<LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL>
|
||||
</BLOCKQUOTE>
|
||||
<H3>
|
||||
Deprecated API</H3>
|
||||
<BLOCKQUOTE>
|
||||
The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE>
|
||||
<H3>
|
||||
Index</H3>
|
||||
<BLOCKQUOTE>
|
||||
The <A HREF="index-all.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE>
|
||||
<H3>
|
||||
Prev/Next</H3>
|
||||
These links take you to the next or previous class, interface, package, or related page.<H3>
|
||||
Frames/No Frames</H3>
|
||||
These links show and hide the HTML frames. All pages are available with or without frames.
|
||||
<P>
|
||||
<H3>
|
||||
Serialized Form</H3>
|
||||
Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
|
||||
<P>
|
||||
<H3>
|
||||
Constant Field Values</H3>
|
||||
The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.
|
||||
<P>
|
||||
<FONT SIZE="-1">
|
||||
<EM>
|
||||
This help file applies to API documentation generated using the standard doclet.</EM>
|
||||
</FONT>
|
||||
<BR>
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/sap/runlet/operationaltransformation/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV
|
||||
NEXT</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,308 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.6.0_14) on Thu Jul 30 14:17:57 CEST 2009 -->
|
||||
<TITLE>
|
||||
Index
|
||||
</TITLE>
|
||||
|
||||
<META NAME="date" CONTENT="2009-07-30">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="./stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="Index";
|
||||
}
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./com/sap/runlet/operationaltransformation/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV
|
||||
NEXT</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<A HREF="#_A_">A</A> <A HREF="#_C_">C</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_W_">W</A> <HR>
|
||||
<A NAME="_A_"><!-- --></A><H2>
|
||||
<B>A</B></H2>
|
||||
<DL>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/AbstractOperation.html" title="class in com.sap.runlet.operationaltransformation"><B>AbstractOperation</B></A><<A HREF="./com/sap/runlet/operationaltransformation/AbstractOperation.html" title="type parameter in AbstractOperation">S</A>> - Class in <A HREF="./com/sap/runlet/operationaltransformation/package-summary.html">com.sap.runlet.operationaltransformation</A><DD> <DT><A HREF="./com/sap/runlet/operationaltransformation/AbstractOperation.html#AbstractOperation()"><B>AbstractOperation()</B></A> -
|
||||
Constructor for class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/AbstractOperation.html" title="class in com.sap.runlet.operationaltransformation">AbstractOperation</A>
|
||||
<DD>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/Peer.html#addPeer(com.sap.runlet.operationaltransformation.Peer)"><B>addPeer(Peer<O, S>)</B></A> -
|
||||
Method in interface com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A>
|
||||
<DD>Registers a peer with this peer for replication.
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html#addPeer(com.sap.runlet.operationaltransformation.Peer)"><B>addPeer(Peer<O, S>)</B></A> -
|
||||
Method in class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation">PeerImpl</A>
|
||||
<DD>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/Peer.html#apply(com.sap.runlet.operationaltransformation.Peer, O, int)"><B>apply(Peer<O, S>, O, int)</B></A> -
|
||||
Method in interface com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A>
|
||||
<DD>Usually, the framework handles calls to this method and framework users
|
||||
should therefore not need to call this method.
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/Peer.html#apply(O)"><B>apply(O)</B></A> -
|
||||
Method in interface com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A>
|
||||
<DD>Applies a change operation locally to the current peer's state.
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html#apply(O)"><B>apply(O)</B></A> -
|
||||
Method in class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation">PeerImpl</A>
|
||||
<DD>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html#apply(com.sap.runlet.operationaltransformation.Peer, O, int)"><B>apply(Peer<O, S>, O, int)</B></A> -
|
||||
Method in class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation">PeerImpl</A>
|
||||
<DD>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/StatesAndOperations.html#apply(O)"><B>apply(O)</B></A> -
|
||||
Method in class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="class in com.sap.runlet.operationaltransformation">StatesAndOperations</A>
|
||||
<DD>Applies the <tt>operation</tt> to the <A HREF="./com/sap/runlet/operationaltransformation/StatesAndOperations.html#getCurrentState()"><CODE>current
|
||||
state</CODE></A> and records both, the new current state and the operation.
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/Operation.html#applyTo(S)"><B>applyTo(S)</B></A> -
|
||||
Method in interface com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A>
|
||||
<DD>Applies this operation to the state <tt>toState</tt>, producing a new target state
|
||||
which is returned.
|
||||
</DL>
|
||||
<HR>
|
||||
<A NAME="_C_"><!-- --></A><H2>
|
||||
<B>C</B></H2>
|
||||
<DL>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="class in com.sap.runlet.operationaltransformation"><B>ClientServerOperationPair</B></A><<A HREF="./com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="type parameter in ClientServerOperationPair">O</A> extends <A HREF="./com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><?>> - Class in <A HREF="./com/sap/runlet/operationaltransformation/package-summary.html">com.sap.runlet.operationaltransformation</A><DD> <DT><A HREF="./com/sap/runlet/operationaltransformation/ClientServerOperationPair.html#ClientServerOperationPair(O, O)"><B>ClientServerOperationPair(O, O)</B></A> -
|
||||
Constructor for class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="class in com.sap.runlet.operationaltransformation">ClientServerOperationPair</A>
|
||||
<DD>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/AbstractOperation.html#clone()"><B>clone()</B></A> -
|
||||
Method in class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/AbstractOperation.html" title="class in com.sap.runlet.operationaltransformation">AbstractOperation</A>
|
||||
<DD>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/Operation.html#clone()"><B>clone()</B></A> -
|
||||
Method in interface com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A>
|
||||
<DD>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/package-summary.html"><B>com.sap.runlet.operationaltransformation</B></A> - package com.sap.runlet.operationaltransformation<DD>
|
||||
Use the contents of this package for so-called <em>operational transformations</em>.<DT><A HREF="./com/sap/runlet/operationaltransformation/Peer.html#confirm(com.sap.runlet.operationaltransformation.Peer, int)"><B>confirm(Peer<O, S>, int)</B></A> -
|
||||
Method in interface com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A>
|
||||
<DD>Tells this peer that the <tt>source</tt> peer has successfully merged
|
||||
<tt>numberOfMergedOperations</tt> altogether coming from this peer
|
||||
into its operation sequence.
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html#confirm(com.sap.runlet.operationaltransformation.Peer, int)"><B>confirm(Peer<O, S>, int)</B></A> -
|
||||
Method in class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation">PeerImpl</A>
|
||||
<DD>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html#confirm(int)"><B>confirm(int)</B></A> -
|
||||
Method in class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="class in com.sap.runlet.operationaltransformation">UnmergedOperationsQueue</A>
|
||||
<DD>Cleans up the queue so that only unconfirmed / unmerged operations
|
||||
remain.
|
||||
</DL>
|
||||
<HR>
|
||||
<A NAME="_F_"><!-- --></A><H2>
|
||||
<B>F</B></H2>
|
||||
<DL>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html#finalize()"><B>finalize()</B></A> -
|
||||
Method in class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation">PeerImpl</A>
|
||||
<DD>
|
||||
</DL>
|
||||
<HR>
|
||||
<A NAME="_G_"><!-- --></A><H2>
|
||||
<B>G</B></H2>
|
||||
<DL>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/ClientServerOperationPair.html#getClientOp()"><B>getClientOp()</B></A> -
|
||||
Method in class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="class in com.sap.runlet.operationaltransformation">ClientServerOperationPair</A>
|
||||
<DD>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/Peer.html#getCurrentState()"><B>getCurrentState()</B></A> -
|
||||
Method in interface com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A>
|
||||
<DD>Tells the current state in which the peer is.
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html#getCurrentState()"><B>getCurrentState()</B></A> -
|
||||
Method in class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation">PeerImpl</A>
|
||||
<DD>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/StatesAndOperations.html#getCurrentState()"><B>getCurrentState()</B></A> -
|
||||
Method in class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="class in com.sap.runlet.operationaltransformation">StatesAndOperations</A>
|
||||
<DD>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/ClientServerOperationPair.html#getServerOp()"><B>getServerOp()</B></A> -
|
||||
Method in class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="class in com.sap.runlet.operationaltransformation">ClientServerOperationPair</A>
|
||||
<DD>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html#getUnmergedOperations(int)"><B>getUnmergedOperations(int)</B></A> -
|
||||
Method in class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="class in com.sap.runlet.operationaltransformation">UnmergedOperationsQueue</A>
|
||||
<DD>Returns a copied list of unmerged and stepwise transformed local
|
||||
operations starting at the requested local operation number.
|
||||
</DL>
|
||||
<HR>
|
||||
<A NAME="_O_"><!-- --></A><H2>
|
||||
<B>O</B></H2>
|
||||
<DL>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation"><B>Operation</B></A><<A HREF="./com/sap/runlet/operationaltransformation/Operation.html" title="type parameter in Operation">S</A>> - Interface in <A HREF="./com/sap/runlet/operationaltransformation/package-summary.html">com.sap.runlet.operationaltransformation</A><DD>A change operation can be applied to some start state of some
|
||||
universe and transforms that universe into a target state.</DL>
|
||||
<HR>
|
||||
<A NAME="_P_"><!-- --></A><H2>
|
||||
<B>P</B></H2>
|
||||
<DL>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation"><B>Peer</B></A><<A HREF="./com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">O</A> extends <A HREF="./com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><<A HREF="./com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">S</A>>,<A HREF="./com/sap/runlet/operationaltransformation/Peer.html" title="type parameter in Peer">S</A>> - Interface in <A HREF="./com/sap/runlet/operationaltransformation/package-summary.html">com.sap.runlet.operationaltransformation</A><DD>Accepts change operations from clients and maintains a shared state.<DT><A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation"><B>PeerImpl</B></A><<A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">O</A> extends <A HREF="./com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><<A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>>,<A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html" title="type parameter in PeerImpl">S</A>> - Class in <A HREF="./com/sap/runlet/operationaltransformation/package-summary.html">com.sap.runlet.operationaltransformation</A><DD>A very simple peer implementation for operational transformations that starts
|
||||
out with a provided initial state and then receives operations which it applies
|
||||
to its state.<DT><A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html#PeerImpl(com.sap.runlet.operationaltransformation.Transformer, S, boolean)"><B>PeerImpl(Transformer<O>, S, boolean)</B></A> -
|
||||
Constructor for class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation">PeerImpl</A>
|
||||
<DD>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html#PeerImpl(java.lang.String, com.sap.runlet.operationaltransformation.Transformer, S, boolean)"><B>PeerImpl(String, Transformer<O>, S, boolean)</B></A> -
|
||||
Constructor for class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation">PeerImpl</A>
|
||||
<DD>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html#PeerImpl(com.sap.runlet.operationaltransformation.Transformer, com.sap.runlet.operationaltransformation.Peer)"><B>PeerImpl(Transformer<O>, Peer<O, S>)</B></A> -
|
||||
Constructor for class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation">PeerImpl</A>
|
||||
<DD>Constructs a client peer and connects it to the <tt>server</tt> peer, establishing
|
||||
the two-way link between client and server peers.
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html#PeerImpl(java.lang.String, com.sap.runlet.operationaltransformation.Transformer, com.sap.runlet.operationaltransformation.Peer)"><B>PeerImpl(String, Transformer<O>, Peer<O, S>)</B></A> -
|
||||
Constructor for class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation">PeerImpl</A>
|
||||
<DD>Constructs a client peer with a name and connects it to the
|
||||
<tt>server</tt> peer, establishing the two-way link between client and
|
||||
server peers.
|
||||
</DL>
|
||||
<HR>
|
||||
<A NAME="_S_"><!-- --></A><H2>
|
||||
<B>S</B></H2>
|
||||
<DL>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html#sentOutOperation(O)"><B>sentOutOperation(O)</B></A> -
|
||||
Method in class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="class in com.sap.runlet.operationaltransformation">UnmergedOperationsQueue</A>
|
||||
<DD>After an operation has been locally applied and needs to be propagated
|
||||
to the peer for which this is the queue of unmerged operations, the operation
|
||||
must be appended to this queue.
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="class in com.sap.runlet.operationaltransformation"><B>StatesAndOperations</B></A><<A HREF="./com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="type parameter in StatesAndOperations">O</A> extends <A HREF="./com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><<A HREF="./com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="type parameter in StatesAndOperations">S</A>>,<A HREF="./com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="type parameter in StatesAndOperations">S</A>> - Class in <A HREF="./com/sap/runlet/operationaltransformation/package-summary.html">com.sap.runlet.operationaltransformation</A><DD>Maintains a list of states and the operations that transformed the i-th into
|
||||
the i+1st, starting with an initial state.<DT><A HREF="./com/sap/runlet/operationaltransformation/StatesAndOperations.html#StatesAndOperations(S)"><B>StatesAndOperations(S)</B></A> -
|
||||
Constructor for class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="class in com.sap.runlet.operationaltransformation">StatesAndOperations</A>
|
||||
<DD>
|
||||
</DL>
|
||||
<HR>
|
||||
<A NAME="_T_"><!-- --></A><H2>
|
||||
<B>T</B></H2>
|
||||
<DL>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html#toString()"><B>toString()</B></A> -
|
||||
Method in class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation">PeerImpl</A>
|
||||
<DD>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html#toString()"><B>toString()</B></A> -
|
||||
Method in class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="class in com.sap.runlet.operationaltransformation">UnmergedOperationsQueue</A>
|
||||
<DD>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/Transformer.html#transform(O, O)"><B>transform(O, O)</B></A> -
|
||||
Method in interface com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/Transformer.html" title="interface in com.sap.runlet.operationaltransformation">Transformer</A>
|
||||
<DD>Takes an operation from the client and an operation from the server, both
|
||||
based on the same state.
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/Transformer.html" title="interface in com.sap.runlet.operationaltransformation"><B>Transformer</B></A><<A HREF="./com/sap/runlet/operationaltransformation/Transformer.html" title="type parameter in Transformer">O</A> extends <A HREF="./com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><?>> - Interface in <A HREF="./com/sap/runlet/operationaltransformation/package-summary.html">com.sap.runlet.operationaltransformation</A><DD> </DL>
|
||||
<HR>
|
||||
<A NAME="_U_"><!-- --></A><H2>
|
||||
<B>U</B></H2>
|
||||
<DL>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="class in com.sap.runlet.operationaltransformation"><B>UnmergedOperationsQueue</B></A><<A HREF="./com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="type parameter in UnmergedOperationsQueue">O</A> extends <A HREF="./com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><<A HREF="./com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="type parameter in UnmergedOperationsQueue">S</A>>,<A HREF="./com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="type parameter in UnmergedOperationsQueue">S</A>> - Class in <A HREF="./com/sap/runlet/operationaltransformation/package-summary.html">com.sap.runlet.operationaltransformation</A><DD> <DT><A HREF="./com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html#UnmergedOperationsQueue()"><B>UnmergedOperationsQueue()</B></A> -
|
||||
Constructor for class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="class in com.sap.runlet.operationaltransformation">UnmergedOperationsQueue</A>
|
||||
<DD>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html#updateWithTransformed(int, O)"><B>updateWithTransformed(int, O)</B></A> -
|
||||
Method in class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="class in com.sap.runlet.operationaltransformation">UnmergedOperationsQueue</A>
|
||||
<DD>Replaces the local operation with number <tt>localOperationNumber</tt> in the queue by
|
||||
<tt>transformedOperation</tt>.
|
||||
</DL>
|
||||
<HR>
|
||||
<A NAME="_W_"><!-- --></A><H2>
|
||||
<B>W</B></H2>
|
||||
<DL>
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/Peer.html#waitForNotRunning()"><B>waitForNotRunning()</B></A> -
|
||||
Method in interface com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A>
|
||||
<DD>Blocks until the queue of tasks that works on achieving consistency across peers
|
||||
has completely drained.
|
||||
<DT><A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html#waitForNotRunning()"><B>waitForNotRunning()</B></A> -
|
||||
Method in class com.sap.runlet.operationaltransformation.<A HREF="./com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation">PeerImpl</A>
|
||||
<DD>
|
||||
</DL>
|
||||
<HR>
|
||||
<A HREF="#_A_">A</A> <A HREF="#_C_">C</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_W_">W</A>
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./com/sap/runlet/operationaltransformation/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV
|
||||
NEXT</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1,36 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc on Thu Jul 30 14:17:57 CEST 2009-->
|
||||
<TITLE>
|
||||
Generated Documentation (Untitled)
|
||||
</TITLE>
|
||||
<SCRIPT type="text/javascript">
|
||||
targetPage = "" + window.location.search;
|
||||
if (targetPage != "" && targetPage != "undefined")
|
||||
targetPage = targetPage.substring(1);
|
||||
if (targetPage.indexOf(":") != -1)
|
||||
targetPage = "undefined";
|
||||
function loadFrames() {
|
||||
if (targetPage != "" && targetPage != "undefined")
|
||||
top.classFrame.location = top.targetPage;
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
</HEAD>
|
||||
<FRAMESET cols="20%,80%" title="" onLoad="top.loadFrames()">
|
||||
<FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
|
||||
<FRAME src="com/sap/runlet/operationaltransformation/package-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
|
||||
<NOFRAMES>
|
||||
<H2>
|
||||
Frame Alert</H2>
|
||||
|
||||
<P>
|
||||
This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
|
||||
<BR>
|
||||
Link to<A HREF="com/sap/runlet/operationaltransformation/package-summary.html">Non-frame version.</A>
|
||||
</NOFRAMES>
|
||||
</FRAMESET>
|
||||
</HTML>
|
||||
@@ -0,0 +1,157 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!--NewPage-->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<!-- Generated by javadoc (build 1.6.0_14) on Thu Jul 30 14:17:57 CEST 2009 -->
|
||||
<TITLE>
|
||||
Class Hierarchy
|
||||
</TITLE>
|
||||
|
||||
<META NAME="date" CONTENT="2009-07-30">
|
||||
|
||||
<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
|
||||
|
||||
<SCRIPT type="text/javascript">
|
||||
function windowTitle()
|
||||
{
|
||||
if (location.href.indexOf('is-external=true') == -1) {
|
||||
parent.document.title="Class Hierarchy";
|
||||
}
|
||||
}
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
</NOSCRIPT>
|
||||
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="white" onload="windowTitle();">
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ========= START OF TOP NAVBAR ======= -->
|
||||
<A NAME="navbar_top"><!-- --></A>
|
||||
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_top_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV
|
||||
NEXT</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_top"></A>
|
||||
<!-- ========= END OF TOP NAVBAR ========= -->
|
||||
|
||||
<HR>
|
||||
<CENTER>
|
||||
<H2>
|
||||
Hierarchy For All Packages</H2>
|
||||
</CENTER>
|
||||
<DL>
|
||||
<DT><B>Package Hierarchies:</B><DD><A HREF="com/sap/runlet/operationaltransformation/package-tree.html">com.sap.runlet.operationaltransformation</A></DL>
|
||||
<HR>
|
||||
<H2>
|
||||
Class Hierarchy
|
||||
</H2>
|
||||
<UL>
|
||||
<LI TYPE="circle">java.lang.Object<UL>
|
||||
<LI TYPE="circle">com.sap.runlet.operationaltransformation.<A HREF="com/sap/runlet/operationaltransformation/AbstractOperation.html" title="class in com.sap.runlet.operationaltransformation"><B>AbstractOperation</B></A><S> (implements com.sap.runlet.operationaltransformation.<A HREF="com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation">Operation</A><S>)
|
||||
<LI TYPE="circle">com.sap.runlet.operationaltransformation.<A HREF="com/sap/runlet/operationaltransformation/ClientServerOperationPair.html" title="class in com.sap.runlet.operationaltransformation"><B>ClientServerOperationPair</B></A><O><LI TYPE="circle">com.sap.runlet.operationaltransformation.<A HREF="com/sap/runlet/operationaltransformation/PeerImpl.html" title="class in com.sap.runlet.operationaltransformation"><B>PeerImpl</B></A><O,S> (implements com.sap.runlet.operationaltransformation.<A HREF="com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation">Peer</A><O,S>)
|
||||
<LI TYPE="circle">com.sap.runlet.operationaltransformation.<A HREF="com/sap/runlet/operationaltransformation/StatesAndOperations.html" title="class in com.sap.runlet.operationaltransformation"><B>StatesAndOperations</B></A><O,S><LI TYPE="circle">com.sap.runlet.operationaltransformation.<A HREF="com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.html" title="class in com.sap.runlet.operationaltransformation"><B>UnmergedOperationsQueue</B></A><O,S></UL>
|
||||
</UL>
|
||||
<H2>
|
||||
Interface Hierarchy
|
||||
</H2>
|
||||
<UL>
|
||||
<LI TYPE="circle">java.lang.Cloneable<UL>
|
||||
<LI TYPE="circle">com.sap.runlet.operationaltransformation.<A HREF="com/sap/runlet/operationaltransformation/Operation.html" title="interface in com.sap.runlet.operationaltransformation"><B>Operation</B></A><S></UL>
|
||||
<LI TYPE="circle">com.sap.runlet.operationaltransformation.<A HREF="com/sap/runlet/operationaltransformation/Peer.html" title="interface in com.sap.runlet.operationaltransformation"><B>Peer</B></A><O,S><LI TYPE="circle">com.sap.runlet.operationaltransformation.<A HREF="com/sap/runlet/operationaltransformation/Transformer.html" title="interface in com.sap.runlet.operationaltransformation"><B>Transformer</B></A><O></UL>
|
||||
<HR>
|
||||
|
||||
|
||||
<!-- ======= START OF BOTTOM NAVBAR ====== -->
|
||||
<A NAME="navbar_bottom"><!-- --></A>
|
||||
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
|
||||
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
|
||||
<TR>
|
||||
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
|
||||
<A NAME="navbar_bottom_firstrow"><!-- --></A>
|
||||
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
|
||||
<TR ALIGN="center" VALIGN="top">
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/sap/runlet/operationaltransformation/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
|
||||
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
|
||||
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
</TD>
|
||||
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
|
||||
</EM>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
<TR>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
PREV
|
||||
NEXT</FONT></TD>
|
||||
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
|
||||
<A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A>
|
||||
<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A>
|
||||
<SCRIPT type="text/javascript">
|
||||
<!--
|
||||
if(window==top) {
|
||||
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
|
||||
}
|
||||
//-->
|
||||
</SCRIPT>
|
||||
<NOSCRIPT>
|
||||
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
|
||||
</NOSCRIPT>
|
||||
|
||||
|
||||
</FONT></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
<A NAME="skip-navbar_bottom"></A>
|
||||
<!-- ======== END OF BOTTOM NAVBAR ======= -->
|
||||
|
||||
<HR>
|
||||
|
||||
</BODY>
|
||||
</HTML>
|
||||
@@ -0,0 +1 @@
|
||||
com.sap.runlet.operationaltransformation
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 57 B |
@@ -0,0 +1,29 @@
|
||||
/* Javadoc style sheet */
|
||||
|
||||
/* Define colors, fonts and other style attributes here to override the defaults */
|
||||
|
||||
/* Page background color */
|
||||
body { background-color: #FFFFFF; color:#000000 }
|
||||
|
||||
/* Headings */
|
||||
h1 { font-size: 145% }
|
||||
|
||||
/* Table colors */
|
||||
.TableHeadingColor { background: #CCCCFF; color:#000000 } /* Dark mauve */
|
||||
.TableSubHeadingColor { background: #EEEEFF; color:#000000 } /* Light mauve */
|
||||
.TableRowColor { background: #FFFFFF; color:#000000 } /* White */
|
||||
|
||||
/* Font used in left-hand frame lists */
|
||||
.FrameTitleFont { font-size: 100%; font-family: Helvetica, Arial, sans-serif; color:#000000 }
|
||||
.FrameHeadingFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 }
|
||||
.FrameItemFont { font-size: 90%; font-family: Helvetica, Arial, sans-serif; color:#000000 }
|
||||
|
||||
/* Navigation bar fonts and colors */
|
||||
.NavBarCell1 { background-color:#EEEEFF; color:#000000} /* Light mauve */
|
||||
.NavBarCell1Rev { background-color:#00008B; color:#FFFFFF} /* Dark Blue */
|
||||
.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;color:#000000;}
|
||||
.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;color:#FFFFFF;}
|
||||
|
||||
.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000}
|
||||
.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF; color:#000000}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 80
|
||||
/svn/monet/!svn/ver/7755/trunk/ngpm/com.sap.runlet.operationaltransformation/src
|
||||
END
|
||||
@@ -0,0 +1,31 @@
|
||||
10
|
||||
|
||||
dir
|
||||
9910
|
||||
https://forge.sap.corp/svn/monet/trunk/ngpm/com.sap.runlet.operationaltransformation/src
|
||||
https://forge.sap.corp/svn/monet
|
||||
|
||||
|
||||
|
||||
2009-08-26T06:41:31.887030Z
|
||||
7755
|
||||
d046040
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
8e1b717f-a215-9248-8963-3bf2ea82000e
|
||||
|
||||
com
|
||||
dir
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 84
|
||||
/svn/monet/!svn/ver/7755/trunk/ngpm/com.sap.runlet.operationaltransformation/src/com
|
||||
END
|
||||
@@ -0,0 +1,31 @@
|
||||
10
|
||||
|
||||
dir
|
||||
9910
|
||||
https://forge.sap.corp/svn/monet/trunk/ngpm/com.sap.runlet.operationaltransformation/src/com
|
||||
https://forge.sap.corp/svn/monet
|
||||
|
||||
|
||||
|
||||
2009-08-26T06:41:31.887030Z
|
||||
7755
|
||||
d046040
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
8e1b717f-a215-9248-8963-3bf2ea82000e
|
||||
|
||||
sap
|
||||
dir
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 88
|
||||
/svn/monet/!svn/ver/7755/trunk/ngpm/com.sap.runlet.operationaltransformation/src/com/sap
|
||||
END
|
||||
@@ -0,0 +1,31 @@
|
||||
10
|
||||
|
||||
dir
|
||||
9910
|
||||
https://forge.sap.corp/svn/monet/trunk/ngpm/com.sap.runlet.operationaltransformation/src/com/sap
|
||||
https://forge.sap.corp/svn/monet
|
||||
|
||||
|
||||
|
||||
2009-08-26T06:41:31.887030Z
|
||||
7755
|
||||
d046040
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
8e1b717f-a215-9248-8963-3bf2ea82000e
|
||||
|
||||
runlet
|
||||
dir
|
||||
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 95
|
||||
/svn/monet/!svn/ver/7755/trunk/ngpm/com.sap.runlet.operationaltransformation/src/com/sap/runlet
|
||||
END
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
10
|
||||
|
||||
dir
|
||||
9910
|
||||
https://forge.sap.corp/svn/monet/trunk/ngpm/com.sap.runlet.operationaltransformation/src/com/sap/runlet
|
||||
https://forge.sap.corp/svn/monet
|
||||
|
||||
|
||||
|
||||
2009-08-26T06:41:31.887030Z
|
||||
7755
|
||||
d046040
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
8e1b717f-a215-9248-8963-3bf2ea82000e
|
||||
|
||||
operationaltransformation
|
||||
dir
|
||||
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 121
|
||||
/svn/monet/!svn/ver/7755/trunk/ngpm/com.sap.runlet.operationaltransformation/src/com/sap/runlet/operationaltransformation
|
||||
END
|
||||
UnmergedOperationsQueue.java
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 150
|
||||
/svn/monet/!svn/ver/7651/trunk/ngpm/com.sap.runlet.operationaltransformation/src/com/sap/runlet/operationaltransformation/UnmergedOperationsQueue.java
|
||||
END
|
||||
package.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 134
|
||||
/svn/monet/!svn/ver/7651/trunk/ngpm/com.sap.runlet.operationaltransformation/src/com/sap/runlet/operationaltransformation/package.html
|
||||
END
|
||||
Transformer.java
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 138
|
||||
/svn/monet/!svn/ver/7651/trunk/ngpm/com.sap.runlet.operationaltransformation/src/com/sap/runlet/operationaltransformation/Transformer.java
|
||||
END
|
||||
Operation.java
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 136
|
||||
/svn/monet/!svn/ver/7651/trunk/ngpm/com.sap.runlet.operationaltransformation/src/com/sap/runlet/operationaltransformation/Operation.java
|
||||
END
|
||||
AbstractOperation.java
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 144
|
||||
/svn/monet/!svn/ver/7651/trunk/ngpm/com.sap.runlet.operationaltransformation/src/com/sap/runlet/operationaltransformation/AbstractOperation.java
|
||||
END
|
||||
ClientServerOperationPair.java
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 152
|
||||
/svn/monet/!svn/ver/7651/trunk/ngpm/com.sap.runlet.operationaltransformation/src/com/sap/runlet/operationaltransformation/ClientServerOperationPair.java
|
||||
END
|
||||
Peer.java
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 131
|
||||
/svn/monet/!svn/ver/7755/trunk/ngpm/com.sap.runlet.operationaltransformation/src/com/sap/runlet/operationaltransformation/Peer.java
|
||||
END
|
||||
PeerImpl.java
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 135
|
||||
/svn/monet/!svn/ver/7755/trunk/ngpm/com.sap.runlet.operationaltransformation/src/com/sap/runlet/operationaltransformation/PeerImpl.java
|
||||
END
|
||||
StatesAndOperations.java
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 146
|
||||
/svn/monet/!svn/ver/7651/trunk/ngpm/com.sap.runlet.operationaltransformation/src/com/sap/runlet/operationaltransformation/StatesAndOperations.java
|
||||
END
|
||||
+337
@@ -0,0 +1,337 @@
|
||||
10
|
||||
|
||||
dir
|
||||
9910
|
||||
https://forge.sap.corp/svn/monet/trunk/ngpm/com.sap.runlet.operationaltransformation/src/com/sap/runlet/operationaltransformation
|
||||
https://forge.sap.corp/svn/monet
|
||||
|
||||
|
||||
|
||||
2009-08-26T06:41:31.887030Z
|
||||
7755
|
||||
d046040
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
8e1b717f-a215-9248-8963-3bf2ea82000e
|
||||
|
||||
AbstractOperation.java
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-07-30T11:51:34.968750Z
|
||||
d732c59e20359bd198a33923b2f2d809
|
||||
2009-07-30T13:54:09.892881Z
|
||||
7651
|
||||
d043530
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
361
|
||||
|
||||
ClientServerOperationPair.java
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-07-30T11:51:43.062500Z
|
||||
bbb0a1b071ec1902c32a01c097de8e37
|
||||
2009-07-30T13:54:09.892881Z
|
||||
7651
|
||||
d043530
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
450
|
||||
|
||||
Operation.java
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-07-30T12:03:50.375000Z
|
||||
554af7f7c8f9950b2c3b028713c5dca5
|
||||
2009-07-30T13:54:09.892881Z
|
||||
7651
|
||||
d043530
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
742
|
||||
|
||||
Peer.java
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-09-09T09:21:12.312500Z
|
||||
a213381a03c1b1ca53d5266b07e6db9e
|
||||
2009-08-26T06:41:31.887030Z
|
||||
7755
|
||||
d046040
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4176
|
||||
|
||||
PeerImpl.java
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-09-09T09:21:12.359375Z
|
||||
1ae5677b824ab53f5e384ae1e294af16
|
||||
2009-08-26T06:41:31.887030Z
|
||||
7755
|
||||
d046040
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
9644
|
||||
|
||||
StatesAndOperations.java
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-07-30T12:03:50.515625Z
|
||||
564632bf246ea174f06feb9b8275e9ea
|
||||
2009-07-30T13:54:09.892881Z
|
||||
7651
|
||||
d043530
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1264
|
||||
|
||||
Transformer.java
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-07-30T11:54:15.703125Z
|
||||
d5a71d7815754f28c22802dd06c746d3
|
||||
2009-07-30T13:54:09.892881Z
|
||||
7651
|
||||
d043530
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
539
|
||||
|
||||
UnmergedOperationsQueue.java
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-07-30T11:53:59.046875Z
|
||||
515f02687bcb23fb5542688142243a25
|
||||
2009-07-30T13:54:09.892881Z
|
||||
7651
|
||||
d043530
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
3248
|
||||
|
||||
package.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2009-07-30T12:14:25.406250Z
|
||||
41ed1dde8ca42604ac0c99dd9cbb47b9
|
||||
2009-07-30T13:54:09.892881Z
|
||||
7651
|
||||
d043530
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
3188
|
||||
|
||||
test
|
||||
dir
|
||||
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 10
|
||||
text/plain
|
||||
END
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 10
|
||||
text/plain
|
||||
END
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 10
|
||||
text/plain
|
||||
END
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 10
|
||||
text/plain
|
||||
END
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 10
|
||||
text/plain
|
||||
END
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 10
|
||||
text/plain
|
||||
END
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 10
|
||||
text/plain
|
||||
END
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 10
|
||||
text/plain
|
||||
END
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 10
|
||||
text/plain
|
||||
END
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package com.sap.runlet.operationaltransformation;
|
||||
|
||||
public abstract class AbstractOperation<S> implements Operation<S> {
|
||||
@SuppressWarnings("unchecked")
|
||||
public AbstractOperation<S> clone() {
|
||||
try {
|
||||
return (AbstractOperation<S>) super.clone();
|
||||
} catch (CloneNotSupportedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
package com.sap.runlet.operationaltransformation;
|
||||
|
||||
public class ClientServerOperationPair<O extends Operation<?>> {
|
||||
private O clientOp;
|
||||
private O serverOp;
|
||||
|
||||
public ClientServerOperationPair(O clientOp, O serverOp) {
|
||||
super();
|
||||
this.clientOp = clientOp;
|
||||
this.serverOp = serverOp;
|
||||
}
|
||||
|
||||
public O getClientOp() {
|
||||
return clientOp;
|
||||
}
|
||||
|
||||
public O getServerOp() {
|
||||
return serverOp;
|
||||
}
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package com.sap.runlet.operationaltransformation;
|
||||
|
||||
/**
|
||||
* A change operation can be applied to some start state of some
|
||||
* universe and transforms that universe into a target state.
|
||||
*
|
||||
* @author Axel Uhl D043530
|
||||
*
|
||||
* @param <S> the class that models the state, on instances of which operations perform changes
|
||||
*/
|
||||
public interface Operation<S> extends Cloneable {
|
||||
public Operation<S> clone();
|
||||
|
||||
/**
|
||||
* Applies this operation to the state <tt>toState</tt>, producing a new target state
|
||||
* which is returned.
|
||||
*
|
||||
* @param toState the state to which to apply this operation
|
||||
* @return the state produced by applying this operation to <tt>toState</tt>
|
||||
*/
|
||||
S applyTo(S toState);
|
||||
}
|
||||
+99
@@ -0,0 +1,99 @@
|
||||
package com.sap.runlet.operationaltransformation;
|
||||
|
||||
/**
|
||||
* Accepts change operations from clients and maintains a shared state. If new
|
||||
* clients connect, the full state can be sent to the client for initial
|
||||
* synchronization. When a change {@link Operation} is received from a client
|
||||
* that operation will be based on some state. Since that state the
|
||||
* server may have applied one or more change operations already. In order to
|
||||
* synchronize the requesting client, the server transforms all in-between
|
||||
* change operations for the requesting client and sends those transformation
|
||||
* results back to the requesting client. The client's operation, in turn, is
|
||||
* disseminated to all other clients for them to merge into their local replica
|
||||
* of the global state.
|
||||
*
|
||||
* @author Axel Uhl D043530
|
||||
*
|
||||
* @param <O> the type of operations that can be applied to the states
|
||||
* @param <S> the type of the states on which the operations perform changes
|
||||
*/
|
||||
public interface Peer<O extends Operation<S>, S> {
|
||||
|
||||
/**
|
||||
* Enumeration representing the two valid roles a peer can have. There must
|
||||
* be exactly one server, multiple clients are allowed.
|
||||
*
|
||||
* @author Jan Karstens D046040
|
||||
*
|
||||
*/
|
||||
public enum Role {
|
||||
SERVER, CLIENT
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a peer with this peer for replication. From this point on, this
|
||||
* peer will remember which operations it has forwarded to that peer for
|
||||
* later transformation jobs for operations coming in from that client.<p>
|
||||
*
|
||||
* The <tt>peer</tt> is expected to set the state returned by this operation
|
||||
* as its initial state.
|
||||
*
|
||||
* @return the current server state; the calling client can use this as its
|
||||
* initial state
|
||||
*/
|
||||
S addPeer(Peer<O, S> peer);
|
||||
|
||||
/**
|
||||
* Usually, the framework handles calls to this method and framework users
|
||||
* should therefore not need to call this method.
|
||||
* <p>
|
||||
*
|
||||
* Synchronizes an <tt>operation</tt> from the <tt>source</tt> peer to this
|
||||
* peer. The <tt>source</tt> peer specifies how many operations from this
|
||||
* peer it already merged into its operations sequence before having
|
||||
* executed <tt>operation</tt>.
|
||||
* <p>
|
||||
*
|
||||
* The operation has to be transformed using this peer's operational
|
||||
* transformation and using the sequence of operations applied to the
|
||||
* operation's start state up to this peer's current state. This results in
|
||||
* the operation that needs to be applied to the current state to produce
|
||||
* the next state.
|
||||
* <p>
|
||||
*
|
||||
* After applying this possibly transformed operation to this peer's current
|
||||
* state and thus producing a new current state, all registered peers except
|
||||
* <tt>source</tt> are notified about the change by sending them the
|
||||
* transformed operation.
|
||||
*
|
||||
*/
|
||||
void apply(Peer<O, S> source, O operation, int numberOfOperationsSourceHasMergedFromThis);
|
||||
|
||||
/**
|
||||
* Applies a change operation locally to the current peer's state.
|
||||
*/
|
||||
void apply(O operation);
|
||||
|
||||
/**
|
||||
* Tells this peer that the <tt>source</tt> peer has successfully merged
|
||||
* <tt>numberOfMergedOperations</tt> altogether coming from this peer
|
||||
* into its operation sequence. This peer can take this as an opportunity
|
||||
* to clean up the queue and remove the transformed copies of all operations
|
||||
* up to number <tt>numberOfMergedOperations-1</tt>.
|
||||
*/
|
||||
void confirm(Peer<O, S> source, int numberOfMergedOperations);
|
||||
|
||||
/**
|
||||
* Tells the current state in which the peer is. This is the state constructed by
|
||||
* the sequence of calls to {@link #apply(Operation)} and the merged in notifications
|
||||
* from other peers.
|
||||
*/
|
||||
S getCurrentState();
|
||||
|
||||
/**
|
||||
* Blocks until the queue of tasks that works on achieving consistency across peers
|
||||
* has completely drained. This can be useful for testing purposes when you want to
|
||||
* wait until consistency has been reached across clients and server.
|
||||
*/
|
||||
void waitForNotRunning();
|
||||
}
|
||||
+255
@@ -0,0 +1,255 @@
|
||||
package com.sap.runlet.operationaltransformation;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
/**
|
||||
* A very simple peer implementation for operational transformations that starts
|
||||
* out with a provided initial state and then receives operations which it applies
|
||||
* to its state. It manages a set of clients. Using the <tt>server</tt> constructor
|
||||
* parameter one can configure whether this peer is a client or a server.
|
||||
*
|
||||
* @author Axel Uhl D043530
|
||||
*
|
||||
* @param <O> type of change operations to be processed by this server
|
||||
* @param <S> type of state managed by this server to which the operations can be applied
|
||||
*/
|
||||
public class PeerImpl<O extends Operation<S>, S> implements Peer<O, S> {
|
||||
|
||||
private String name;
|
||||
|
||||
private StatesAndOperations<O, S> statesAndOperations;
|
||||
|
||||
/**
|
||||
* Tells if this peer acts in the server or client role. This is used to determine in which
|
||||
* direction to apply the operational transformation.
|
||||
*/
|
||||
private Role role;
|
||||
|
||||
/**
|
||||
* Tells if this peer is currently actively running, with a certain number of pending / running requests
|
||||
*/
|
||||
private int running = 0;
|
||||
|
||||
/**
|
||||
* Queues operations sent out to a peer in {@link #updatePeers(Operation, Peer)} and whose
|
||||
* merging has not yet been confirmed by that peer. Those messages are transformed when an
|
||||
* operation from that peer is applied. When applying an operation to the peer has been
|
||||
* confirmed, the first operation from the queue is removed because operations sent
|
||||
* from this peer to the remote peer are processed in order.
|
||||
*/
|
||||
private Map<Peer<O, S>, UnmergedOperationsQueue<O, S>> unmergedOperationsForPeer = new HashMap<Peer<O, S>, UnmergedOperationsQueue<O, S>>();
|
||||
|
||||
/**
|
||||
* Remembers per peer how many of that peer's operations this peer has already
|
||||
* applied locally.
|
||||
*/
|
||||
private Map<Peer<O, S>, Integer> numberOfMergedOperations = new HashMap<Peer<O, S>, Integer>();
|
||||
|
||||
private Transformer<O> transformer;
|
||||
|
||||
/**
|
||||
* The background task handler which sends out the asynchronous updates to the peers.
|
||||
*/
|
||||
private ExecutorService merger;
|
||||
|
||||
public PeerImpl(Transformer<O> transformer, S initialState, Role role) {
|
||||
this.transformer = transformer;
|
||||
statesAndOperations = new StatesAndOperations<O, S>(initialState);
|
||||
this.role = role;
|
||||
this.merger = Executors.newSingleThreadExecutor();
|
||||
}
|
||||
|
||||
public PeerImpl(String name, Transformer<O> transformer, S initialState, Role role) {
|
||||
this(transformer, initialState, role);
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a client peer and connects it to the <tt>server</tt> peer, establishing
|
||||
* the two-way link between client and server peers. The initial state is taken from
|
||||
* the server.
|
||||
*/
|
||||
public PeerImpl(Transformer<O> transformer, Peer<O, S> server) {
|
||||
this.transformer = transformer;
|
||||
S initialState = server.addPeer(this);
|
||||
statesAndOperations = new StatesAndOperations<O, S>(initialState);
|
||||
this.role = Role.CLIENT;
|
||||
this.merger = Executors.newSingleThreadExecutor();
|
||||
addPeer(server);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a client peer with a name and connects it to the
|
||||
* <tt>server</tt> peer, establishing the two-way link between client and
|
||||
* server peers. The initial state is taken from the server.
|
||||
*/
|
||||
public PeerImpl(String name, Transformer<O> transformer, Peer<O, S> server) {
|
||||
this(transformer, server);
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void finalize() {
|
||||
merger.shutdown();
|
||||
}
|
||||
|
||||
private Transformer<O> getTransformer() {
|
||||
return transformer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public S addPeer(Peer<O, S> peer) {
|
||||
if ( role == Role.CLIENT && getPeers().size() > 0) {
|
||||
throw new RuntimeException("A client must be connected to at most one server");
|
||||
}
|
||||
unmergedOperationsForPeer.put(peer, new UnmergedOperationsQueue<O, S>());
|
||||
numberOfMergedOperations.put(peer, 0);
|
||||
return getCurrentState();
|
||||
}
|
||||
|
||||
private Collection<Peer<O, S>> getPeers() {
|
||||
return unmergedOperationsForPeer.keySet();
|
||||
}
|
||||
|
||||
public S getCurrentState() {
|
||||
return statesAndOperations.getCurrentState();
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void apply(O operation) {
|
||||
taskStarted();
|
||||
statesAndOperations.apply(operation);
|
||||
updatePeers(operation, /* except */ null);
|
||||
taskFinished();
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void apply(final Peer<O, S> source, O operation,
|
||||
final int numberOfOperationsSourceHasMergedFromThis) {
|
||||
taskStarted();
|
||||
if (!getPeers().contains(source)) {
|
||||
throw new RuntimeException("Peer "+source+" not registered with peer "+this);
|
||||
}
|
||||
// Starting from base up to current, compute transformed operation sequence to send
|
||||
// to client; this will create a sequence of states for the client which eventually
|
||||
// leads up to a state that equals the server's current state.
|
||||
O transformedOp = operation;
|
||||
UnmergedOperationsQueue<O, S> unmergedOperationsForSource = unmergedOperationsForPeer.get(source);
|
||||
int localOpNumber = numberOfOperationsSourceHasMergedFromThis;
|
||||
for (O unconfirmedOperation : unmergedOperationsForSource.getUnmergedOperations(numberOfOperationsSourceHasMergedFromThis)) {
|
||||
if (role == Role.SERVER) {
|
||||
ClientServerOperationPair<O> pair = getTransformer().transform(transformedOp, unconfirmedOperation);
|
||||
transformedOp = pair.getClientOp();
|
||||
unmergedOperationsForSource.updateWithTransformed(localOpNumber, pair.getServerOp());
|
||||
} else {
|
||||
ClientServerOperationPair<O> pair = getTransformer().transform(unconfirmedOperation, transformedOp);
|
||||
transformedOp = pair.getServerOp();
|
||||
unmergedOperationsForSource.updateWithTransformed(localOpNumber, pair.getClientOp());
|
||||
}
|
||||
localOpNumber++;
|
||||
}
|
||||
statesAndOperations.apply(transformedOp); // produce a new current state
|
||||
final int numberOfMergedOperationsFromSource = numberOfMergedOperations.get(source)+1;
|
||||
numberOfMergedOperations.put(source, numberOfMergedOperationsFromSource);
|
||||
// It's important that the following call to confirm is synchronized with the
|
||||
// sending of updates to the source peer. Therefore, the confirm call is executed
|
||||
// in the same serializing background thread:
|
||||
scheduleTask(new Runnable() {
|
||||
public void run() {
|
||||
source.confirm(PeerImpl.this, numberOfMergedOperationsFromSource);
|
||||
}
|
||||
});
|
||||
updatePeers(transformedOp, /* except */source);
|
||||
taskFinished();
|
||||
}
|
||||
|
||||
/**
|
||||
* Propagates the changes described by <tt>operation</tt> to all registered
|
||||
* peers (except the peer identified by <tt>except</tt> if not <tt>null</tt>
|
||||
* ). For each peer, the operation is sent along to that peer's
|
||||
* {@link #apply(Peer, Operation, int)} method together with the
|
||||
* {@link #numberOfMergedOperations number of operations currently merged
|
||||
* from that peer}.
|
||||
*/
|
||||
private synchronized void updatePeers(final O operation, Peer<O, S> except) {
|
||||
for (final Peer<O, S> peer : getPeers()) {
|
||||
if (except == null || !except.equals(peer)) {
|
||||
unmergedOperationsForPeer.get(peer).sentOutOperation(operation);
|
||||
// remember the number of merged operations while still in synchronized block
|
||||
final int numberOfMergedOpsForPeer = numberOfMergedOperations.get(peer);
|
||||
scheduleTask(new Runnable() {
|
||||
public void run() {
|
||||
/*
|
||||
* Thoughts on locking: The peer runs the folling apply(...) call synchronized.
|
||||
* Therefore, it can't take other apply calls (local or from other peers) during
|
||||
* that time. It may, though, have pending tasks in its updatePeers that can
|
||||
* continue to run. This may include updates for this peer which would be received
|
||||
* by this peer's apply(...) method.
|
||||
*/
|
||||
peer.apply(PeerImpl.this, operation, numberOfMergedOpsForPeer);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
if (name != null) {
|
||||
return name;
|
||||
} else {
|
||||
return (role == Role.SERVER?"server":"client")+" "+super.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void confirm(Peer<O, S> source, int numberOfMergedOperations) {
|
||||
unmergedOperationsForPeer.get(source).confirm(numberOfMergedOperations);
|
||||
}
|
||||
|
||||
/**
|
||||
* Records that a new task is scheduled by incrementing {@link #running} by one, then
|
||||
* schedules the <tt>runnable</tt> with the {@link #merger} executor service. The
|
||||
* <tt>runnable</tt> is wrapped such that when its execution has finished,
|
||||
* {@link #taskFinished()} will be called such that {@link #running} is decremented
|
||||
* properly again and waiting clients in {@link #waitForNotRunning()} can be unblocked.
|
||||
*/
|
||||
private void scheduleTask(final Runnable runnable) {
|
||||
taskStarted();
|
||||
merger.execute(new Runnable() {
|
||||
public void run() {
|
||||
runnable.run();
|
||||
taskFinished();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void taskStarted() {
|
||||
running++;
|
||||
}
|
||||
|
||||
/**
|
||||
* Must be called by all tasks submitted to the {@link #merger} when finished.
|
||||
* Unblocks {@link #waitForNotRunning()} if the merger's queue got empty by this.
|
||||
*/
|
||||
private synchronized void taskFinished() {
|
||||
running--;
|
||||
if (running == 0) {
|
||||
notifyAll();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void waitForNotRunning() {
|
||||
while (running > 0) {
|
||||
try {
|
||||
wait();
|
||||
} catch (InterruptedException e) {
|
||||
// ignore interruption, try again
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
package com.sap.runlet.operationaltransformation;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Maintains a list of states and the operations that transformed the i-th into
|
||||
* the i+1st, starting with an initial state. Using {@link #apply(Operation)},
|
||||
* operation/state pairs can be appended to the end.
|
||||
* <p>
|
||||
*
|
||||
* @author Axel Uhl D043530
|
||||
*
|
||||
*/
|
||||
public class StatesAndOperations<O extends Operation<S>, S> {
|
||||
private List<S> states = new LinkedList<S>();
|
||||
private List<O> operations = new LinkedList<O>();
|
||||
|
||||
public StatesAndOperations(S initialState) {
|
||||
states.add(initialState);
|
||||
}
|
||||
|
||||
/**
|
||||
* Applies the <tt>operation</tt> to the {@link #getCurrentState() current
|
||||
* state} and records both, the new current state and the operation.
|
||||
*
|
||||
* @return the new current state that results from applying
|
||||
* <tt>operation</tt> to the state that was current when the
|
||||
* operation was invoked.
|
||||
*/
|
||||
public synchronized S apply(O operation) {
|
||||
S result = operation.applyTo(getCurrentState());
|
||||
states.add(result);
|
||||
operations.add(operation);
|
||||
return result;
|
||||
}
|
||||
|
||||
public S getCurrentState() {
|
||||
return states.get(states.size() - 1);
|
||||
}
|
||||
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
package com.sap.runlet.operationaltransformation;
|
||||
|
||||
public interface Transformer<O extends Operation<?>> {
|
||||
/**
|
||||
* Takes an operation from the client and an operation from the server, both
|
||||
* based on the same state. The complementary pair of operations is computed
|
||||
* such that if the client applies the server operation returned, and the
|
||||
* server applies the client operation returned, both end up in equal states
|
||||
* again.
|
||||
*/
|
||||
ClientServerOperationPair<O> transform(O clientOp, O serverOp);
|
||||
}
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
package com.sap.runlet.operationaltransformation;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class UnmergedOperationsQueue<O extends Operation<S>, S> {
|
||||
/**
|
||||
* As the {@link #unmergedOperationsForPeer} queues are cleaned up whenever merge
|
||||
* confirmations are received from peers, we need to remember which local operation
|
||||
* number the first element in the queue resulted from.
|
||||
*/
|
||||
private int numberOfFirstInList;
|
||||
|
||||
private List<O> unmergedOperations;
|
||||
|
||||
public UnmergedOperationsQueue() {
|
||||
numberOfFirstInList = 0;
|
||||
unmergedOperations = new ArrayList<O>(5);
|
||||
}
|
||||
|
||||
/**
|
||||
* After an operation has been locally applied and needs to be propagated
|
||||
* to the peer for which this is the queue of unmerged operations, the operation
|
||||
* must be appended to this queue.
|
||||
*/
|
||||
public synchronized void sentOutOperation(O operationSentOut) {
|
||||
unmergedOperations.add(operationSentOut);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a copied list of unmerged and stepwise transformed local
|
||||
* operations starting at the requested local operation number.
|
||||
*
|
||||
* @param numberOfConfirmedLocalOperations
|
||||
* A value of 0 means that the remote peer has not confirmed the
|
||||
* merge of any local operation yet.
|
||||
*/
|
||||
public synchronized List<O> getUnmergedOperations(int numberOfConfirmedLocalOperations) {
|
||||
return new ArrayList<O>(unmergedOperations.subList(
|
||||
numberOfConfirmedLocalOperations-numberOfFirstInList,
|
||||
unmergedOperations.size()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Replaces the local operation with number <tt>localOperationNumber</tt> in the queue by
|
||||
* <tt>transformedOperation</tt>.
|
||||
*
|
||||
* @param localOperationNumber starts with 0
|
||||
*/
|
||||
public synchronized void updateWithTransformed(int localOperationNumber, O transformedOperation) {
|
||||
unmergedOperations.set(localOperationNumber-numberOfFirstInList, transformedOperation);
|
||||
}
|
||||
|
||||
/**
|
||||
* Cleans up the queue so that only unconfirmed / unmerged operations
|
||||
* remain. Afterwards, {@link #getUnmergedOperations(int) asking for an
|
||||
* unmerged operation} with an argument for
|
||||
* <tt>numberOfConfirmedLocalOperations</tt> smaller than
|
||||
* <tt>numberOfMergedOperations</tt> passed to this call will result in an
|
||||
* exception.
|
||||
*
|
||||
* @param numberOfMergedOperations
|
||||
* tells how many operations that emerged from the local peer the
|
||||
* remote peer has confirmed to have merged.
|
||||
*/
|
||||
public synchronized void confirm(int numberOfMergedOperations) {
|
||||
for (int i=numberOfFirstInList; i<numberOfMergedOperations; i++) {
|
||||
unmergedOperations.remove(0);
|
||||
}
|
||||
numberOfFirstInList = numberOfMergedOperations;
|
||||
}
|
||||
|
||||
public synchronized String toString() {
|
||||
int i=numberOfFirstInList;
|
||||
StringBuilder result = new StringBuilder();
|
||||
result.append('[');
|
||||
boolean first = true;
|
||||
for (O op : unmergedOperations) {
|
||||
if (!first) {
|
||||
result.append(", ");
|
||||
} else {
|
||||
first = false;
|
||||
}
|
||||
result.append(i);
|
||||
result.append(": ");
|
||||
result.append(op);
|
||||
}
|
||||
result.append(']');
|
||||
return result.toString();
|
||||
}
|
||||
}
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
<body>
|
||||
<p>
|
||||
Use the contents of this package for so-called <em>operational transformations</em>.
|
||||
This can be used to synchronize the states of a number of clients with a single server.
|
||||
The synchronization is performed asynchronously. The construction of the transformation
|
||||
function guarantees to lead to eventual consistency across clients and server.
|
||||
Read more about the general background of the algorithm on which this is based
|
||||
<a href="../docs/JupiterCollaborationSystem_Nichols.pdf">here</a>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To establish a server to which clients can connect, first decide how your <em>state</em>
|
||||
is encoded on which the <em>operations</em> will perform changes to transition from one
|
||||
state to the next. Then, design your operations class. The trickiest part comes next. You
|
||||
have to define a transformer that maps a pair of your operations to another pair of
|
||||
operations of the same type. The transformer has to implement the
|
||||
{@link com.sap.runlet.operationaltransformation.Transformer} interface, in particular
|
||||
the {@link com.sap.runlet.operationaltransformation.Transformer#transform} method. The
|
||||
transformation function assumes that both input operations have been applied to the same
|
||||
state, one on a client, the other one on the server. The resulting operation for the client
|
||||
applied on the client must lead to a state equal to the state reached on the server by
|
||||
applying the resulting operation for the server to the server's state.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Put formally, if <em>t</em> is a transformer, and
|
||||
if we have <em>s_c</em> as the state on the client and <em>s_s</em> as the state
|
||||
on the server, and <em>c</em> as the operation that was executed in state <em>s_c</em> on the
|
||||
client, and <em>s</em> as the operation executed on the server in state <em>s_s</em>, then the
|
||||
following condition must hold:<br>
|
||||
<pre>
|
||||
t.transform(c, s).getClientOp().applyTo(c.applyTo(s_c).equals(
|
||||
t.transform(c, s).getServerOp().applyTo(s.applyTo(s_s))
|
||||
</pre>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
You can create servers and clients, e.g., as follows:
|
||||
<pre>
|
||||
server = new {@link com.sap.runlet.operationaltransformation.PeerImpl PeerImpl}<MyOperationType, MyStateType>(
|
||||
"Server", new MyTransformer(), /* initial state */ new MyStateType(...), /* server */ true);
|
||||
client1 = new {@link com.sap.runlet.operationaltransformation.PeerImpl PeerImpl}<MyOperationType, MyStateType>("Client1", new MyTransformer(), server);
|
||||
client2 = new {@link com.sap.runlet.operationaltransformation.PeerImpl PeerImpl}<MyOperationType, MyStateType>("Client2", new MyTransformer(), server);
|
||||
</pre>
|
||||
|
||||
After that, you can start sending operations to the clients using the
|
||||
{@link com.sap.runlet.operationaltransformation.Peer#apply} method as follows:
|
||||
<pre>
|
||||
client1.{@link com.sap.runlet.operationaltransformation.Peer#apply apply}(new MyOperationType(...));
|
||||
client2.{@link com.sap.runlet.operationaltransformation.Peer#apply apply}(new MyOperationType(...));
|
||||
...
|
||||
</pre>
|
||||
and those changes will eventually get synchronized across all clients and the server. You can
|
||||
obtain the current state of a peer using the {@link com.sap.runlet.operationaltransformation.Peer#getCurrentState}
|
||||
operation.
|
||||
</p>
|
||||
|
||||
</body>
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package com.sap.runlet.operationaltransformation;
|
||||
|
||||
public abstract class AbstractOperation<S> implements Operation<S> {
|
||||
@SuppressWarnings("unchecked")
|
||||
public AbstractOperation<S> clone() {
|
||||
try {
|
||||
return (AbstractOperation<S>) super.clone();
|
||||
} catch (CloneNotSupportedException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
package com.sap.runlet.operationaltransformation;
|
||||
|
||||
public class ClientServerOperationPair<O extends Operation<?>> {
|
||||
private O clientOp;
|
||||
private O serverOp;
|
||||
|
||||
public ClientServerOperationPair(O clientOp, O serverOp) {
|
||||
super();
|
||||
this.clientOp = clientOp;
|
||||
this.serverOp = serverOp;
|
||||
}
|
||||
|
||||
public O getClientOp() {
|
||||
return clientOp;
|
||||
}
|
||||
|
||||
public O getServerOp() {
|
||||
return serverOp;
|
||||
}
|
||||
}
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
package com.sap.runlet.operationaltransformation;
|
||||
|
||||
/**
|
||||
* A change operation can be applied to some start state of some
|
||||
* universe and transforms that universe into a target state.
|
||||
*
|
||||
* @author Axel Uhl D043530
|
||||
*
|
||||
* @param <S> the class that models the state, on instances of which operations perform changes
|
||||
*/
|
||||
public interface Operation<S> extends Cloneable {
|
||||
public Operation<S> clone();
|
||||
|
||||
/**
|
||||
* Applies this operation to the state <tt>toState</tt>, producing a new target state
|
||||
* which is returned.
|
||||
*
|
||||
* @param toState the state to which to apply this operation
|
||||
* @return the state produced by applying this operation to <tt>toState</tt>
|
||||
*/
|
||||
S applyTo(S toState);
|
||||
}
|
||||
+99
@@ -0,0 +1,99 @@
|
||||
package com.sap.runlet.operationaltransformation;
|
||||
|
||||
/**
|
||||
* Accepts change operations from clients and maintains a shared state. If new
|
||||
* clients connect, the full state can be sent to the client for initial
|
||||
* synchronization. When a change {@link Operation} is received from a client
|
||||
* that operation will be based on some state. Since that state the
|
||||
* server may have applied one or more change operations already. In order to
|
||||
* synchronize the requesting client, the server transforms all in-between
|
||||
* change operations for the requesting client and sends those transformation
|
||||
* results back to the requesting client. The client's operation, in turn, is
|
||||
* disseminated to all other clients for them to merge into their local replica
|
||||
* of the global state.
|
||||
*
|
||||
* @author Axel Uhl D043530
|
||||
*
|
||||
* @param <O> the type of operations that can be applied to the states
|
||||
* @param <S> the type of the states on which the operations perform changes
|
||||
*/
|
||||
public interface Peer<O extends Operation<S>, S> {
|
||||
|
||||
/**
|
||||
* Enumeration representing the two valid roles a peer can have. There must
|
||||
* be exactly one server, multiple clients are allowed.
|
||||
*
|
||||
* @author Jan Karstens D046040
|
||||
*
|
||||
*/
|
||||
public enum Role {
|
||||
SERVER, CLIENT
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a peer with this peer for replication. From this point on, this
|
||||
* peer will remember which operations it has forwarded to that peer for
|
||||
* later transformation jobs for operations coming in from that client.<p>
|
||||
*
|
||||
* The <tt>peer</tt> is expected to set the state returned by this operation
|
||||
* as its initial state.
|
||||
*
|
||||
* @return the current server state; the calling client can use this as its
|
||||
* initial state
|
||||
*/
|
||||
S addPeer(Peer<O, S> peer);
|
||||
|
||||
/**
|
||||
* Usually, the framework handles calls to this method and framework users
|
||||
* should therefore not need to call this method.
|
||||
* <p>
|
||||
*
|
||||
* Synchronizes an <tt>operation</tt> from the <tt>source</tt> peer to this
|
||||
* peer. The <tt>source</tt> peer specifies how many operations from this
|
||||
* peer it already merged into its operations sequence before having
|
||||
* executed <tt>operation</tt>.
|
||||
* <p>
|
||||
*
|
||||
* The operation has to be transformed using this peer's operational
|
||||
* transformation and using the sequence of operations applied to the
|
||||
* operation's start state up to this peer's current state. This results in
|
||||
* the operation that needs to be applied to the current state to produce
|
||||
* the next state.
|
||||
* <p>
|
||||
*
|
||||
* After applying this possibly transformed operation to this peer's current
|
||||
* state and thus producing a new current state, all registered peers except
|
||||
* <tt>source</tt> are notified about the change by sending them the
|
||||
* transformed operation.
|
||||
*
|
||||
*/
|
||||
void apply(Peer<O, S> source, O operation, int numberOfOperationsSourceHasMergedFromThis);
|
||||
|
||||
/**
|
||||
* Applies a change operation locally to the current peer's state.
|
||||
*/
|
||||
void apply(O operation);
|
||||
|
||||
/**
|
||||
* Tells this peer that the <tt>source</tt> peer has successfully merged
|
||||
* <tt>numberOfMergedOperations</tt> altogether coming from this peer
|
||||
* into its operation sequence. This peer can take this as an opportunity
|
||||
* to clean up the queue and remove the transformed copies of all operations
|
||||
* up to number <tt>numberOfMergedOperations-1</tt>.
|
||||
*/
|
||||
void confirm(Peer<O, S> source, int numberOfMergedOperations);
|
||||
|
||||
/**
|
||||
* Tells the current state in which the peer is. This is the state constructed by
|
||||
* the sequence of calls to {@link #apply(Operation)} and the merged in notifications
|
||||
* from other peers.
|
||||
*/
|
||||
S getCurrentState();
|
||||
|
||||
/**
|
||||
* Blocks until the queue of tasks that works on achieving consistency across peers
|
||||
* has completely drained. This can be useful for testing purposes when you want to
|
||||
* wait until consistency has been reached across clients and server.
|
||||
*/
|
||||
void waitForNotRunning();
|
||||
}
|
||||
+255
@@ -0,0 +1,255 @@
|
||||
package com.sap.runlet.operationaltransformation;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
|
||||
/**
|
||||
* A very simple peer implementation for operational transformations that starts
|
||||
* out with a provided initial state and then receives operations which it applies
|
||||
* to its state. It manages a set of clients. Using the <tt>server</tt> constructor
|
||||
* parameter one can configure whether this peer is a client or a server.
|
||||
*
|
||||
* @author Axel Uhl D043530
|
||||
*
|
||||
* @param <O> type of change operations to be processed by this server
|
||||
* @param <S> type of state managed by this server to which the operations can be applied
|
||||
*/
|
||||
public class PeerImpl<O extends Operation<S>, S> implements Peer<O, S> {
|
||||
|
||||
private String name;
|
||||
|
||||
private StatesAndOperations<O, S> statesAndOperations;
|
||||
|
||||
/**
|
||||
* Tells if this peer acts in the server or client role. This is used to determine in which
|
||||
* direction to apply the operational transformation.
|
||||
*/
|
||||
private Role role;
|
||||
|
||||
/**
|
||||
* Tells if this peer is currently actively running, with a certain number of pending / running requests
|
||||
*/
|
||||
private int running = 0;
|
||||
|
||||
/**
|
||||
* Queues operations sent out to a peer in {@link #updatePeers(Operation, Peer)} and whose
|
||||
* merging has not yet been confirmed by that peer. Those messages are transformed when an
|
||||
* operation from that peer is applied. When applying an operation to the peer has been
|
||||
* confirmed, the first operation from the queue is removed because operations sent
|
||||
* from this peer to the remote peer are processed in order.
|
||||
*/
|
||||
private Map<Peer<O, S>, UnmergedOperationsQueue<O, S>> unmergedOperationsForPeer = new HashMap<Peer<O, S>, UnmergedOperationsQueue<O, S>>();
|
||||
|
||||
/**
|
||||
* Remembers per peer how many of that peer's operations this peer has already
|
||||
* applied locally.
|
||||
*/
|
||||
private Map<Peer<O, S>, Integer> numberOfMergedOperations = new HashMap<Peer<O, S>, Integer>();
|
||||
|
||||
private Transformer<O> transformer;
|
||||
|
||||
/**
|
||||
* The background task handler which sends out the asynchronous updates to the peers.
|
||||
*/
|
||||
private ExecutorService merger;
|
||||
|
||||
public PeerImpl(Transformer<O> transformer, S initialState, Role role) {
|
||||
this.transformer = transformer;
|
||||
statesAndOperations = new StatesAndOperations<O, S>(initialState);
|
||||
this.role = role;
|
||||
this.merger = Executors.newSingleThreadExecutor();
|
||||
}
|
||||
|
||||
public PeerImpl(String name, Transformer<O> transformer, S initialState, Role role) {
|
||||
this(transformer, initialState, role);
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a client peer and connects it to the <tt>server</tt> peer, establishing
|
||||
* the two-way link between client and server peers. The initial state is taken from
|
||||
* the server.
|
||||
*/
|
||||
public PeerImpl(Transformer<O> transformer, Peer<O, S> server) {
|
||||
this.transformer = transformer;
|
||||
S initialState = server.addPeer(this);
|
||||
statesAndOperations = new StatesAndOperations<O, S>(initialState);
|
||||
this.role = Role.CLIENT;
|
||||
this.merger = Executors.newSingleThreadExecutor();
|
||||
addPeer(server);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a client peer with a name and connects it to the
|
||||
* <tt>server</tt> peer, establishing the two-way link between client and
|
||||
* server peers. The initial state is taken from the server.
|
||||
*/
|
||||
public PeerImpl(String name, Transformer<O> transformer, Peer<O, S> server) {
|
||||
this(transformer, server);
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void finalize() {
|
||||
merger.shutdown();
|
||||
}
|
||||
|
||||
private Transformer<O> getTransformer() {
|
||||
return transformer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public S addPeer(Peer<O, S> peer) {
|
||||
if ( role == Role.CLIENT && getPeers().size() > 0) {
|
||||
throw new RuntimeException("A client must be connected to at most one server");
|
||||
}
|
||||
unmergedOperationsForPeer.put(peer, new UnmergedOperationsQueue<O, S>());
|
||||
numberOfMergedOperations.put(peer, 0);
|
||||
return getCurrentState();
|
||||
}
|
||||
|
||||
private Collection<Peer<O, S>> getPeers() {
|
||||
return unmergedOperationsForPeer.keySet();
|
||||
}
|
||||
|
||||
public S getCurrentState() {
|
||||
return statesAndOperations.getCurrentState();
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void apply(O operation) {
|
||||
taskStarted();
|
||||
statesAndOperations.apply(operation);
|
||||
updatePeers(operation, /* except */ null);
|
||||
taskFinished();
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void apply(final Peer<O, S> source, O operation,
|
||||
final int numberOfOperationsSourceHasMergedFromThis) {
|
||||
taskStarted();
|
||||
if (!getPeers().contains(source)) {
|
||||
throw new RuntimeException("Peer "+source+" not registered with peer "+this);
|
||||
}
|
||||
// Starting from base up to current, compute transformed operation sequence to send
|
||||
// to client; this will create a sequence of states for the client which eventually
|
||||
// leads up to a state that equals the server's current state.
|
||||
O transformedOp = operation;
|
||||
UnmergedOperationsQueue<O, S> unmergedOperationsForSource = unmergedOperationsForPeer.get(source);
|
||||
int localOpNumber = numberOfOperationsSourceHasMergedFromThis;
|
||||
for (O unconfirmedOperation : unmergedOperationsForSource.getUnmergedOperations(numberOfOperationsSourceHasMergedFromThis)) {
|
||||
if (role == Role.SERVER) {
|
||||
ClientServerOperationPair<O> pair = getTransformer().transform(transformedOp, unconfirmedOperation);
|
||||
transformedOp = pair.getClientOp();
|
||||
unmergedOperationsForSource.updateWithTransformed(localOpNumber, pair.getServerOp());
|
||||
} else {
|
||||
ClientServerOperationPair<O> pair = getTransformer().transform(unconfirmedOperation, transformedOp);
|
||||
transformedOp = pair.getServerOp();
|
||||
unmergedOperationsForSource.updateWithTransformed(localOpNumber, pair.getClientOp());
|
||||
}
|
||||
localOpNumber++;
|
||||
}
|
||||
statesAndOperations.apply(transformedOp); // produce a new current state
|
||||
final int numberOfMergedOperationsFromSource = numberOfMergedOperations.get(source)+1;
|
||||
numberOfMergedOperations.put(source, numberOfMergedOperationsFromSource);
|
||||
// It's important that the following call to confirm is synchronized with the
|
||||
// sending of updates to the source peer. Therefore, the confirm call is executed
|
||||
// in the same serializing background thread:
|
||||
scheduleTask(new Runnable() {
|
||||
public void run() {
|
||||
source.confirm(PeerImpl.this, numberOfMergedOperationsFromSource);
|
||||
}
|
||||
});
|
||||
updatePeers(transformedOp, /* except */source);
|
||||
taskFinished();
|
||||
}
|
||||
|
||||
/**
|
||||
* Propagates the changes described by <tt>operation</tt> to all registered
|
||||
* peers (except the peer identified by <tt>except</tt> if not <tt>null</tt>
|
||||
* ). For each peer, the operation is sent along to that peer's
|
||||
* {@link #apply(Peer, Operation, int)} method together with the
|
||||
* {@link #numberOfMergedOperations number of operations currently merged
|
||||
* from that peer}.
|
||||
*/
|
||||
private synchronized void updatePeers(final O operation, Peer<O, S> except) {
|
||||
for (final Peer<O, S> peer : getPeers()) {
|
||||
if (except == null || !except.equals(peer)) {
|
||||
unmergedOperationsForPeer.get(peer).sentOutOperation(operation);
|
||||
// remember the number of merged operations while still in synchronized block
|
||||
final int numberOfMergedOpsForPeer = numberOfMergedOperations.get(peer);
|
||||
scheduleTask(new Runnable() {
|
||||
public void run() {
|
||||
/*
|
||||
* Thoughts on locking: The peer runs the folling apply(...) call synchronized.
|
||||
* Therefore, it can't take other apply calls (local or from other peers) during
|
||||
* that time. It may, though, have pending tasks in its updatePeers that can
|
||||
* continue to run. This may include updates for this peer which would be received
|
||||
* by this peer's apply(...) method.
|
||||
*/
|
||||
peer.apply(PeerImpl.this, operation, numberOfMergedOpsForPeer);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
if (name != null) {
|
||||
return name;
|
||||
} else {
|
||||
return (role == Role.SERVER?"server":"client")+" "+super.toString();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void confirm(Peer<O, S> source, int numberOfMergedOperations) {
|
||||
unmergedOperationsForPeer.get(source).confirm(numberOfMergedOperations);
|
||||
}
|
||||
|
||||
/**
|
||||
* Records that a new task is scheduled by incrementing {@link #running} by one, then
|
||||
* schedules the <tt>runnable</tt> with the {@link #merger} executor service. The
|
||||
* <tt>runnable</tt> is wrapped such that when its execution has finished,
|
||||
* {@link #taskFinished()} will be called such that {@link #running} is decremented
|
||||
* properly again and waiting clients in {@link #waitForNotRunning()} can be unblocked.
|
||||
*/
|
||||
private void scheduleTask(final Runnable runnable) {
|
||||
taskStarted();
|
||||
merger.execute(new Runnable() {
|
||||
public void run() {
|
||||
runnable.run();
|
||||
taskFinished();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void taskStarted() {
|
||||
running++;
|
||||
}
|
||||
|
||||
/**
|
||||
* Must be called by all tasks submitted to the {@link #merger} when finished.
|
||||
* Unblocks {@link #waitForNotRunning()} if the merger's queue got empty by this.
|
||||
*/
|
||||
private synchronized void taskFinished() {
|
||||
running--;
|
||||
if (running == 0) {
|
||||
notifyAll();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void waitForNotRunning() {
|
||||
while (running > 0) {
|
||||
try {
|
||||
wait();
|
||||
} catch (InterruptedException e) {
|
||||
// ignore interruption, try again
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
package com.sap.runlet.operationaltransformation;
|
||||
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* Maintains a list of states and the operations that transformed the i-th into
|
||||
* the i+1st, starting with an initial state. Using {@link #apply(Operation)},
|
||||
* operation/state pairs can be appended to the end.
|
||||
* <p>
|
||||
*
|
||||
* @author Axel Uhl D043530
|
||||
*
|
||||
*/
|
||||
public class StatesAndOperations<O extends Operation<S>, S> {
|
||||
private List<S> states = new LinkedList<S>();
|
||||
private List<O> operations = new LinkedList<O>();
|
||||
|
||||
public StatesAndOperations(S initialState) {
|
||||
states.add(initialState);
|
||||
}
|
||||
|
||||
/**
|
||||
* Applies the <tt>operation</tt> to the {@link #getCurrentState() current
|
||||
* state} and records both, the new current state and the operation.
|
||||
*
|
||||
* @return the new current state that results from applying
|
||||
* <tt>operation</tt> to the state that was current when the
|
||||
* operation was invoked.
|
||||
*/
|
||||
public synchronized S apply(O operation) {
|
||||
S result = operation.applyTo(getCurrentState());
|
||||
states.add(result);
|
||||
operations.add(operation);
|
||||
return result;
|
||||
}
|
||||
|
||||
public S getCurrentState() {
|
||||
return states.get(states.size() - 1);
|
||||
}
|
||||
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
package com.sap.runlet.operationaltransformation;
|
||||
|
||||
public interface Transformer<O extends Operation<?>> {
|
||||
/**
|
||||
* Takes an operation from the client and an operation from the server, both
|
||||
* based on the same state. The complementary pair of operations is computed
|
||||
* such that if the client applies the server operation returned, and the
|
||||
* server applies the client operation returned, both end up in equal states
|
||||
* again.
|
||||
*/
|
||||
ClientServerOperationPair<O> transform(O clientOp, O serverOp);
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user