initial checkin according to parallel IP
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2c775e9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,43 @@
+**/bin/
+**/target/
+**/*._trace
+**/WebContent/
+**/build/
+**/error-screenshots/
+**/reference-screenshots/
+**.DS_Store
+**git.properties
+
+**/target/
+**/.metadata/
+
+**/emf-gen/**/.gitignore
+**/src-gen/**/.gitignore
+**/git.properties
+**/*.java._trace
+**/*.log
+**/*.log.properties
+
+**/bin/
+**/build/
+*.class
+*.ctrl
+**/Debug/
+.DS_Store
+*.ear
+*.war
+
+**/*.actionbin
+**/*.blipbin
+**/*.chartbin
+**/*.cubebin
+**/*.datatypebin
+**/*.dtobin
+**/*.entitybin
+**/*.servicebin
+**/*.tablebin
+**/*.uibin
+**/*.uisemanticbin
+**/*.xtendbin
+**/*.xtextbin
+
diff --git a/.project b/.project
new file mode 100644
index 0000000..c01d1f9
--- /dev/null
+++ b/.project
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.osbp.fork.jpos.aggregator</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
+ </natures>
+</projectDescription>
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/epl-v20.html b/epl-v20.html
new file mode 100644
index 0000000..637a181
--- /dev/null
+++ b/epl-v20.html
@@ -0,0 +1,300 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>Eclipse Public License - Version 2.0</title>
+ <style type="text/css">
+ body {
+ margin: 1.5em 3em;
+ }
+ h1{
+ font-size:1.5em;
+ }
+ h2{
+ font-size:1em;
+ margin-bottom:0.5em;
+ margin-top:1em;
+ }
+ p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ }
+ ul, ol{
+ list-style-type:none;
+ }
+ </style>
+ </head>
+ <body>
+ <h1>Eclipse Public License - v 2.0</h1>
+ <p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+ PUBLIC LICENSE (“AGREEMENT”). ANY USE, REPRODUCTION OR DISTRIBUTION
+ OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ </p>
+ <h2 id="definitions">1. DEFINITIONS</h2>
+ <p>“Contribution” means:</p>
+ <ul>
+ <li>a) in the case of the initial Contributor, the initial content
+ Distributed under this Agreement, and
+ </li>
+ <li>
+ b) in the case of each subsequent Contributor:
+ <ul>
+ <li>i) changes to the Program, and</li>
+ <li>ii) additions to the Program;</li>
+ </ul>
+ where such changes and/or additions to the Program originate from
+ and are Distributed by that particular Contributor. A Contribution
+ “originates” from a Contributor if it was added to the Program by such
+ Contributor itself or anyone acting on such Contributor's behalf.
+ Contributions do not include changes or additions to the Program that
+ are not Modified Works.
+ </li>
+ </ul>
+ <p>“Contributor” means any person or entity that Distributes the Program.</p>
+ <p>“Licensed Patents” mean patent claims licensable by a Contributor which
+ are necessarily infringed by the use or sale of its Contribution alone
+ or when combined with the Program.
+ </p>
+ <p>“Program” means the Contributions Distributed in accordance with this
+ Agreement.
+ </p>
+ <p>“Recipient” means anyone who receives the Program under this Agreement
+ or any Secondary License (as applicable), including Contributors.
+ </p>
+ <p>“Derivative Works” shall mean any work, whether in Source Code or other
+ form, that is based on (or derived from) the Program and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship.
+ </p>
+ <p>“Modified Works” shall mean any work in Source Code or other form that
+ results from an addition to, deletion from, or modification of the
+ contents of the Program, including, for purposes of clarity any new file
+ in Source Code form that contains any contents of the Program. Modified
+ Works shall not include works that contain only declarations, interfaces,
+ types, classes, structures, or files of the Program solely in each case
+ in order to link to, bind by name, or subclass the Program or Modified
+ Works thereof.
+ </p>
+ <p>“Distribute” means the acts of a) distributing or b) making available
+ in any manner that enables the transfer of a copy.
+ </p>
+ <p>“Source Code” means the form of a Program preferred for making
+ modifications, including but not limited to software source code,
+ documentation source, and configuration files.
+ </p>
+ <p>“Secondary License” means either the GNU General Public License,
+ Version 2.0, or any later versions of that license, including any
+ exceptions or additional permissions as identified by the initial
+ Contributor.
+ </p>
+ <h2 id="grant-of-rights">2. GRANT OF RIGHTS</h2>
+ <ul>
+ <li>a) Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free copyright
+ license to reproduce, prepare Derivative Works of, publicly display,
+ publicly perform, Distribute and sublicense the Contribution of such
+ Contributor, if any, and such Derivative Works.
+ </li>
+ <li>b) Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free patent
+ license under Licensed Patents to make, use, sell, offer to sell,
+ import and otherwise transfer the Contribution of such Contributor,
+ if any, in Source Code or other form. This patent license shall
+ apply to the combination of the Contribution and the Program if,
+ at the time the Contribution is added by the Contributor, such
+ addition of the Contribution causes such combination to be covered
+ by the Licensed Patents. The patent license shall not apply to any
+ other combinations which include the Contribution. No hardware per
+ se is licensed hereunder.
+ </li>
+ <li>c) Recipient understands that although each Contributor grants the
+ licenses to its Contributions set forth herein, no assurances are
+ provided by any Contributor that the Program does not infringe the
+ patent or other intellectual property rights of any other entity.
+ Each Contributor disclaims any liability to Recipient for claims
+ brought by any other entity based on infringement of intellectual
+ property rights or otherwise. As a condition to exercising the rights
+ and licenses granted hereunder, each Recipient hereby assumes sole
+ responsibility to secure any other intellectual property rights needed,
+ if any. For example, if a third party patent license is required to
+ allow Recipient to Distribute the Program, it is Recipient's
+ responsibility to acquire that license before distributing the Program.
+ </li>
+ <li>d) Each Contributor represents that to its knowledge it has sufficient
+ copyright rights in its Contribution, if any, to grant the copyright
+ license set forth in this Agreement.
+ </li>
+ <li>e) Notwithstanding the terms of any Secondary License, no Contributor
+ makes additional grants to any Recipient (other than those set forth
+ in this Agreement) as a result of such Recipient's receipt of the
+ Program under the terms of a Secondary License (if permitted under
+ the terms of Section 3).
+ </li>
+ </ul>
+ <h2 id="requirements">3. REQUIREMENTS</h2>
+ <p>3.1 If a Contributor Distributes the Program in any form, then:</p>
+ <ul>
+ <li>a) the Program must also be made available as Source Code, in
+ accordance with section 3.2, and the Contributor must accompany
+ the Program with a statement that the Source Code for the Program
+ is available under this Agreement, and informs Recipients how to
+ obtain it in a reasonable manner on or through a medium customarily
+ used for software exchange; and
+ </li>
+ <li>
+ b) the Contributor may Distribute the Program under a license
+ different than this Agreement, provided that such license:
+ <ul>
+ <li>i) effectively disclaims on behalf of all other Contributors all
+ warranties and conditions, express and implied, including warranties
+ or conditions of title and non-infringement, and implied warranties
+ or conditions of merchantability and fitness for a particular purpose;
+ </li>
+ <li>ii) effectively excludes on behalf of all other Contributors all
+ liability for damages, including direct, indirect, special, incidental
+ and consequential damages, such as lost profits;
+ </li>
+ <li>iii) does not attempt to limit or alter the recipients' rights in the
+ Source Code under section 3.2; and
+ </li>
+ <li>iv) requires any subsequent distribution of the Program by any party
+ to be under a license that satisfies the requirements of this section 3.
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <p>3.2 When the Program is Distributed as Source Code:</p>
+ <ul>
+ <li>a) it must be made available under this Agreement, or if the Program (i)
+ is combined with other material in a separate file or files made available
+ under a Secondary License, and (ii) the initial Contributor attached to
+ the Source Code the notice described in Exhibit A of this Agreement,
+ then the Program may be made available under the terms of such
+ Secondary Licenses, and
+ </li>
+ <li>b) a copy of this Agreement must be included with each copy of the Program.</li>
+ </ul>
+ <p>3.3 Contributors may not remove or alter any copyright, patent, trademark,
+ attribution notices, disclaimers of warranty, or limitations of liability
+ (‘notices’) contained within the Program from any copy of the Program which
+ they Distribute, provided that Contributors may add their own appropriate
+ notices.
+ </p>
+ <h2 id="commercial-distribution">4. COMMERCIAL DISTRIBUTION</h2>
+ <p>Commercial distributors of software may accept certain responsibilities
+ with respect to end users, business partners and the like. While this
+ license is intended to facilitate the commercial use of the Program, the
+ Contributor who includes the Program in a commercial product offering should
+ do so in a manner which does not create potential liability for other
+ Contributors. Therefore, if a Contributor includes the Program in a
+ commercial product offering, such Contributor (“Commercial Contributor”)
+ hereby agrees to defend and indemnify every other Contributor
+ (“Indemnified Contributor”) against any losses, damages and costs
+ (collectively “Losses”) arising from claims, lawsuits and other legal actions
+ brought by a third party against the Indemnified Contributor to the extent
+ caused by the acts or omissions of such Commercial Contributor in connection
+ with its distribution of the Program in a commercial product offering.
+ The obligations in this section do not apply to any claims or Losses relating
+ to any actual or alleged intellectual property infringement. In order to
+ qualify, an Indemnified Contributor must: a) promptly notify the
+ Commercial Contributor in writing of such claim, and b) allow the Commercial
+ Contributor to control, and cooperate with the Commercial Contributor in,
+ the defense and any related settlement negotiations. The Indemnified
+ Contributor may participate in any such claim at its own expense.
+ </p>
+ <p>For example, a Contributor might include the Program
+ in a commercial product offering, Product X. That Contributor is then a
+ Commercial Contributor. If that Commercial Contributor then makes performance
+ claims, or offers warranties related to Product X, those performance claims
+ and warranties are such Commercial Contributor's responsibility alone.
+ Under this section, the Commercial Contributor would have to defend claims
+ against the other Contributors related to those performance claims and
+ warranties, and if a court requires any other Contributor to pay any damages
+ as a result, the Commercial Contributor must pay those damages.
+ </p>
+ <h2 id="warranty">5. NO WARRANTY</h2>
+ <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
+ BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN “AS IS” BASIS, WITHOUT
+ WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+ WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is
+ solely responsible for determining the appropriateness of using and
+ distributing the Program and assumes all risks associated with its
+ exercise of rights under this Agreement, including but not limited to the
+ risks and costs of program errors, compliance with applicable laws, damage
+ to or loss of data, programs or equipment, and unavailability or
+ interruption of operations.
+ </p>
+ <h2 id="disclaimer">6. DISCLAIMER OF LIABILITY</h2>
+ <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
+ BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY
+ LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+ GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ </p>
+ <h2 id="general">7. GENERAL</h2>
+ <p>If any provision of this Agreement is invalid or unenforceable under
+ applicable law, it shall not affect the validity or enforceability of the
+ remainder of the terms of this Agreement, and without further action by the
+ parties hereto, such provision shall be reformed to the minimum extent
+ necessary to make such provision valid and enforceable.
+ </p>
+ <p>If Recipient institutes patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Program itself
+ (excluding combinations of the Program with other software or hardware)
+ infringes such Recipient's patent(s), then such Recipient's rights granted
+ under Section 2(b) shall terminate as of the date such litigation is filed.
+ </p>
+ <p>All Recipient's rights under this Agreement shall terminate if it fails to
+ comply with any of the material terms or conditions of this Agreement and
+ does not cure such failure in a reasonable period of time after becoming
+ aware of such noncompliance. If all Recipient's rights under this Agreement
+ terminate, Recipient agrees to cease use and distribution of the Program
+ as soon as reasonably practicable. However, Recipient's obligations under
+ this Agreement and any licenses granted by Recipient relating to the
+ Program shall continue and survive.
+ </p>
+ <p>Everyone is permitted to copy and distribute copies of this Agreement,
+ but in order to avoid inconsistency the Agreement is copyrighted and may
+ only be modified in the following manner. The Agreement Steward reserves
+ the right to publish new versions (including revisions) of this Agreement
+ from time to time. No one other than the Agreement Steward has the right
+ to modify this Agreement. The Eclipse Foundation is the initial Agreement
+ Steward. The Eclipse Foundation may assign the responsibility to serve as
+ the Agreement Steward to a suitable separate entity. Each new version of
+ the Agreement will be given a distinguishing version number. The Program
+ (including Contributions) may always be Distributed subject to the version
+ of the Agreement under which it was received. In addition, after a new
+ version of the Agreement is published, Contributor may elect to Distribute
+ the Program (including its Contributions) under the new version.
+ </p>
+ <p>Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
+ receives no rights or licenses to the intellectual property of any
+ Contributor under this Agreement, whether expressly, by implication,
+ estoppel or otherwise. All rights in the Program not expressly granted
+ under this Agreement are reserved. Nothing in this Agreement is intended
+ to be enforceable by any entity that is not a Contributor or Recipient.
+ No third-party beneficiary rights are created under this Agreement.
+ </p>
+ <h2 id="exhibit-a">Exhibit A – Form of Secondary Licenses Notice</h2>
+ <p>“This Source Code may also be made available under the following
+ Secondary Licenses when the conditions for such availability set forth
+ in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
+ version(s), and exceptions or additional permissions here}.”
+ </p>
+ <blockquote>
+ <p>Simply including a copy of this Agreement, including this Exhibit A
+ is not sufficient to license the Source Code under Secondary Licenses.
+ </p>
+ <p>If it is not possible or desirable to put the notice in a particular file,
+ then You may include the notice in a location (such as a LICENSE file in a
+ relevant directory) where a recipient would be likely to look for
+ such a notice.
+ </p>
+ <p>You may add additional accurate notices of copyright ownership.</p>
+ </blockquote>
+ </body>
+</html>
\ No newline at end of file
diff --git a/jenkins.build.config.xml b/jenkins.build.config.xml
new file mode 100644
index 0000000..ff4d016
--- /dev/null
+++ b/jenkins.build.config.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--#======================================================================= -->
+<!--# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) -->
+<!--# All rights reserved. This program and the accompanying materials -->
+<!--# are made available under the terms of the Eclipse Public License v1.0 -->
+<!--# which accompanies this distribution, and is available at -->
+<!--# http://www.eclipse.org/legal/epl-v10.html -->
+<!--# -->
+<!--# Contributors: -->
+<!--# Loetz GmbH&Co.KG - initial API and implementation -->
+<!--#======================================================================= -->
+<!--# Module specific parameters for the Jenkins Job -->
+<!--#======================================================================= -->
+<jenkins>
+ <jenkins.build.technologystack />
+ <!-- DO NOT EDIT BELOW THIS LINE -->
+ <jenkins.build.dependencies>
+ <jenkins.build.dependency>org.eclipse.osbp.releng.maven</jenkins.build.dependency>
+ </jenkins.build.dependencies>
+</jenkins>
diff --git a/mavenizing_started b/mavenizing_started
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/mavenizing_started
diff --git a/notice.html b/notice.html
new file mode 100644
index 0000000..81fca9d
--- /dev/null
+++ b/notice.html
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+ <h2>Eclipse Foundation Software User Agreement</h2>
+ <p>November 22, 2014</p>
+
+ <h3>Usage Of Content</h3>
+
+ <p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION,
+ INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+ (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY
+ THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+ CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
+ BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS
+ GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY
+ APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
+ BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS
+ AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE
+ AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT
+ USE THE CONTENT.</p>
+
+ <h3>Applicable Licenses</h3>
+
+ <p>
+ Unless otherwise indicated, all Content made available by the Eclipse
+ Foundation is provided to you under the terms and conditions of the
+ Eclipse Public License Version 2.0 ("EPL"). A copy of the
+ EPL is provided with this Content and is also available at <a
+ href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ For purposes of the EPL, "Program" will mean the Content.
+ </p>
+
+ <p>Content includes, but is not limited to, source code, object
+ code, documentation and other files maintained in the Eclipse
+ Foundation source code repository ("Repository") in software
+ modules ("Modules") and made available as downloadable
+ archives ("Downloads").</p>
+
+ <ul>
+ <li>Content may be structured and packaged into modules to
+ facilitate delivering, extending, and upgrading the Content. Typical
+ modules may include plug-ins ("Plug-ins"), plug-in
+ fragments ("Fragments"), and features
+ ("Features").</li>
+ <li>Each Plug-in or Fragment may be packaged as a sub-directory
+ or JAR (Java™ ARchive) in a directory named
+ "plugins".</li>
+ <li>A Feature is a bundle of one or more Plug-ins and/or
+ Fragments and associated material. Each Feature may be packaged as a
+ sub-directory in a directory named "features". Within a
+ Feature, files named "feature.xml" may contain a list of
+ the names and version numbers of the Plug-ins and/or Fragments
+ associated with that Feature.</li>
+ <li>Features may also include other Features ("Included
+ Features"). Within a Feature, files named
+ "feature.xml" may contain a list of the names and version
+ numbers of Included Features.</li>
+ </ul>
+
+ <p>The terms and conditions governing Plug-ins and Fragments should
+ be contained in files named "about.html"
+ ("Abouts"). The terms and conditions governing Features and
+ Included Features should be contained in files named
+ "license.html" ("Feature Licenses"). Abouts and
+ Feature Licenses may be located in any directory of a Download or
+ Module including, but not limited to the following locations:</p>
+
+ <ul>
+ <li>The top-level (root) directory</li>
+ <li>Plug-in and Fragment directories</li>
+ <li>Inside Plug-ins and Fragments packaged as JARs</li>
+ <li>Sub-directories of the directory named "src" of
+ certain Plug-ins</li>
+ <li>Feature directories</li>
+ </ul>
+
+ <p>Note: if a Feature made available by the Eclipse Foundation is
+ installed using the Provisioning Technology (as defined below), you
+ must agree to a license ("Feature Update License") during
+ the installation process. If the Feature contains Included Features,
+ the Feature Update License should either provide you with the terms
+ and conditions governing the Included Features or inform you where you
+ can locate them. Feature Update Licenses may be found in the
+ "license" property of files named
+ "feature.properties" found within a Feature. Such Abouts,
+ Feature Licenses, and Feature Update Licenses contain the terms and
+ conditions (or references to such terms and conditions) that govern
+ your use of the associated Content in that directory.</p>
+
+ <p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY
+ REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND
+ CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT
+ ARE NOT LIMITED TO):</p>
+
+ <ul>
+ <li>Eclipse Public License Version 1.0 (available at <a
+ href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>)
+ </li>
+ <li>Eclipse Distribution License Version 1.0 (available at <a
+ href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)
+ </li>
+ <li>Common Public License Version 1.0 (available at <a
+ href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)
+ </li>
+ <li>Apache Software License 1.1 (available at <a
+ href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)
+ </li>
+ <li>Apache Software License 2.0 (available at <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)
+ </li>
+ <li>Mozilla Public License Version 1.1 (available at <a
+ href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)
+ </li>
+ </ul>
+
+ <p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND
+ CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License,
+ or Feature Update License is provided, please contact the Eclipse
+ Foundation to determine what terms and conditions govern that
+ particular Content.</p>
+
+
+ <h3>Use of Provisioning Technology</h3>
+
+ <p>
+ The Eclipse Foundation makes available provisioning software, examples
+ of which include, but are not limited to, p2 and the Eclipse Update
+ Manager ("Provisioning Technology") for the purpose of
+ allowing users to install software, documentation, information and/or
+ other materials (collectively "Installable Software"). This
+ capability is provided with the intent of allowing such users to
+ install, extend and update Eclipse-based products. Information about
+ packaging Installable Software is available at <a
+ href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+ ("Specification").
+ </p>
+
+ <p>You may use Provisioning Technology to allow other parties to
+ install Installable Software. You shall be responsible for enabling
+ the applicable license agreements relating to the Installable Software
+ to be presented to, and accepted by, the users of the Provisioning
+ Technology in accordance with the Specification. By using Provisioning
+ Technology in such a manner and making it available in accordance with
+ the Specification, you further acknowledge your agreement to, and the
+ acquisition of all necessary rights to permit the following:</p>
+
+ <ol>
+ <li>A series of actions may occur ("Provisioning
+ Process") in which a user may execute the Provisioning
+ Technology on a machine ("Target Machine") with the intent
+ of installing, extending or updating the functionality of an
+ Eclipse-based product.</li>
+ <li>During the Provisioning Process, the Provisioning Technology
+ may cause third party Installable Software or a portion thereof to be
+ accessed and copied to the Target Machine.</li>
+ <li>Pursuant to the Specification, you will provide to the user
+ the terms and conditions that govern the use of the Installable
+ Software ("Installable Software Agreement") and such
+ Installable Software Agreement shall be accessed from the Target
+ Machine in accordance with the Specification. Such Installable
+ Software Agreement must inform the user of the terms and conditions
+ that govern the Installable Software and must solicit acceptance by
+ the end user in the manner prescribed in such Installable Software
+ Agreement. Upon such indication of agreement by the user, the
+ provisioning Technology will complete installation of the Installable
+ Software.</li>
+ </ol>
+
+ <h3>Cryptography</h3>
+
+ <p>Content may contain encryption software. The country in which
+ you are currently may have restrictions on the import, possession, and
+ use, and/or re-export to another country, of encryption software.
+ BEFORE using any encryption software, please check the country's laws,
+ regulations and policies concerning the import, possession, or use,
+ and re-export of encryption software, to see if this is permitted.</p>
+
+ <p>
+ <small>Java and all Java-based trademarks are trademarks of
+ Oracle Corporation in the United States, other countries, or both.</small>
+ </p>
+</body>
+</html>
diff --git a/org.eclipse.osbp.fork.jpos.feature/.gitignore b/org.eclipse.osbp.fork.jpos.feature/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos.feature/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/org.eclipse.osbp.fork.jpos.feature/.project b/org.eclipse.osbp.fork.jpos.feature/.project
new file mode 100644
index 0000000..54d6dcb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos.feature/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.osbp.fork.jpos.feature</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.FeatureBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
+ <nature>org.eclipse.pde.FeatureNature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.fork.jpos.feature/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.fork.jpos.feature/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos.feature/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.osbp.fork.jpos.feature/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.fork.jpos.feature/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos.feature/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/org.eclipse.osbp.fork.jpos.feature/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.fork.jpos.feature/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..0933f8c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos.feature/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -0,0 +1,10 @@
+//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+eclipse.preferences.version=1
+is_project_specific=true
+outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
+outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
+outlet.DEFAULT_OUTPUT.sourceFolder.emf-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true
diff --git a/org.eclipse.osbp.fork.jpos.feature/LICENSE.txt b/org.eclipse.osbp.fork.jpos.feature/LICENSE.txt
new file mode 100644
index 0000000..e23ece2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos.feature/LICENSE.txt
@@ -0,0 +1,277 @@
+Eclipse Public License - v 2.0
+
+ THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+ PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
+ OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+ a) in the case of the initial Contributor, the initial content
+ Distributed under this Agreement, and
+
+ b) in the case of each subsequent Contributor:
+ i) changes to the Program, and
+ ii) additions to the Program;
+ where such changes and/or additions to the Program originate from
+ and are Distributed by that particular Contributor. A Contribution
+ "originates" from a Contributor if it was added to the Program by
+ such Contributor itself or anyone acting on such Contributor's behalf.
+ Contributions do not include changes or additions to the Program that
+ are not Modified Works.
+
+"Contributor" means any person or entity that Distributes the Program.
+
+"Licensed Patents" mean patent claims licensable by a Contributor which
+are necessarily infringed by the use or sale of its Contribution alone
+or when combined with the Program.
+
+"Program" means the Contributions Distributed in accordance with this
+Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement
+or any Secondary License (as applicable), including Contributors.
+
+"Derivative Works" shall mean any work, whether in Source Code or other
+form, that is based on (or derived from) the Program and for which the
+editorial revisions, annotations, elaborations, or other modifications
+represent, as a whole, an original work of authorship.
+
+"Modified Works" shall mean any work in Source Code or other form that
+results from an addition to, deletion from, or modification of the
+contents of the Program, including, for purposes of clarity any new file
+in Source Code form that contains any contents of the Program. Modified
+Works shall not include works that contain only declarations,
+interfaces, types, classes, structures, or files of the Program solely
+in each case in order to link to, bind by name, or subclass the Program
+or Modified Works thereof.
+
+"Distribute" means the acts of a) distributing or b) making available
+in any manner that enables the transfer of a copy.
+
+"Source Code" means the form of a Program preferred for making
+modifications, including but not limited to software source code,
+documentation source, and configuration files.
+
+"Secondary License" means either the GNU General Public License,
+Version 2.0, or any later versions of that license, including any
+exceptions or additional permissions as identified by the initial
+Contributor.
+
+2. GRANT OF RIGHTS
+
+ a) Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free copyright
+ license to reproduce, prepare Derivative Works of, publicly display,
+ publicly perform, Distribute and sublicense the Contribution of such
+ Contributor, if any, and such Derivative Works.
+
+ b) Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free patent
+ license under Licensed Patents to make, use, sell, offer to sell,
+ import and otherwise transfer the Contribution of such Contributor,
+ if any, in Source Code or other form. This patent license shall
+ apply to the combination of the Contribution and the Program if, at
+ the time the Contribution is added by the Contributor, such addition
+ of the Contribution causes such combination to be covered by the
+ Licensed Patents. The patent license shall not apply to any other
+ combinations which include the Contribution. No hardware per se is
+ licensed hereunder.
+
+ c) Recipient understands that although each Contributor grants the
+ licenses to its Contributions set forth herein, no assurances are
+ provided by any Contributor that the Program does not infringe the
+ patent or other intellectual property rights of any other entity.
+ Each Contributor disclaims any liability to Recipient for claims
+ brought by any other entity based on infringement of intellectual
+ property rights or otherwise. As a condition to exercising the
+ rights and licenses granted hereunder, each Recipient hereby
+ assumes sole responsibility to secure any other intellectual
+ property rights needed, if any. For example, if a third party
+ patent license is required to allow Recipient to Distribute the
+ Program, it is Recipient's responsibility to acquire that license
+ before distributing the Program.
+
+ d) Each Contributor represents that to its knowledge it has
+ sufficient copyright rights in its Contribution, if any, to grant
+ the copyright license set forth in this Agreement.
+
+ e) Notwithstanding the terms of any Secondary License, no
+ Contributor makes additional grants to any Recipient (other than
+ those set forth in this Agreement) as a result of such Recipient's
+ receipt of the Program under the terms of a Secondary License
+ (if permitted under the terms of Section 3).
+
+3. REQUIREMENTS
+
+3.1 If a Contributor Distributes the Program in any form, then:
+
+ a) the Program must also be made available as Source Code, in
+ accordance with section 3.2, and the Contributor must accompany
+ the Program with a statement that the Source Code for the Program
+ is available under this Agreement, and informs Recipients how to
+ obtain it in a reasonable manner on or through a medium customarily
+ used for software exchange; and
+
+ b) the Contributor may Distribute the Program under a license
+ different than this Agreement, provided that such license:
+ i) effectively disclaims on behalf of all other Contributors all
+ warranties and conditions, express and implied, including
+ warranties or conditions of title and non-infringement, and
+ implied warranties or conditions of merchantability and fitness
+ for a particular purpose;
+
+ ii) effectively excludes on behalf of all other Contributors all
+ liability for damages, including direct, indirect, special,
+ incidental and consequential damages, such as lost profits;
+
+ iii) does not attempt to limit or alter the recipients' rights
+ in the Source Code under section 3.2; and
+
+ iv) requires any subsequent distribution of the Program by any
+ party to be under a license that satisfies the requirements
+ of this section 3.
+
+3.2 When the Program is Distributed as Source Code:
+
+ a) it must be made available under this Agreement, or if the
+ Program (i) is combined with other material in a separate file or
+ files made available under a Secondary License, and (ii) the initial
+ Contributor attached to the Source Code the notice described in
+ Exhibit A of this Agreement, then the Program may be made available
+ under the terms of such Secondary Licenses, and
+
+ b) a copy of this Agreement must be included with each copy of
+ the Program.
+
+3.3 Contributors may not remove or alter any copyright, patent,
+trademark, attribution notices, disclaimers of warranty, or limitations
+of liability ("notices") contained within the Program from any copy of
+the Program which they Distribute, provided that Contributors may add
+their own appropriate notices.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities
+with respect to end users, business partners and the like. While this
+license is intended to facilitate the commercial use of the Program,
+the Contributor who includes the Program in a commercial product
+offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes
+the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every
+other Contributor ("Indemnified Contributor") against any losses,
+damages and costs (collectively "Losses") arising from claims, lawsuits
+and other legal actions brought by a third party against the Indemnified
+Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program
+in a commercial product offering. The obligations in this section do not
+apply to any claims or Losses relating to any actual or alleged
+intellectual property infringement. In order to qualify, an Indemnified
+Contributor must: a) promptly notify the Commercial Contributor in
+writing of such claim, and b) allow the Commercial Contributor to control,
+and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may
+participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those performance
+claims and warranties, and if a court requires any other Contributor to
+pay any damages as a result, the Commercial Contributor must pay
+those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
+PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS"
+BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
+TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
+PURPOSE. Each Recipient is solely responsible for determining the
+appropriateness of using and distributing the Program and assumes all
+risks associated with its exercise of rights under this Agreement,
+including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs
+or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
+PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
+SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
+EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further
+action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other software
+or hardware) infringes such Recipient's patent(s), then such Recipient's
+rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of
+time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use
+and distribution of the Program as soon as reasonably practicable.
+However, Recipient's obligations under this Agreement and any licenses
+granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement,
+but in order to avoid inconsistency the Agreement is copyrighted and
+may only be modified in the following manner. The Agreement Steward
+reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement
+Steward has the right to modify this Agreement. The Eclipse Foundation
+is the initial Agreement Steward. The Eclipse Foundation may assign the
+responsibility to serve as the Agreement Steward to a suitable separate
+entity. Each new version of the Agreement will be given a distinguishing
+version number. The Program (including Contributions) may always be
+Distributed subject to the version of the Agreement under which it was
+received. In addition, after a new version of the Agreement is published,
+Contributor may elect to Distribute the Program (including its
+Contributions) under the new version.
+
+Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
+receives no rights or licenses to the intellectual property of any
+Contributor under this Agreement, whether expressly, by implication,
+estoppel or otherwise. All rights in the Program not expressly granted
+under this Agreement are reserved. Nothing in this Agreement is intended
+to be enforceable by any entity that is not a Contributor or Recipient.
+No third-party beneficiary rights are created under this Agreement.
+
+Exhibit A - Form of Secondary Licenses Notice
+
+"This Source Code may also be made available under the following
+Secondary Licenses when the conditions for such availability set forth
+in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
+version(s), and exceptions or additional permissions here}."
+
+ Simply including a copy of this Agreement, including this Exhibit A
+ is not sufficient to license the Source Code under Secondary Licenses.
+
+ If it is not possible or desirable to put the notice in a particular
+ file, then You may include the notice in a location (such as a LICENSE
+ file in a relevant directory) where a recipient would be likely to
+ look for such a notice.
+
+ You may add additional accurate notices of copyright ownership.
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos.feature/build.properties b/org.eclipse.osbp.fork.jpos.feature/build.properties
new file mode 100644
index 0000000..0ea4044
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos.feature/build.properties
@@ -0,0 +1,10 @@
+bin.includes = feature.xml,\
+ feature.properties,\
+ notice.html,\
+ license.html,\
+ LICENSE.txt,\
+ epl-v10.html
+src.includes = license.html,\
+ LICENSE.txt,\
+ notice.html,\
+ epl-v10.html
diff --git a/org.eclipse.osbp.fork.jpos.feature/epl-v10.html b/org.eclipse.osbp.fork.jpos.feature/epl-v10.html
new file mode 100644
index 0000000..b398acc
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos.feature/epl-v10.html
@@ -0,0 +1,259 @@
+<!--?xml version="1.0" encoding="ISO-8859-1" ?-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml"><head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Eclipse Public License - Version 1.0</title>
+<style type="text/css">
+ body {
+ size: 8.5in 11.0in;
+ margin: 0.25in 0.5in 0.25in 0.5in;
+ tab-interval: 0.5in;
+ }
+ p {
+ margin-left: auto;
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ }
+ p.list {
+ margin-left: 0.5in;
+ margin-top: 0.05em;
+ margin-bottom: 0.05em;
+ }
+ </style>
+
+</head>
+
+<body lang="EN-US">
+
+<h2>Eclipse Public License - v 1.0</h2>
+
+<p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR
+DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS
+AGREEMENT.</p>
+
+<p><b>1. DEFINITIONS</b></p>
+
+<p>"Contribution" means:</p>
+
+<p class="list">a) in the case of the initial Contributor, the initial
+code and documentation distributed under this Agreement, and</p>
+<p class="list">b) in the case of each subsequent Contributor:</p>
+<p class="list">i) changes to the Program, and</p>
+<p class="list">ii) additions to the Program;</p>
+<p class="list">where such changes and/or additions to the Program
+originate from and are distributed by that particular Contributor. A
+Contribution 'originates' from a Contributor if it was added to the
+Program by such Contributor itself or anyone acting on such
+Contributor's behalf. Contributions do not include additions to the
+Program which: (i) are separate modules of software distributed in
+conjunction with the Program under their own license agreement, and (ii)
+are not derivative works of the Program.</p>
+
+<p>"Contributor" means any person or entity that distributes
+the Program.</p>
+
+<p>"Licensed Patents" mean patent claims licensable by a
+Contributor which are necessarily infringed by the use or sale of its
+Contribution alone or when combined with the Program.</p>
+
+<p>"Program" means the Contributions distributed in accordance
+with this Agreement.</p>
+
+<p>"Recipient" means anyone who receives the Program under
+this Agreement, including all Contributors.</p>
+
+<p><b>2. GRANT OF RIGHTS</b></p>
+
+<p class="list">a) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free copyright license to reproduce, prepare derivative works
+of, publicly display, publicly perform, distribute and sublicense the
+Contribution of such Contributor, if any, and such derivative works, in
+source code and object code form.</p>
+
+<p class="list">b) Subject to the terms of this Agreement, each
+Contributor hereby grants Recipient a non-exclusive, worldwide,
+royalty-free patent license under Licensed Patents to make, use, sell,
+offer to sell, import and otherwise transfer the Contribution of such
+Contributor, if any, in source code and object code form. This patent
+license shall apply to the combination of the Contribution and the
+Program if, at the time the Contribution is added by the Contributor,
+such addition of the Contribution causes such combination to be covered
+by the Licensed Patents. The patent license shall not apply to any other
+combinations which include the Contribution. No hardware per se is
+licensed hereunder.</p>
+
+<p class="list">c) Recipient understands that although each Contributor
+grants the licenses to its Contributions set forth herein, no assurances
+are provided by any Contributor that the Program does not infringe the
+patent or other intellectual property rights of any other entity. Each
+Contributor disclaims any liability to Recipient for claims brought by
+any other entity based on infringement of intellectual property rights
+or otherwise. As a condition to exercising the rights and licenses
+granted hereunder, each Recipient hereby assumes sole responsibility to
+secure any other intellectual property rights needed, if any. For
+example, if a third party patent license is required to allow Recipient
+to distribute the Program, it is Recipient's responsibility to acquire
+that license before distributing the Program.</p>
+
+<p class="list">d) Each Contributor represents that to its knowledge it
+has sufficient copyright rights in its Contribution, if any, to grant
+the copyright license set forth in this Agreement.</p>
+
+<p><b>3. REQUIREMENTS</b></p>
+
+<p>A Contributor may choose to distribute the Program in object code
+form under its own license agreement, provided that:</p>
+
+<p class="list">a) it complies with the terms and conditions of this
+Agreement; and</p>
+
+<p class="list">b) its license agreement:</p>
+
+<p class="list">i) effectively disclaims on behalf of all Contributors
+all warranties and conditions, express and implied, including warranties
+or conditions of title and non-infringement, and implied warranties or
+conditions of merchantability and fitness for a particular purpose;</p>
+
+<p class="list">ii) effectively excludes on behalf of all Contributors
+all liability for damages, including direct, indirect, special,
+incidental and consequential damages, such as lost profits;</p>
+
+<p class="list">iii) states that any provisions which differ from this
+Agreement are offered by that Contributor alone and not by any other
+party; and</p>
+
+<p class="list">iv) states that source code for the Program is available
+from such Contributor, and informs licensees how to obtain it in a
+reasonable manner on or through a medium customarily used for software
+exchange.</p>
+
+<p>When the Program is made available in source code form:</p>
+
+<p class="list">a) it must be made available under this Agreement; and</p>
+
+<p class="list">b) a copy of this Agreement must be included with each
+copy of the Program.</p>
+
+<p>Contributors may not remove or alter any copyright notices contained
+within the Program.</p>
+
+<p>Each Contributor must identify itself as the originator of its
+Contribution, if any, in a manner that reasonably allows subsequent
+Recipients to identify the originator of the Contribution.</p>
+
+<p><b>4. COMMERCIAL DISTRIBUTION</b></p>
+
+<p>Commercial distributors of software may accept certain
+responsibilities with respect to end users, business partners and the
+like. While this license is intended to facilitate the commercial use of
+the Program, the Contributor who includes the Program in a commercial
+product offering should do so in a manner which does not create
+potential liability for other Contributors. Therefore, if a Contributor
+includes the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and
+indemnify every other Contributor ("Indemnified Contributor")
+against any losses, damages and costs (collectively "Losses")
+arising from claims, lawsuits and other legal actions brought by a third
+party against the Indemnified Contributor to the extent caused by the
+acts or omissions of such Commercial Contributor in connection with its
+distribution of the Program in a commercial product offering. The
+obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In
+order to qualify, an Indemnified Contributor must: a) promptly notify
+the Commercial Contributor in writing of such claim, and b) allow the
+Commercial Contributor to control, and cooperate with the Commercial
+Contributor in, the defense and any related settlement negotiations. The
+Indemnified Contributor may participate in any such claim at its own
+expense.</p>
+
+<p>For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those
+performance claims and warranties, and if a court requires any other
+Contributor to pay any damages as a result, the Commercial Contributor
+must pay those damages.</p>
+
+<p><b>5. NO WARRANTY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS
+OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely
+responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its
+exercise of rights under this Agreement , including but not limited to
+the risks and costs of program errors, compliance with applicable laws,
+damage to or loss of data, programs or equipment, and unavailability or
+interruption of operations.</p>
+
+<p><b>6. DISCLAIMER OF LIABILITY</b></p>
+
+<p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING
+WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR
+DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED
+HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.</p>
+
+<p><b>7. GENERAL</b></p>
+
+<p>If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further action
+by the parties hereto, such provision shall be reformed to the minimum
+extent necessary to make such provision valid and enforceable.</p>
+
+<p>If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other
+software or hardware) infringes such Recipient's patent(s), then such
+Recipient's rights granted under Section 2(b) shall terminate as of the
+date such litigation is filed.</p>
+
+<p>All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of time
+after becoming aware of such noncompliance. If all Recipient's rights
+under this Agreement terminate, Recipient agrees to cease use and
+distribution of the Program as soon as reasonably practicable. However,
+Recipient's obligations under this Agreement and any licenses granted by
+Recipient relating to the Program shall continue and survive.</p>
+
+<p>Everyone is permitted to copy and distribute copies of this
+Agreement, but in order to avoid inconsistency the Agreement is
+copyrighted and may only be modified in the following manner. The
+Agreement Steward reserves the right to publish new versions (including
+revisions) of this Agreement from time to time. No one other than the
+Agreement Steward has the right to modify this Agreement. The Eclipse
+Foundation is the initial Agreement Steward. The Eclipse Foundation may
+assign the responsibility to serve as the Agreement Steward to a
+suitable separate entity. Each new version of the Agreement will be
+given a distinguishing version number. The Program (including
+Contributions) may always be distributed subject to the version of the
+Agreement under which it was received. In addition, after a new version
+of the Agreement is published, Contributor may elect to distribute the
+Program (including its Contributions) under the new version. Except as
+expressly stated in Sections 2(a) and 2(b) above, Recipient receives no
+rights or licenses to the intellectual property of any Contributor under
+this Agreement, whether expressly, by implication, estoppel or
+otherwise. All rights in the Program not expressly granted under this
+Agreement are reserved.</p>
+
+<p>This Agreement is governed by the laws of the State of New York and
+the intellectual property laws of the United States of America. No party
+to this Agreement will bring a legal action under this Agreement more
+than one year after the cause of action arose. Each party waives its
+rights to a jury trial in any resulting litigation.</p>
+
+
+
+</body></html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos.feature/feature.properties b/org.eclipse.osbp.fork.jpos.feature/feature.properties
new file mode 100644
index 0000000..5817aee
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos.feature/feature.properties
@@ -0,0 +1,204 @@
+#=======================================================================
+# Copyright (c) 2011, 2017 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany).
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License 2.0 which is available at
+# http://www.eclipse.org/legal/epl-2.0.
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# Loetz GmbH&Co.KG - initial API and implementation
+#=======================================================================
+# feature.properties
+# contains externalized strings for feature.xml
+# "%foo" in feature.xml corresponds to the key "foo" in this file
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file should be translated.
+
+# "featureName" property - name of the feature
+featureName =OSBP JavaPOS fork
+
+# "providerName" property - name of the company that provides the feature
+providerName=Eclipse OSBP
+
+# "description" property - description of the feature
+description=This feature provides the OSBP fork of JavaPOS bundle.\n\
+ The code is derived from http://www.javapos.org/downloads/JavaPOS-1.14.0-Source-20131024.zip
+
+# "updateSiteName" property - label for the update site
+updateSiteName=
+
+# "copyright" property - text of the "Feature Update Copyright"
+copyright=\
+Copyright (c) 2011, 2017 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany) and others. \n\
+This program and the accompanying materials are made available under the \n\
+terms of the Eclipse Public License 2.0 which is available at\n\
+http://www.eclipse.org/legal/epl-2.0.\n\
+\n\
+SPDX-License-Identifier: EPL-2.0 \n\
+\n\
+Contributors:\n\
+ Loetz GmbH&Co.KG - initial API and basis\n\
+\n\
+The included JavaPOS code is licensed as follows:\n\
+* This software is provided "AS IS". The JavaPOS working group (including\n\
+* each of the Corporate members, contributors and individuals) MAKES NO\n\
+* REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,\n\
+* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED\n\
+* WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n\
+* NON-INFRINGEMENT. The JavaPOS working group shall not be liable for\n\
+* any damages suffered as a result of using, modifying or distributing this\n\
+* software or its derivatives.Permission to use, copy, modify, and distribute\n\
+* the software and its documentation for any purpose is hereby granted.\n\
+\n
+################ end of copyright property ####################################
+
+# "licenseURL" property - URL of the "Feature License"
+# do not translate value - just change to point to a locale-specific HTML page
+licenseURL=license.html
+
+# "license" property - text of the "Feature Update License"
+# should be plain text version of license agreement pointed to be "licenseURL"
+license=\
+Eclipse Foundation Software User Agreement\n\
+\n\
+November 22, 2014\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION\n\
+AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT"). USE OF\n\
+THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE\n\
+TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED\n\
+BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE\n\
+AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS OF ANY\n\
+APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU\n\
+MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
+is provided to you under the terms and conditions of the Eclipse Public License\n\
+Version 2.0 ("EPL"). A copy of the EPL is provided with this Content and is also\n\
+available at http://www.eclipse.org/legal/epl-2.0. For purposes of the EPL,\n\
+"Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code, documentation\n\
+and other files maintained in the Eclipse Foundation source code repository\n\
+("Repository") in software modules ("Modules") and made available as\n\
+downloadable archives ("Downloads").\n\
+\n\
+- Content may be structured and packaged into modules to facilitate\n\
+ delivering, extending, and upgrading the Content. Typical modules may\n\
+ include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and\n\
+ features ("Features").\n\
+- Each Plug-in or Fragment may be packaged as a sub-directory or JAR\n\
+ (Java™ ARchive) in a directory named "plugins".\n\
+- A Feature is a bundle of one or more Plug-ins and/or Fragments and\n\
+ associated material. Each Feature may be packaged as a sub-directory in a\n\
+ directory named "features". Within a Feature, files named "feature.xml" may\n\
+ contain a list of the names and version numbers of the Plug-ins and/or\n\
+ Fragments associated with that Feature.\n\
+- Features may also include other Features ("Included Features"). Within a\n\
+ Feature, files named "feature.xml" may contain a list of the names and\n\
+ version numbers of Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be contained in\n\
+files named "about.html" ("Abouts"). The terms and conditions governing Features\n\
+and Included Features should be contained in files named "license.html"\n\
+("Feature Licenses"). Abouts and Feature Licenses may be located in any\n\
+directory of a Download or Module including, but not limited to the following\n\
+locations:\n\
+\n\
+- The top-level (root) directory\n\
+- Plug-in and Fragment directories\n\
+- Inside Plug-ins and Fragments packaged as JARs\n\
+- Sub-directories of the directory named "src" of certain Plug-ins\n\
+- Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using\n\
+the Provisioning Technology (as defined below), you must agree to a license\n\
+("Feature Update License") during the installation process. If the Feature\n\
+contains Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform you\n\
+where you can locate them. Feature Update Licenses may be found in the "license"\n\
+property of files named "feature.properties" found within a Feature. Such\n\
+Abouts, Feature Licenses, and Feature Update Licenses contain the terms and\n\
+conditions (or references to such terms and conditions) that govern your use of\n\
+the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL\n\
+OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE\n\
+OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+- Eclipse Public License Version 1.0 (available at\n\
+ http://www.eclipse.org/legal/epl-v10.html)\n\
+- Eclipse Distribution License Version 1.0 (available at\n\
+ http://www.eclipse.org/licenses/edl-v1.0.html)\n\
+- Common Public License Version 1.0 (available at\n\
+ http://www.eclipse.org/legal/cpl-v10.html)\n\
+- Apache Software License 1.1 (available at\n\
+ http://www.apache.org/licenses/LICENSE)\n\
+- Apache Software License 2.0 (available at\n\
+ http://www.apache.org/licenses/LICENSE-2.0)\n\
+- Mozilla Public License Version 1.1 (available at\n\
+ http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO\n\
+USE OF THE CONTENT. If no About, Feature License, or Feature Update License is\n\
+provided, please contact the Eclipse Foundation to determine what terms and\n\
+conditions govern that particular Content.\n\
+\n\
+Use of Provisioning Technology\n\
+\n\
+The Eclipse Foundation makes available provisioning software, examples of which\n\
+include, but are not limited to, p2 and the Eclipse Update Manager\n\
+("Provisioning Technology") for the purpose of allowing users to install\n\
+software, documentation, information and/or other materials (collectively\n\
+"Installable Software"). This capability is provided with the intent of allowing\n\
+such users to install, extend and update Eclipse-based products. Information\n\
+about packaging Installable Software is available at\n\
+http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
+\n\
+You may use Provisioning Technology to allow other parties to install\n\
+Installable Software. You shall be responsible for enabling the applicable\n\
+license agreements relating to the Installable Software to be presented to, and\n\
+accepted by, the users of the Provisioning Technology in accordance with the\n\
+Specification. By using Provisioning Technology in such a manner and making it\n\
+available in accordance with the Specification, you further acknowledge your\n\
+agreement to, and the acquisition of all necessary rights to permit the\n\
+following:\n\
+\n\
+1. A series of actions may occur ("Provisioning Process") in which a user may\n\
+ execute the Provisioning Technology on a machine ("Target Machine") with the\n\
+ intent of installing, extending or updating the functionality of an\n\
+ Eclipse-based product.\n\
+2. During the Provisioning Process, the Provisioning Technology may cause third\n\
+ party Installable Software or a portion thereof to be accessed and copied to\n\
+ the Target Machine.\n\
+3. Pursuant to the Specification, you will provide to the user the terms and\n\
+ conditions that govern the use of the Installable Software ("Installable\n\
+ Software Agreement") and such Installable Software Agreement shall be\n\
+ accessed from the Target Machine in accordance with the Specification. Such\n\
+ Installable Software Agreement must inform the user of the terms and\n\
+ conditions that govern the Installable Software and must solicit acceptance\n\
+ by the end user in the manner prescribed in such Installable\n\
+ Software Agreement. Upon such indication of agreement by the user, the\n\
+ provisioning Technology will complete installation of the\n\
+ Installable Software.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are currently\n\
+may have restrictions on the import, possession, and use, and/or re-export to\n\
+another country, of encryption software. BEFORE using any encryption software,\n\
+please check the country's laws, regulations and policies concerning the import,\n\
+possession, or use, and re-export of encryption software, to see if this is\n\
+permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Oracle Corporation in the\n\
+United States, other countries, or both.\n\
+n\
+########### end of license property ##########################################
diff --git a/org.eclipse.osbp.fork.jpos.feature/feature.xml b/org.eclipse.osbp.fork.jpos.feature/feature.xml
new file mode 100644
index 0000000..73af690
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos.feature/feature.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<feature
+ id="org.eclipse.osbp.fork.jpos.feature"
+ label="%featureName"
+ version="1.14.0.qualifier"
+ provider-name="%providerName"
+ plugin="org.eclipse.osbp.fork.jpos">
+
+ <description>
+ %description
+ </description>
+
+ <copyright>
+ %copyright
+ </copyright>
+
+ <license url="%licenseURL">
+ %license
+ </license>
+
+ <plugin
+ id="org.eclipse.osbp.fork.jpos"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
+
+
+
+</feature>
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos.feature/license.html b/org.eclipse.osbp.fork.jpos.feature/license.html
new file mode 100644
index 0000000..637a181
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos.feature/license.html
@@ -0,0 +1,300 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>Eclipse Public License - Version 2.0</title>
+ <style type="text/css">
+ body {
+ margin: 1.5em 3em;
+ }
+ h1{
+ font-size:1.5em;
+ }
+ h2{
+ font-size:1em;
+ margin-bottom:0.5em;
+ margin-top:1em;
+ }
+ p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ }
+ ul, ol{
+ list-style-type:none;
+ }
+ </style>
+ </head>
+ <body>
+ <h1>Eclipse Public License - v 2.0</h1>
+ <p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+ PUBLIC LICENSE (“AGREEMENT”). ANY USE, REPRODUCTION OR DISTRIBUTION
+ OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ </p>
+ <h2 id="definitions">1. DEFINITIONS</h2>
+ <p>“Contribution” means:</p>
+ <ul>
+ <li>a) in the case of the initial Contributor, the initial content
+ Distributed under this Agreement, and
+ </li>
+ <li>
+ b) in the case of each subsequent Contributor:
+ <ul>
+ <li>i) changes to the Program, and</li>
+ <li>ii) additions to the Program;</li>
+ </ul>
+ where such changes and/or additions to the Program originate from
+ and are Distributed by that particular Contributor. A Contribution
+ “originates” from a Contributor if it was added to the Program by such
+ Contributor itself or anyone acting on such Contributor's behalf.
+ Contributions do not include changes or additions to the Program that
+ are not Modified Works.
+ </li>
+ </ul>
+ <p>“Contributor” means any person or entity that Distributes the Program.</p>
+ <p>“Licensed Patents” mean patent claims licensable by a Contributor which
+ are necessarily infringed by the use or sale of its Contribution alone
+ or when combined with the Program.
+ </p>
+ <p>“Program” means the Contributions Distributed in accordance with this
+ Agreement.
+ </p>
+ <p>“Recipient” means anyone who receives the Program under this Agreement
+ or any Secondary License (as applicable), including Contributors.
+ </p>
+ <p>“Derivative Works” shall mean any work, whether in Source Code or other
+ form, that is based on (or derived from) the Program and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship.
+ </p>
+ <p>“Modified Works” shall mean any work in Source Code or other form that
+ results from an addition to, deletion from, or modification of the
+ contents of the Program, including, for purposes of clarity any new file
+ in Source Code form that contains any contents of the Program. Modified
+ Works shall not include works that contain only declarations, interfaces,
+ types, classes, structures, or files of the Program solely in each case
+ in order to link to, bind by name, or subclass the Program or Modified
+ Works thereof.
+ </p>
+ <p>“Distribute” means the acts of a) distributing or b) making available
+ in any manner that enables the transfer of a copy.
+ </p>
+ <p>“Source Code” means the form of a Program preferred for making
+ modifications, including but not limited to software source code,
+ documentation source, and configuration files.
+ </p>
+ <p>“Secondary License” means either the GNU General Public License,
+ Version 2.0, or any later versions of that license, including any
+ exceptions or additional permissions as identified by the initial
+ Contributor.
+ </p>
+ <h2 id="grant-of-rights">2. GRANT OF RIGHTS</h2>
+ <ul>
+ <li>a) Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free copyright
+ license to reproduce, prepare Derivative Works of, publicly display,
+ publicly perform, Distribute and sublicense the Contribution of such
+ Contributor, if any, and such Derivative Works.
+ </li>
+ <li>b) Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free patent
+ license under Licensed Patents to make, use, sell, offer to sell,
+ import and otherwise transfer the Contribution of such Contributor,
+ if any, in Source Code or other form. This patent license shall
+ apply to the combination of the Contribution and the Program if,
+ at the time the Contribution is added by the Contributor, such
+ addition of the Contribution causes such combination to be covered
+ by the Licensed Patents. The patent license shall not apply to any
+ other combinations which include the Contribution. No hardware per
+ se is licensed hereunder.
+ </li>
+ <li>c) Recipient understands that although each Contributor grants the
+ licenses to its Contributions set forth herein, no assurances are
+ provided by any Contributor that the Program does not infringe the
+ patent or other intellectual property rights of any other entity.
+ Each Contributor disclaims any liability to Recipient for claims
+ brought by any other entity based on infringement of intellectual
+ property rights or otherwise. As a condition to exercising the rights
+ and licenses granted hereunder, each Recipient hereby assumes sole
+ responsibility to secure any other intellectual property rights needed,
+ if any. For example, if a third party patent license is required to
+ allow Recipient to Distribute the Program, it is Recipient's
+ responsibility to acquire that license before distributing the Program.
+ </li>
+ <li>d) Each Contributor represents that to its knowledge it has sufficient
+ copyright rights in its Contribution, if any, to grant the copyright
+ license set forth in this Agreement.
+ </li>
+ <li>e) Notwithstanding the terms of any Secondary License, no Contributor
+ makes additional grants to any Recipient (other than those set forth
+ in this Agreement) as a result of such Recipient's receipt of the
+ Program under the terms of a Secondary License (if permitted under
+ the terms of Section 3).
+ </li>
+ </ul>
+ <h2 id="requirements">3. REQUIREMENTS</h2>
+ <p>3.1 If a Contributor Distributes the Program in any form, then:</p>
+ <ul>
+ <li>a) the Program must also be made available as Source Code, in
+ accordance with section 3.2, and the Contributor must accompany
+ the Program with a statement that the Source Code for the Program
+ is available under this Agreement, and informs Recipients how to
+ obtain it in a reasonable manner on or through a medium customarily
+ used for software exchange; and
+ </li>
+ <li>
+ b) the Contributor may Distribute the Program under a license
+ different than this Agreement, provided that such license:
+ <ul>
+ <li>i) effectively disclaims on behalf of all other Contributors all
+ warranties and conditions, express and implied, including warranties
+ or conditions of title and non-infringement, and implied warranties
+ or conditions of merchantability and fitness for a particular purpose;
+ </li>
+ <li>ii) effectively excludes on behalf of all other Contributors all
+ liability for damages, including direct, indirect, special, incidental
+ and consequential damages, such as lost profits;
+ </li>
+ <li>iii) does not attempt to limit or alter the recipients' rights in the
+ Source Code under section 3.2; and
+ </li>
+ <li>iv) requires any subsequent distribution of the Program by any party
+ to be under a license that satisfies the requirements of this section 3.
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <p>3.2 When the Program is Distributed as Source Code:</p>
+ <ul>
+ <li>a) it must be made available under this Agreement, or if the Program (i)
+ is combined with other material in a separate file or files made available
+ under a Secondary License, and (ii) the initial Contributor attached to
+ the Source Code the notice described in Exhibit A of this Agreement,
+ then the Program may be made available under the terms of such
+ Secondary Licenses, and
+ </li>
+ <li>b) a copy of this Agreement must be included with each copy of the Program.</li>
+ </ul>
+ <p>3.3 Contributors may not remove or alter any copyright, patent, trademark,
+ attribution notices, disclaimers of warranty, or limitations of liability
+ (‘notices’) contained within the Program from any copy of the Program which
+ they Distribute, provided that Contributors may add their own appropriate
+ notices.
+ </p>
+ <h2 id="commercial-distribution">4. COMMERCIAL DISTRIBUTION</h2>
+ <p>Commercial distributors of software may accept certain responsibilities
+ with respect to end users, business partners and the like. While this
+ license is intended to facilitate the commercial use of the Program, the
+ Contributor who includes the Program in a commercial product offering should
+ do so in a manner which does not create potential liability for other
+ Contributors. Therefore, if a Contributor includes the Program in a
+ commercial product offering, such Contributor (“Commercial Contributor”)
+ hereby agrees to defend and indemnify every other Contributor
+ (“Indemnified Contributor”) against any losses, damages and costs
+ (collectively “Losses”) arising from claims, lawsuits and other legal actions
+ brought by a third party against the Indemnified Contributor to the extent
+ caused by the acts or omissions of such Commercial Contributor in connection
+ with its distribution of the Program in a commercial product offering.
+ The obligations in this section do not apply to any claims or Losses relating
+ to any actual or alleged intellectual property infringement. In order to
+ qualify, an Indemnified Contributor must: a) promptly notify the
+ Commercial Contributor in writing of such claim, and b) allow the Commercial
+ Contributor to control, and cooperate with the Commercial Contributor in,
+ the defense and any related settlement negotiations. The Indemnified
+ Contributor may participate in any such claim at its own expense.
+ </p>
+ <p>For example, a Contributor might include the Program
+ in a commercial product offering, Product X. That Contributor is then a
+ Commercial Contributor. If that Commercial Contributor then makes performance
+ claims, or offers warranties related to Product X, those performance claims
+ and warranties are such Commercial Contributor's responsibility alone.
+ Under this section, the Commercial Contributor would have to defend claims
+ against the other Contributors related to those performance claims and
+ warranties, and if a court requires any other Contributor to pay any damages
+ as a result, the Commercial Contributor must pay those damages.
+ </p>
+ <h2 id="warranty">5. NO WARRANTY</h2>
+ <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
+ BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN “AS IS” BASIS, WITHOUT
+ WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+ WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is
+ solely responsible for determining the appropriateness of using and
+ distributing the Program and assumes all risks associated with its
+ exercise of rights under this Agreement, including but not limited to the
+ risks and costs of program errors, compliance with applicable laws, damage
+ to or loss of data, programs or equipment, and unavailability or
+ interruption of operations.
+ </p>
+ <h2 id="disclaimer">6. DISCLAIMER OF LIABILITY</h2>
+ <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
+ BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY
+ LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+ GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ </p>
+ <h2 id="general">7. GENERAL</h2>
+ <p>If any provision of this Agreement is invalid or unenforceable under
+ applicable law, it shall not affect the validity or enforceability of the
+ remainder of the terms of this Agreement, and without further action by the
+ parties hereto, such provision shall be reformed to the minimum extent
+ necessary to make such provision valid and enforceable.
+ </p>
+ <p>If Recipient institutes patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Program itself
+ (excluding combinations of the Program with other software or hardware)
+ infringes such Recipient's patent(s), then such Recipient's rights granted
+ under Section 2(b) shall terminate as of the date such litigation is filed.
+ </p>
+ <p>All Recipient's rights under this Agreement shall terminate if it fails to
+ comply with any of the material terms or conditions of this Agreement and
+ does not cure such failure in a reasonable period of time after becoming
+ aware of such noncompliance. If all Recipient's rights under this Agreement
+ terminate, Recipient agrees to cease use and distribution of the Program
+ as soon as reasonably practicable. However, Recipient's obligations under
+ this Agreement and any licenses granted by Recipient relating to the
+ Program shall continue and survive.
+ </p>
+ <p>Everyone is permitted to copy and distribute copies of this Agreement,
+ but in order to avoid inconsistency the Agreement is copyrighted and may
+ only be modified in the following manner. The Agreement Steward reserves
+ the right to publish new versions (including revisions) of this Agreement
+ from time to time. No one other than the Agreement Steward has the right
+ to modify this Agreement. The Eclipse Foundation is the initial Agreement
+ Steward. The Eclipse Foundation may assign the responsibility to serve as
+ the Agreement Steward to a suitable separate entity. Each new version of
+ the Agreement will be given a distinguishing version number. The Program
+ (including Contributions) may always be Distributed subject to the version
+ of the Agreement under which it was received. In addition, after a new
+ version of the Agreement is published, Contributor may elect to Distribute
+ the Program (including its Contributions) under the new version.
+ </p>
+ <p>Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
+ receives no rights or licenses to the intellectual property of any
+ Contributor under this Agreement, whether expressly, by implication,
+ estoppel or otherwise. All rights in the Program not expressly granted
+ under this Agreement are reserved. Nothing in this Agreement is intended
+ to be enforceable by any entity that is not a Contributor or Recipient.
+ No third-party beneficiary rights are created under this Agreement.
+ </p>
+ <h2 id="exhibit-a">Exhibit A – Form of Secondary Licenses Notice</h2>
+ <p>“This Source Code may also be made available under the following
+ Secondary Licenses when the conditions for such availability set forth
+ in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
+ version(s), and exceptions or additional permissions here}.”
+ </p>
+ <blockquote>
+ <p>Simply including a copy of this Agreement, including this Exhibit A
+ is not sufficient to license the Source Code under Secondary Licenses.
+ </p>
+ <p>If it is not possible or desirable to put the notice in a particular file,
+ then You may include the notice in a location (such as a LICENSE file in a
+ relevant directory) where a recipient would be likely to look for
+ such a notice.
+ </p>
+ <p>You may add additional accurate notices of copyright ownership.</p>
+ </blockquote>
+ </body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos.feature/notice.html b/org.eclipse.osbp.fork.jpos.feature/notice.html
new file mode 100644
index 0000000..81fca9d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos.feature/notice.html
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+ <h2>Eclipse Foundation Software User Agreement</h2>
+ <p>November 22, 2014</p>
+
+ <h3>Usage Of Content</h3>
+
+ <p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION,
+ INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+ (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY
+ THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+ CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
+ BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS
+ GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY
+ APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
+ BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS
+ AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE
+ AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT
+ USE THE CONTENT.</p>
+
+ <h3>Applicable Licenses</h3>
+
+ <p>
+ Unless otherwise indicated, all Content made available by the Eclipse
+ Foundation is provided to you under the terms and conditions of the
+ Eclipse Public License Version 2.0 ("EPL"). A copy of the
+ EPL is provided with this Content and is also available at <a
+ href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ For purposes of the EPL, "Program" will mean the Content.
+ </p>
+
+ <p>Content includes, but is not limited to, source code, object
+ code, documentation and other files maintained in the Eclipse
+ Foundation source code repository ("Repository") in software
+ modules ("Modules") and made available as downloadable
+ archives ("Downloads").</p>
+
+ <ul>
+ <li>Content may be structured and packaged into modules to
+ facilitate delivering, extending, and upgrading the Content. Typical
+ modules may include plug-ins ("Plug-ins"), plug-in
+ fragments ("Fragments"), and features
+ ("Features").</li>
+ <li>Each Plug-in or Fragment may be packaged as a sub-directory
+ or JAR (Java™ ARchive) in a directory named
+ "plugins".</li>
+ <li>A Feature is a bundle of one or more Plug-ins and/or
+ Fragments and associated material. Each Feature may be packaged as a
+ sub-directory in a directory named "features". Within a
+ Feature, files named "feature.xml" may contain a list of
+ the names and version numbers of the Plug-ins and/or Fragments
+ associated with that Feature.</li>
+ <li>Features may also include other Features ("Included
+ Features"). Within a Feature, files named
+ "feature.xml" may contain a list of the names and version
+ numbers of Included Features.</li>
+ </ul>
+
+ <p>The terms and conditions governing Plug-ins and Fragments should
+ be contained in files named "about.html"
+ ("Abouts"). The terms and conditions governing Features and
+ Included Features should be contained in files named
+ "license.html" ("Feature Licenses"). Abouts and
+ Feature Licenses may be located in any directory of a Download or
+ Module including, but not limited to the following locations:</p>
+
+ <ul>
+ <li>The top-level (root) directory</li>
+ <li>Plug-in and Fragment directories</li>
+ <li>Inside Plug-ins and Fragments packaged as JARs</li>
+ <li>Sub-directories of the directory named "src" of
+ certain Plug-ins</li>
+ <li>Feature directories</li>
+ </ul>
+
+ <p>Note: if a Feature made available by the Eclipse Foundation is
+ installed using the Provisioning Technology (as defined below), you
+ must agree to a license ("Feature Update License") during
+ the installation process. If the Feature contains Included Features,
+ the Feature Update License should either provide you with the terms
+ and conditions governing the Included Features or inform you where you
+ can locate them. Feature Update Licenses may be found in the
+ "license" property of files named
+ "feature.properties" found within a Feature. Such Abouts,
+ Feature Licenses, and Feature Update Licenses contain the terms and
+ conditions (or references to such terms and conditions) that govern
+ your use of the associated Content in that directory.</p>
+
+ <p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY
+ REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND
+ CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT
+ ARE NOT LIMITED TO):</p>
+
+ <ul>
+ <li>Eclipse Public License Version 1.0 (available at <a
+ href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>)
+ </li>
+ <li>Eclipse Distribution License Version 1.0 (available at <a
+ href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)
+ </li>
+ <li>Common Public License Version 1.0 (available at <a
+ href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)
+ </li>
+ <li>Apache Software License 1.1 (available at <a
+ href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)
+ </li>
+ <li>Apache Software License 2.0 (available at <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)
+ </li>
+ <li>Mozilla Public License Version 1.1 (available at <a
+ href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)
+ </li>
+ </ul>
+
+ <p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND
+ CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License,
+ or Feature Update License is provided, please contact the Eclipse
+ Foundation to determine what terms and conditions govern that
+ particular Content.</p>
+
+
+ <h3>Use of Provisioning Technology</h3>
+
+ <p>
+ The Eclipse Foundation makes available provisioning software, examples
+ of which include, but are not limited to, p2 and the Eclipse Update
+ Manager ("Provisioning Technology") for the purpose of
+ allowing users to install software, documentation, information and/or
+ other materials (collectively "Installable Software"). This
+ capability is provided with the intent of allowing such users to
+ install, extend and update Eclipse-based products. Information about
+ packaging Installable Software is available at <a
+ href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+ ("Specification").
+ </p>
+
+ <p>You may use Provisioning Technology to allow other parties to
+ install Installable Software. You shall be responsible for enabling
+ the applicable license agreements relating to the Installable Software
+ to be presented to, and accepted by, the users of the Provisioning
+ Technology in accordance with the Specification. By using Provisioning
+ Technology in such a manner and making it available in accordance with
+ the Specification, you further acknowledge your agreement to, and the
+ acquisition of all necessary rights to permit the following:</p>
+
+ <ol>
+ <li>A series of actions may occur ("Provisioning
+ Process") in which a user may execute the Provisioning
+ Technology on a machine ("Target Machine") with the intent
+ of installing, extending or updating the functionality of an
+ Eclipse-based product.</li>
+ <li>During the Provisioning Process, the Provisioning Technology
+ may cause third party Installable Software or a portion thereof to be
+ accessed and copied to the Target Machine.</li>
+ <li>Pursuant to the Specification, you will provide to the user
+ the terms and conditions that govern the use of the Installable
+ Software ("Installable Software Agreement") and such
+ Installable Software Agreement shall be accessed from the Target
+ Machine in accordance with the Specification. Such Installable
+ Software Agreement must inform the user of the terms and conditions
+ that govern the Installable Software and must solicit acceptance by
+ the end user in the manner prescribed in such Installable Software
+ Agreement. Upon such indication of agreement by the user, the
+ provisioning Technology will complete installation of the Installable
+ Software.</li>
+ </ol>
+
+ <h3>Cryptography</h3>
+
+ <p>Content may contain encryption software. The country in which
+ you are currently may have restrictions on the import, possession, and
+ use, and/or re-export to another country, of encryption software.
+ BEFORE using any encryption software, please check the country's laws,
+ regulations and policies concerning the import, possession, or use,
+ and re-export of encryption software, to see if this is permitted.</p>
+
+ <p>
+ <small>Java and all Java-based trademarks are trademarks of
+ Oracle Corporation in the United States, other countries, or both.</small>
+ </p>
+</body>
+</html>
diff --git a/org.eclipse.osbp.fork.jpos.feature/pom.xml b/org.eclipse.osbp.fork.jpos.feature/pom.xml
new file mode 100644
index 0000000..5388492
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos.feature/pom.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+#=======================================================================
+# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany).
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License 2.0 which is available at
+# http://www.eclipse.org/legal/epl-2.0.
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# Loetz GmbH&Co.KG - initial API and implementation
+#=======================================================================
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.eclipse.osbp.fork.jpos</groupId>
+ <artifactId>org.eclipse.osbp.fork.jpos.aggregator</artifactId>
+ <version>1.14.0-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>org.eclipse.osbp.fork.jpos.feature</artifactId>
+ <packaging>eclipse-feature</packaging>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.tycho.extras</groupId>
+ <artifactId>tycho-source-feature-plugin</artifactId>
+ <version>${tychoExtrasVersion}</version>
+ <executions>
+ <execution>
+ <id>source-feature</id>
+ <phase>package</phase>
+ <goals>
+ <goal>source-feature</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <labelSuffix> (source)</labelSuffix>
+ </configuration>
+ </plugin>
+ <plugin>
+ <!-- workaround while bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=398250
+ is not fixed -->
+ <groupId>org.eclipse.tycho</groupId>
+ <artifactId>tycho-p2-plugin</artifactId>
+ <version>${tycho-version}</version>
+ <executions>
+ <execution>
+ <id>attached-p2-metadata</id>
+ <phase>package</phase>
+ <goals>
+ <goal>p2-metadata</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>javadoc-jar</id>
+ <phase>package</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.osbp.fork.jpos</groupId>
+ <artifactId>org.eclipse.osbp.fork.jpos</artifactId>
+ <version>${project.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+</project>
diff --git a/org.eclipse.osbp.fork.jpos.feature/src/main/javadoc/README.txt b/org.eclipse.osbp.fork.jpos.feature/src/main/javadoc/README.txt
new file mode 100644
index 0000000..831da7e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos.feature/src/main/javadoc/README.txt
@@ -0,0 +1 @@
+Resource folder for javadoc resources.
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos.feature/src/overview.html b/org.eclipse.osbp.fork.jpos.feature/src/overview.html
new file mode 100644
index 0000000..06b85d6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos.feature/src/overview.html
@@ -0,0 +1,9 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<html>
+<head>
+ <title>OSBP fork.jpos</title>
+</head>
+<body>
+<p>The <strong>OSBP fork.jpos</strong> provides bundles for the OSBP fork.jpos functionality.</p>
+</body>
+</html>
diff --git a/org.eclipse.osbp.fork.jpos/.classpath b/org.eclipse.osbp.fork.jpos/.classpath
new file mode 100644
index 0000000..cf36b56
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/.classpath
@@ -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.8"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+ <classpathentry kind="src" path="src/"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
diff --git a/org.eclipse.osbp.fork.jpos/.gitignore b/org.eclipse.osbp.fork.jpos/.gitignore
new file mode 100644
index 0000000..92145bc
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/.gitignore
@@ -0,0 +1,2 @@
+/bin/
+/target/
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/.project b/org.eclipse.osbp.fork.jpos/.project
new file mode 100644
index 0000000..dad8a60
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/.project
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.osbp.fork.jpos</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <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>
+ <buildCommand>
+ <name>org.eclipse.pde.ds.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.babel.editor.rbeBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.sonarlint.eclipse.core.sonarlintBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.babel.editor.rbeNature</nature>
+ </natures>
+</projectDescription>
diff --git a/org.eclipse.osbp.fork.jpos/.settings/com.vaadin.integration.eclipse.prefs b/org.eclipse.osbp.fork.jpos/.settings/com.vaadin.integration.eclipse.prefs
new file mode 100644
index 0000000..e1173bc
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/.settings/com.vaadin.integration.eclipse.prefs
@@ -0,0 +1,2 @@
+com.vaadin.integration.eclipse.previousCompileAction=widgetset
+eclipse.preferences.version=1
diff --git a/org.eclipse.osbp.fork.jpos/.settings/org.eclipse.bpmn2.modeler.core.prefs b/org.eclipse.osbp.fork.jpos/.settings/org.eclipse.bpmn2.modeler.core.prefs
new file mode 100644
index 0000000..4bffcea
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/.settings/org.eclipse.bpmn2.modeler.core.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+target.runtime=org.jboss.runtime.jbpm5
diff --git a/org.eclipse.osbp.fork.jpos/.settings/org.eclipse.core.resources.prefs b/org.eclipse.osbp.fork.jpos/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.osbp.fork.jpos/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.osbp.fork.jpos/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..a698e59
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,12 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
diff --git a/org.eclipse.osbp.fork.jpos/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.osbp.fork.jpos/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/org.eclipse.osbp.fork.jpos/.settings/org.eclipse.pde.core.prefs b/org.eclipse.osbp.fork.jpos/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 0000000..f29e940
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+pluginProject.extensions=false
+resolve.requirebundle=false
diff --git a/org.eclipse.osbp.fork.jpos/.settings/org.eclipse.xtend.core.Xtend.prefs b/org.eclipse.osbp.fork.jpos/.settings/org.eclipse.xtend.core.Xtend.prefs
new file mode 100644
index 0000000..0933f8c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/.settings/org.eclipse.xtend.core.Xtend.prefs
@@ -0,0 +1,10 @@
+//outlet.DEFAULT_OUTPUT.sourceFolder.src/test/java.directory=src/test/generated-sources/xtend
+eclipse.preferences.version=1
+is_project_specific=true
+outlet.DEFAULT_OUTPUT.hideLocalSyntheticVariables=true
+outlet.DEFAULT_OUTPUT.installDslAsPrimarySource=false
+outlet.DEFAULT_OUTPUT.sourceFolder.emf-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.src.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.sourceFolder.xtend-gen.directory=xtend-gen
+outlet.DEFAULT_OUTPUT.userOutputPerSourceFolder=true
diff --git a/org.eclipse.osbp.fork.jpos/LICENSE.txt b/org.eclipse.osbp.fork.jpos/LICENSE.txt
new file mode 100644
index 0000000..e23ece2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/LICENSE.txt
@@ -0,0 +1,277 @@
+Eclipse Public License - v 2.0
+
+ THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+ PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION
+ OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+ a) in the case of the initial Contributor, the initial content
+ Distributed under this Agreement, and
+
+ b) in the case of each subsequent Contributor:
+ i) changes to the Program, and
+ ii) additions to the Program;
+ where such changes and/or additions to the Program originate from
+ and are Distributed by that particular Contributor. A Contribution
+ "originates" from a Contributor if it was added to the Program by
+ such Contributor itself or anyone acting on such Contributor's behalf.
+ Contributions do not include changes or additions to the Program that
+ are not Modified Works.
+
+"Contributor" means any person or entity that Distributes the Program.
+
+"Licensed Patents" mean patent claims licensable by a Contributor which
+are necessarily infringed by the use or sale of its Contribution alone
+or when combined with the Program.
+
+"Program" means the Contributions Distributed in accordance with this
+Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement
+or any Secondary License (as applicable), including Contributors.
+
+"Derivative Works" shall mean any work, whether in Source Code or other
+form, that is based on (or derived from) the Program and for which the
+editorial revisions, annotations, elaborations, or other modifications
+represent, as a whole, an original work of authorship.
+
+"Modified Works" shall mean any work in Source Code or other form that
+results from an addition to, deletion from, or modification of the
+contents of the Program, including, for purposes of clarity any new file
+in Source Code form that contains any contents of the Program. Modified
+Works shall not include works that contain only declarations,
+interfaces, types, classes, structures, or files of the Program solely
+in each case in order to link to, bind by name, or subclass the Program
+or Modified Works thereof.
+
+"Distribute" means the acts of a) distributing or b) making available
+in any manner that enables the transfer of a copy.
+
+"Source Code" means the form of a Program preferred for making
+modifications, including but not limited to software source code,
+documentation source, and configuration files.
+
+"Secondary License" means either the GNU General Public License,
+Version 2.0, or any later versions of that license, including any
+exceptions or additional permissions as identified by the initial
+Contributor.
+
+2. GRANT OF RIGHTS
+
+ a) Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free copyright
+ license to reproduce, prepare Derivative Works of, publicly display,
+ publicly perform, Distribute and sublicense the Contribution of such
+ Contributor, if any, and such Derivative Works.
+
+ b) Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free patent
+ license under Licensed Patents to make, use, sell, offer to sell,
+ import and otherwise transfer the Contribution of such Contributor,
+ if any, in Source Code or other form. This patent license shall
+ apply to the combination of the Contribution and the Program if, at
+ the time the Contribution is added by the Contributor, such addition
+ of the Contribution causes such combination to be covered by the
+ Licensed Patents. The patent license shall not apply to any other
+ combinations which include the Contribution. No hardware per se is
+ licensed hereunder.
+
+ c) Recipient understands that although each Contributor grants the
+ licenses to its Contributions set forth herein, no assurances are
+ provided by any Contributor that the Program does not infringe the
+ patent or other intellectual property rights of any other entity.
+ Each Contributor disclaims any liability to Recipient for claims
+ brought by any other entity based on infringement of intellectual
+ property rights or otherwise. As a condition to exercising the
+ rights and licenses granted hereunder, each Recipient hereby
+ assumes sole responsibility to secure any other intellectual
+ property rights needed, if any. For example, if a third party
+ patent license is required to allow Recipient to Distribute the
+ Program, it is Recipient's responsibility to acquire that license
+ before distributing the Program.
+
+ d) Each Contributor represents that to its knowledge it has
+ sufficient copyright rights in its Contribution, if any, to grant
+ the copyright license set forth in this Agreement.
+
+ e) Notwithstanding the terms of any Secondary License, no
+ Contributor makes additional grants to any Recipient (other than
+ those set forth in this Agreement) as a result of such Recipient's
+ receipt of the Program under the terms of a Secondary License
+ (if permitted under the terms of Section 3).
+
+3. REQUIREMENTS
+
+3.1 If a Contributor Distributes the Program in any form, then:
+
+ a) the Program must also be made available as Source Code, in
+ accordance with section 3.2, and the Contributor must accompany
+ the Program with a statement that the Source Code for the Program
+ is available under this Agreement, and informs Recipients how to
+ obtain it in a reasonable manner on or through a medium customarily
+ used for software exchange; and
+
+ b) the Contributor may Distribute the Program under a license
+ different than this Agreement, provided that such license:
+ i) effectively disclaims on behalf of all other Contributors all
+ warranties and conditions, express and implied, including
+ warranties or conditions of title and non-infringement, and
+ implied warranties or conditions of merchantability and fitness
+ for a particular purpose;
+
+ ii) effectively excludes on behalf of all other Contributors all
+ liability for damages, including direct, indirect, special,
+ incidental and consequential damages, such as lost profits;
+
+ iii) does not attempt to limit or alter the recipients' rights
+ in the Source Code under section 3.2; and
+
+ iv) requires any subsequent distribution of the Program by any
+ party to be under a license that satisfies the requirements
+ of this section 3.
+
+3.2 When the Program is Distributed as Source Code:
+
+ a) it must be made available under this Agreement, or if the
+ Program (i) is combined with other material in a separate file or
+ files made available under a Secondary License, and (ii) the initial
+ Contributor attached to the Source Code the notice described in
+ Exhibit A of this Agreement, then the Program may be made available
+ under the terms of such Secondary Licenses, and
+
+ b) a copy of this Agreement must be included with each copy of
+ the Program.
+
+3.3 Contributors may not remove or alter any copyright, patent,
+trademark, attribution notices, disclaimers of warranty, or limitations
+of liability ("notices") contained within the Program from any copy of
+the Program which they Distribute, provided that Contributors may add
+their own appropriate notices.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities
+with respect to end users, business partners and the like. While this
+license is intended to facilitate the commercial use of the Program,
+the Contributor who includes the Program in a commercial product
+offering should do so in a manner which does not create potential
+liability for other Contributors. Therefore, if a Contributor includes
+the Program in a commercial product offering, such Contributor
+("Commercial Contributor") hereby agrees to defend and indemnify every
+other Contributor ("Indemnified Contributor") against any losses,
+damages and costs (collectively "Losses") arising from claims, lawsuits
+and other legal actions brought by a third party against the Indemnified
+Contributor to the extent caused by the acts or omissions of such
+Commercial Contributor in connection with its distribution of the Program
+in a commercial product offering. The obligations in this section do not
+apply to any claims or Losses relating to any actual or alleged
+intellectual property infringement. In order to qualify, an Indemnified
+Contributor must: a) promptly notify the Commercial Contributor in
+writing of such claim, and b) allow the Commercial Contributor to control,
+and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may
+participate in any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial
+product offering, Product X. That Contributor is then a Commercial
+Contributor. If that Commercial Contributor then makes performance
+claims, or offers warranties related to Product X, those performance
+claims and warranties are such Commercial Contributor's responsibility
+alone. Under this section, the Commercial Contributor would have to
+defend claims against the other Contributors related to those performance
+claims and warranties, and if a court requires any other Contributor to
+pay any damages as a result, the Commercial Contributor must pay
+those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
+PERMITTED BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN "AS IS"
+BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF
+TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
+PURPOSE. Each Recipient is solely responsible for determining the
+appropriateness of using and distributing the Program and assumes all
+risks associated with its exercise of rights under this Agreement,
+including but not limited to the risks and costs of program errors,
+compliance with applicable laws, damage to or loss of data, programs
+or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT
+PERMITTED BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS
+SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE
+EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under
+applicable law, it shall not affect the validity or enforceability of
+the remainder of the terms of this Agreement, and without further
+action by the parties hereto, such provision shall be reformed to the
+minimum extent necessary to make such provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity
+(including a cross-claim or counterclaim in a lawsuit) alleging that the
+Program itself (excluding combinations of the Program with other software
+or hardware) infringes such Recipient's patent(s), then such Recipient's
+rights granted under Section 2(b) shall terminate as of the date such
+litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it
+fails to comply with any of the material terms or conditions of this
+Agreement and does not cure such failure in a reasonable period of
+time after becoming aware of such noncompliance. If all Recipient's
+rights under this Agreement terminate, Recipient agrees to cease use
+and distribution of the Program as soon as reasonably practicable.
+However, Recipient's obligations under this Agreement and any licenses
+granted by Recipient relating to the Program shall continue and survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement,
+but in order to avoid inconsistency the Agreement is copyrighted and
+may only be modified in the following manner. The Agreement Steward
+reserves the right to publish new versions (including revisions) of
+this Agreement from time to time. No one other than the Agreement
+Steward has the right to modify this Agreement. The Eclipse Foundation
+is the initial Agreement Steward. The Eclipse Foundation may assign the
+responsibility to serve as the Agreement Steward to a suitable separate
+entity. Each new version of the Agreement will be given a distinguishing
+version number. The Program (including Contributions) may always be
+Distributed subject to the version of the Agreement under which it was
+received. In addition, after a new version of the Agreement is published,
+Contributor may elect to Distribute the Program (including its
+Contributions) under the new version.
+
+Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
+receives no rights or licenses to the intellectual property of any
+Contributor under this Agreement, whether expressly, by implication,
+estoppel or otherwise. All rights in the Program not expressly granted
+under this Agreement are reserved. Nothing in this Agreement is intended
+to be enforceable by any entity that is not a Contributor or Recipient.
+No third-party beneficiary rights are created under this Agreement.
+
+Exhibit A - Form of Secondary Licenses Notice
+
+"This Source Code may also be made available under the following
+Secondary Licenses when the conditions for such availability set forth
+in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
+version(s), and exceptions or additional permissions here}."
+
+ Simply including a copy of this Agreement, including this Exhibit A
+ is not sufficient to license the Source Code under Secondary Licenses.
+
+ If it is not possible or desirable to put the notice in a particular
+ file, then You may include the notice in a location (such as a LICENSE
+ file in a relevant directory) where a recipient would be likely to
+ look for such a notice.
+
+ You may add additional accurate notices of copyright ownership.
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/META-INF/MANIFEST.MF b/org.eclipse.osbp.fork.jpos/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..e66dbab
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/META-INF/MANIFEST.MF
@@ -0,0 +1,29 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Jpos
+Bundle-SymbolicName: org.eclipse.osbp.fork.jpos
+Bundle-Version: 1.14.0.qualifier
+DynamicImport-Package: *
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: org.apache.xerces;bundle-version="2.9.0",
+ org.eclipse.osgi,
+ org.eclipse.persistence.core
+Export-Package: jpos,
+ jpos.config,
+ jpos.config.simple,
+ jpos.config.simple.xml,
+ jpos.epson,
+ jpos.events,
+ jpos.loader,
+ jpos.loader.simple,
+ jpos.profile,
+ jpos.services,
+ jpos.util,
+ jpos.util.tracing
+Bundle-ActivationPolicy: lazy
+Import-Package: org.eclipse.core.internal.events,
+ org.osgi.service.component.annotations;version="1.2.0",
+ org.slf4j
+Bundle-Activator: jpos.Activator
+Service-Component: OSGI-INF/*.xml
+Bundle-Vendor: Eclipse OSBP
diff --git a/org.eclipse.osbp.fork.jpos/OSGI-INF/jpos.loader.JposServiceBinder.xml b/org.eclipse.osbp.fork.jpos/OSGI-INF/jpos.loader.JposServiceBinder.xml
new file mode 100644
index 0000000..688c057
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/OSGI-INF/jpos.loader.JposServiceBinder.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="jpos.loader.JposServiceBinder">
+ <reference bind="bindFactoryService" cardinality="0..n" interface="jpos.loader.JposServiceInstanceFactory" name="FactoryService" policy="dynamic" unbind="unbindFactoryService"/>
+ <implementation class="jpos.loader.JposServiceBinder"/>
+</scr:component>
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/about.html b/org.eclipse.osbp.fork.jpos/about.html
new file mode 100644
index 0000000..2e00d7e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/about.html
@@ -0,0 +1,80 @@
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>About</title>
+</head>
+<body lang="EN-US">
+ <h2>About This Content</h2>
+
+ <p>
+ November 30, 2017
+ </p>
+ <h3>License</h3>
+
+ <p>
+ The Eclipse Foundation makes available all content in this plug-in
+ ("Content"). Unless otherwise indicated below, the Content
+ is provided to you under the terms and conditions of the Eclipse
+ Public License Version 2.0 ("EPL"). A copy of the EPL is
+ available at <a href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ For purposes of the EPL, "Program" will mean the Content.
+ </p>
+
+ <p>
+ If you did not receive this Content directly from the Eclipse
+ Foundation, the Content is being redistributed by another party
+ ("Redistributor") and different terms and conditions may
+ apply to your use of any object code in the Content. Check the
+ Redistributor's license that was provided with the Content. If no such
+ license exists, contact the Redistributor. Unless otherwise indicated
+ below, the terms and conditions of the EPL still apply to any source
+ code in the Content and such source code may be obtained at <a
+ href="http://www.eclipse.org/">http://www.eclipse.org</a>.
+ </p>
+
+
+ <h3>Third Party Content</h3>
+ <p>The Content includes items that have been sourced from third
+ parties as set out below. If you did not receive this Content directly
+ from the Eclipse Foundation, the following is provided for
+ informational purposes only, and you should look to the
+ Redistributor's license for terms and conditions of use.</p>
+
+ <h4>JavaPOS 1.14.0</h4>
+ <p>Developed by a joint effort of leading retailers, hardware companies and software companies,
+ the JavaPOS specification was the first technical standard to be endorsed by the National Retail Federation.
+ It includes hardware vendors: Sun Microsystems, IBM, NCR, Epson, Fujitsu, Ultimate Technology, Star and Wincor Nixdorf;
+ retailers: Home Depot, JC Penney, Kmart and Sears; and software companies: PCMS Datafit, RCS, Triversity, BearingPoint,
+ 360Commerce, and many others.<br>
+ <br>
+ The NRF and its members, including the companies that display logos here, are embracing JavaPOS as a standard because
+ this platform-independent technology can help ensure that point-of-sale environments-from existing POS terminals to
+ emerging platforms including portable devices, the Web and smart cards-can communicate and share applications.
+ Because Java applications can run on a wide variety of systems and devices-from telephony to POS to retail
+ enterprise host systems-this technology holds great promise for the retail industry as it moves into its new
+ generation of fully open solutions. <br>
+ <br>
+ <a href="http://www.javapos.org/">http://www.javapos.org/</a><br>
+ <br>
+ OSBP added OSGi capabilities to the bundle to make it work in an Eclipse based application.<br>
+ <br>
+ <h5>License</h5>
+ <p>
+ This software is provided "AS IS". The JavaPOS working group (including
+ each of the Corporate members, contributors and individuals) MAKES NO
+ REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+ EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+ any damages suffered as a result of using, modifying or distributing this
+ software or its derivatives. Permission to use, copy, modify, and distribute
+ the software and its documentation for any purpose is hereby granted. <br>
+ <br>
+ <a href="about_files/LICENSE.txt">LICENSE.TXT</a>
+ </p>
+
+</body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/about.ini b/org.eclipse.osbp.fork.jpos/about.ini
new file mode 100644
index 0000000..7df671f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/about.ini
@@ -0,0 +1,17 @@
+# about.ini
+# contains information about a feature
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# "%key" are externalized strings defined in about.properties
+# This file does not need to be translated.
+
+# Property "aboutText" contains blurb for "About" dialog (translated)
+aboutText=%featureText
+
+# Property "featureImage" contains path to feature image (32x32)
+featureImage=
+
+# Property "appName" contains name of the application (translated)
+appName=%featureName
+
+# Property "welcomePage" contains path to welcome page (special XML-based format)
+welcomePage=
diff --git a/org.eclipse.osbp.fork.jpos/about.mappings b/org.eclipse.osbp.fork.jpos/about.mappings
new file mode 100644
index 0000000..4511a0a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/about.mappings
@@ -0,0 +1,6 @@
+# about.mappings
+# contains fill-ins for about.properties
+# java.io.Properties file (ISO 8859-1 with "\" escapes)
+# This file does not need to be translated.
+
+0=qualifier
diff --git a/org.eclipse.osbp.fork.jpos/about.properties b/org.eclipse.osbp.fork.jpos/about.properties
new file mode 100644
index 0000000..9ef2da4
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/about.properties
@@ -0,0 +1,38 @@
+#
+# Copyright (c) 2012, 2016 - Loetz GmbH&Co.KG (Heidelberg)
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+# Loetz GmbH&Co - initial API and implementation
+#
+
+# NLS_MESSAGEFORMAT_VAR
+
+featureName=fork.jpos
+
+################ blurb property ####################################
+featureText=\
+Copyright (c) 2012-2016 - Loetz GmbH&Co.KG \n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+ Loetz GmbH&Co - implementation\n
+\n\
+The included JavaPOS code is licensed as follows:\n\
+* This software is provided "AS IS". The JavaPOS working group (including\n\
+* each of the Corporate members, contributors and individuals) MAKES NO\n\
+* REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,\n\
+* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED\n\
+* WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n\
+* NON-INFRINGEMENT. The JavaPOS working group shall not be liable for\n\
+* any damages suffered as a result of using, modifying or distributing this\n\
+* software or its derivatives.Permission to use, copy, modify, and distribute\n\
+* the software and its documentation for any purpose is hereby granted.\n\
+\n
+################ end of blurb property ####################################
diff --git a/org.eclipse.osbp.fork.jpos/about_files/LICENSE.txt b/org.eclipse.osbp.fork.jpos/about_files/LICENSE.txt
new file mode 100644
index 0000000..ea84b8a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/about_files/LICENSE.txt
@@ -0,0 +1,225 @@
+Common Public License (CPL) -- V1.0
+
+03 May 2005
+Updated 16 Apr 2009
+
+As of 25 Feb 2009, IBM has assigned the Agreement Steward role for the
+CPL to the Eclipse Foundation. Eclipse has designated the Eclipse Public
+License (EPL) as the follow-on version of the CPL.
+
+
+Eclipse Foundation CPL
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON
+PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF
+THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+ 1. DEFINITIONS
+ "Contribution" means:
+
+ a. in the case of the initial Contributor, the initial code and
+ documentation distributed under this Agreement, and
+ b. in the case of each subsequent Contributor:
+ i. changes to the Program, and
+ ii. additions to the Program;
+ where such changes and/or additions to the Program originate from
+ and are distributed by that particular Contributor. A Contribution
+ 'originates' from a Contributor if it was added to the Program by
+ such Contributor itself or anyone acting on such Contributor's
+ behalf. Contributions do not include additions to the Program which:
+ (i) are separate modules of software distributed in conjunction with
+ the Program under their own license agreement, and (ii) are not
+ derivative works of the Program.
+ "Contributor" means any person or entity that distributes the Program.
+ "Licensed Patents " mean patent claims licensable by a Contributor
+ which are necessarily infringed by the use or sale of its
+ Contribution alone or when combined with the Program.
+ "Program" means the Contributions distributed in accordance with
+ this Agreement.
+ "Recipient" means anyone who receives the Program under this
+ Agreement, including all Contributors.
+
+ 2. GRANT OF RIGHTS
+ a. Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free copyright
+ license to reproduce, prepare derivative works of, publicly display,
+ publicly perform, distribute and sublicense the Contribution of such
+ Contributor, if any, and such derivative works, in source code and
+ object code form.
+
+ b. Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free patent
+ license under Licensed Patents to make, use, sell, offer to sell,
+ import and otherwise transfer the Contribution of such Contributor,
+ if any, in source code and object code form. This patent license
+ shall apply to the combination of the Contribution and the Program
+ if, at the time the Contribution is added by the Contributor, such
+ addition of the Contribution causes such combination to be covered
+ by the Licensed Patents. The patent license shall not apply to any
+ other combinations which include the Contribution. No hardware per
+ se is licensed hereunder.
+
+ c. Recipient understands that although each Contributor grants the
+ licenses to its Contributions set forth herein, no assurances are
+ provided by any Contributor that the Program does not infringe the
+ patent or other intellectual property rights of any other entity.
+ Each Contributor disclaims any liability to Recipient for claims
+ brought by any other entity based on infringement of intellectual
+ property rights or otherwise. As a condition to exercising the
+ rights and licenses granted hereunder, each Recipient hereby assumes
+ sole responsibility to secure any other intellectual property rights
+ needed, if any. For example, if a third party patent license is
+ required to allow Recipient to distribute the Program, it is
+ Recipient's responsibility to acquire that license before
+ distributing the Program.
+
+ d. Each Contributor represents that to its knowledge it has
+ sufficient copyright rights in its Contribution, if any, to grant
+ the copyright license set forth in this Agreement.
+
+ 3. REQUIREMENTS
+ A Contributor may choose to distribute the Program in object code
+ form under its own license agreement, provided that:
+
+ a. it complies with the terms and conditions of this Agreement; and
+ b. its license agreement:
+ i. effectively disclaims on behalf of all Contributors all
+ warranties and conditions, express and implied, including warranties
+ or conditions of title and non-infringement, and implied warranties
+ or conditions of merchantability and fitness for a particular purpose;
+ ii. effectively excludes on behalf of all Contributors all liability
+ for damages, including direct, indirect, special, incidental and
+ consequential damages, such as lost profits;
+ iii. states that any provisions which differ from this Agreement are
+ offered by that Contributor alone and not by any other party; and
+ iv. states that source code for the Program is available from such
+ Contributor, and informs licensees how to obtain it in a reasonable
+ manner on or through a medium customarily used for software exchange.
+
+ When the Program is made available in source code form:
+
+ a. it must be made available under this Agreement; and
+ b. a copy of this Agreement must be included with each copy of the
+ Program.
+
+ Contributors may not remove or alter any copyright notices contained
+ within the Program.
+
+ Each Contributor must identify itself as the originator of its
+ Contribution, if any, in a manner that reasonably allows subsequent
+ Recipients to identify the originator of the Contribution.
+
+ 4. COMMERCIAL DISTRIBUTION
+ Commercial distributors of software may accept certain
+ responsibilities with respect to end users, business partners and
+ the like. While this license is intended to facilitate the
+ commercial use of the Program, the Contributor who includes the
+ Program in a commercial product offering should do so in a manner
+ which does not create potential liability for other Contributors.
+ Therefore, if a Contributor includes the Program in a commercial
+ product offering, such Contributor ("Commercial Contributor") hereby
+ agrees to defend and indemnify every other Contributor ("Indemnified
+ Contributor") against any losses, damages and costs (collectively
+ "Losses") arising from claims, lawsuits and other legal actions
+ brought by a third party against the Indemnified Contributor to the
+ extent caused by the acts or omissions of such Commercial
+ Contributor in connection with its distribution of the Program in a
+ commercial product offering. The obligations in this section do not
+ apply to any claims or Losses relating to any actual or alleged
+ intellectual property infringement. In order to qualify, an
+ Indemnified Contributor must: a) promptly notify the Commercial
+ Contributor in writing of such claim, and b) allow the Commercial
+ Contributor to control, and cooperate with the Commercial
+ Contributor in, the defense and any related settlement negotiations.
+ The Indemnified Contributor may participate in any such claim at its
+ own expense.
+
+ For example, a Contributor might include the Program in a commercial
+ product offering, Product X. That Contributor is then a Commercial
+ Contributor. If that Commercial Contributor then makes performance
+ claims, or offers warranties related to Product X, those performance
+ claims and warranties are such Commercial Contributor's
+ responsibility alone. Under this section, the Commercial Contributor
+ would have to defend claims against the other Contributors related
+ to those performance claims and warranties, and if a court requires
+ any other Contributor to pay any damages as a result, the Commercial
+ Contributor must pay those damages.
+
+ 5. NO WARRANTY
+ EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS
+ PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
+ ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION,
+ ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient
+ is solely responsible for determining the appropriateness of using
+ and distributing the Program and assumes all risks associated with
+ its exercise of rights under this Agreement, including but not
+ limited to the risks and costs of program errors, compliance with
+ applicable laws, damage to or loss of data, programs or equipment,
+ and unavailability or interruption of operations.
+
+ 6. DISCLAIMER OF LIABILITY
+ EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT
+ NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+ TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
+ THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+ GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+ 7. GENERAL
+ If any provision of this Agreement is invalid or unenforceable under
+ applicable law, it shall not affect the validity or enforceability
+ of the remainder of the terms of this Agreement, and without further
+ action by the parties hereto, such provision shall be reformed to
+ the minimum extent necessary to make such provision valid and
+ enforceable.
+
+ If Recipient institutes patent litigation against a Contributor with
+ respect to a patent applicable to software (including a cross-claim
+ or counterclaim in a lawsuit), then any patent licenses granted by
+ that Contributor to such Recipient under this Agreement shall
+ terminate as of the date such litigation is filed. In addition, if
+ Recipient institutes patent litigation against any entity (including
+ a cross-claim or counterclaim in a lawsuit) alleging that the
+ Program itself (excluding combinations of the Program with other
+ software or hardware) infringes such Recipient's patent(s), then
+ such Recipient's rights granted under Section 2(b) shall terminate
+ as of the date such litigation is filed.
+
+ All Recipient's rights under this Agreement shall terminate if it
+ fails to comply with any of the material terms or conditions of this
+ Agreement and does not cure such failure in a reasonable period of
+ time after becoming aware of such noncompliance. If all Recipient's
+ rights under this Agreement terminate, Recipient agrees to cease use
+ and distribution of the Program as soon as reasonably practicable.
+ However, Recipient's obligations under this Agreement and any
+ licenses granted by Recipient relating to the Program shall continue
+ and survive.
+
+ Everyone is permitted to copy and distribute copies of this
+ Agreement, but in order to avoid inconsistency the Agreement is
+ copyrighted and may only be modified in the following manner. The
+ Agreement Steward reserves the right to publish new versions
+ (including revisions) of this Agreement from time to time. No one
+ other than the Agreement Steward has the right to modify this
+ Agreement. IBM is the initial Agreement Steward. IBM may assign the
+ responsibility to serve as the Agreement Steward to a suitable
+ separate entity. Each new version of the Agreement will be given a
+ distinguishing version number. The Program (including Contributions)
+ may always be distributed subject to the version of the Agreement
+ under which it was received. In addition, after a new version of the
+ Agreement is published, Contributor may elect to distribute the
+ Program (including its Contributions) under the new version. Except
+ as expressly stated in Sections 2(a) and 2(b) above, Recipient
+ receives no rights or licenses to the intellectual property of any
+ Contributor under this Agreement, whether expressly, by implication,
+ estoppel or otherwise. All rights in the Program not expressly
+ granted under this Agreement are reserved.
+
+ This Agreement is governed by the laws of the State of New York and
+ the intellectual property laws of the United States of America. No
+ party to this Agreement will bring a legal action under this
+ Agreement more than one year after the cause of action arose. Each
+ party waives its rights to a jury trial in any resulting litigation.
diff --git a/org.eclipse.osbp.fork.jpos/build.properties b/org.eclipse.osbp.fork.jpos/build.properties
new file mode 100644
index 0000000..3b37cfb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/build.properties
@@ -0,0 +1,26 @@
+output.. = target/classes/
+bin.includes = META-INF/,\
+ .,\
+ OSGI-INF/,\
+ .classpath,\
+ .project,\
+ .settings/,\
+ about.html,\
+ about.ini,\
+ about.mappings,\
+ about.properties,\
+ about_files/,\
+ notice.html,\
+ license.html,\
+ LICENSE.txt,\
+ epl-v20.html
+src.includes = license.html,\
+ LICENSE.txt,\
+ about.html,\
+ about.ini,\
+ about.mappings,\
+ about.properties,\
+ about_files/,\
+ notice.html,\
+ epl-v20.html
+source.. = src/
diff --git a/org.eclipse.osbp.fork.jpos/epl-v20.html b/org.eclipse.osbp.fork.jpos/epl-v20.html
new file mode 100644
index 0000000..637a181
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/epl-v20.html
@@ -0,0 +1,300 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>Eclipse Public License - Version 2.0</title>
+ <style type="text/css">
+ body {
+ margin: 1.5em 3em;
+ }
+ h1{
+ font-size:1.5em;
+ }
+ h2{
+ font-size:1em;
+ margin-bottom:0.5em;
+ margin-top:1em;
+ }
+ p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ }
+ ul, ol{
+ list-style-type:none;
+ }
+ </style>
+ </head>
+ <body>
+ <h1>Eclipse Public License - v 2.0</h1>
+ <p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+ PUBLIC LICENSE (“AGREEMENT”). ANY USE, REPRODUCTION OR DISTRIBUTION
+ OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ </p>
+ <h2 id="definitions">1. DEFINITIONS</h2>
+ <p>“Contribution” means:</p>
+ <ul>
+ <li>a) in the case of the initial Contributor, the initial content
+ Distributed under this Agreement, and
+ </li>
+ <li>
+ b) in the case of each subsequent Contributor:
+ <ul>
+ <li>i) changes to the Program, and</li>
+ <li>ii) additions to the Program;</li>
+ </ul>
+ where such changes and/or additions to the Program originate from
+ and are Distributed by that particular Contributor. A Contribution
+ “originates” from a Contributor if it was added to the Program by such
+ Contributor itself or anyone acting on such Contributor's behalf.
+ Contributions do not include changes or additions to the Program that
+ are not Modified Works.
+ </li>
+ </ul>
+ <p>“Contributor” means any person or entity that Distributes the Program.</p>
+ <p>“Licensed Patents” mean patent claims licensable by a Contributor which
+ are necessarily infringed by the use or sale of its Contribution alone
+ or when combined with the Program.
+ </p>
+ <p>“Program” means the Contributions Distributed in accordance with this
+ Agreement.
+ </p>
+ <p>“Recipient” means anyone who receives the Program under this Agreement
+ or any Secondary License (as applicable), including Contributors.
+ </p>
+ <p>“Derivative Works” shall mean any work, whether in Source Code or other
+ form, that is based on (or derived from) the Program and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship.
+ </p>
+ <p>“Modified Works” shall mean any work in Source Code or other form that
+ results from an addition to, deletion from, or modification of the
+ contents of the Program, including, for purposes of clarity any new file
+ in Source Code form that contains any contents of the Program. Modified
+ Works shall not include works that contain only declarations, interfaces,
+ types, classes, structures, or files of the Program solely in each case
+ in order to link to, bind by name, or subclass the Program or Modified
+ Works thereof.
+ </p>
+ <p>“Distribute” means the acts of a) distributing or b) making available
+ in any manner that enables the transfer of a copy.
+ </p>
+ <p>“Source Code” means the form of a Program preferred for making
+ modifications, including but not limited to software source code,
+ documentation source, and configuration files.
+ </p>
+ <p>“Secondary License” means either the GNU General Public License,
+ Version 2.0, or any later versions of that license, including any
+ exceptions or additional permissions as identified by the initial
+ Contributor.
+ </p>
+ <h2 id="grant-of-rights">2. GRANT OF RIGHTS</h2>
+ <ul>
+ <li>a) Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free copyright
+ license to reproduce, prepare Derivative Works of, publicly display,
+ publicly perform, Distribute and sublicense the Contribution of such
+ Contributor, if any, and such Derivative Works.
+ </li>
+ <li>b) Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free patent
+ license under Licensed Patents to make, use, sell, offer to sell,
+ import and otherwise transfer the Contribution of such Contributor,
+ if any, in Source Code or other form. This patent license shall
+ apply to the combination of the Contribution and the Program if,
+ at the time the Contribution is added by the Contributor, such
+ addition of the Contribution causes such combination to be covered
+ by the Licensed Patents. The patent license shall not apply to any
+ other combinations which include the Contribution. No hardware per
+ se is licensed hereunder.
+ </li>
+ <li>c) Recipient understands that although each Contributor grants the
+ licenses to its Contributions set forth herein, no assurances are
+ provided by any Contributor that the Program does not infringe the
+ patent or other intellectual property rights of any other entity.
+ Each Contributor disclaims any liability to Recipient for claims
+ brought by any other entity based on infringement of intellectual
+ property rights or otherwise. As a condition to exercising the rights
+ and licenses granted hereunder, each Recipient hereby assumes sole
+ responsibility to secure any other intellectual property rights needed,
+ if any. For example, if a third party patent license is required to
+ allow Recipient to Distribute the Program, it is Recipient's
+ responsibility to acquire that license before distributing the Program.
+ </li>
+ <li>d) Each Contributor represents that to its knowledge it has sufficient
+ copyright rights in its Contribution, if any, to grant the copyright
+ license set forth in this Agreement.
+ </li>
+ <li>e) Notwithstanding the terms of any Secondary License, no Contributor
+ makes additional grants to any Recipient (other than those set forth
+ in this Agreement) as a result of such Recipient's receipt of the
+ Program under the terms of a Secondary License (if permitted under
+ the terms of Section 3).
+ </li>
+ </ul>
+ <h2 id="requirements">3. REQUIREMENTS</h2>
+ <p>3.1 If a Contributor Distributes the Program in any form, then:</p>
+ <ul>
+ <li>a) the Program must also be made available as Source Code, in
+ accordance with section 3.2, and the Contributor must accompany
+ the Program with a statement that the Source Code for the Program
+ is available under this Agreement, and informs Recipients how to
+ obtain it in a reasonable manner on or through a medium customarily
+ used for software exchange; and
+ </li>
+ <li>
+ b) the Contributor may Distribute the Program under a license
+ different than this Agreement, provided that such license:
+ <ul>
+ <li>i) effectively disclaims on behalf of all other Contributors all
+ warranties and conditions, express and implied, including warranties
+ or conditions of title and non-infringement, and implied warranties
+ or conditions of merchantability and fitness for a particular purpose;
+ </li>
+ <li>ii) effectively excludes on behalf of all other Contributors all
+ liability for damages, including direct, indirect, special, incidental
+ and consequential damages, such as lost profits;
+ </li>
+ <li>iii) does not attempt to limit or alter the recipients' rights in the
+ Source Code under section 3.2; and
+ </li>
+ <li>iv) requires any subsequent distribution of the Program by any party
+ to be under a license that satisfies the requirements of this section 3.
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <p>3.2 When the Program is Distributed as Source Code:</p>
+ <ul>
+ <li>a) it must be made available under this Agreement, or if the Program (i)
+ is combined with other material in a separate file or files made available
+ under a Secondary License, and (ii) the initial Contributor attached to
+ the Source Code the notice described in Exhibit A of this Agreement,
+ then the Program may be made available under the terms of such
+ Secondary Licenses, and
+ </li>
+ <li>b) a copy of this Agreement must be included with each copy of the Program.</li>
+ </ul>
+ <p>3.3 Contributors may not remove or alter any copyright, patent, trademark,
+ attribution notices, disclaimers of warranty, or limitations of liability
+ (‘notices’) contained within the Program from any copy of the Program which
+ they Distribute, provided that Contributors may add their own appropriate
+ notices.
+ </p>
+ <h2 id="commercial-distribution">4. COMMERCIAL DISTRIBUTION</h2>
+ <p>Commercial distributors of software may accept certain responsibilities
+ with respect to end users, business partners and the like. While this
+ license is intended to facilitate the commercial use of the Program, the
+ Contributor who includes the Program in a commercial product offering should
+ do so in a manner which does not create potential liability for other
+ Contributors. Therefore, if a Contributor includes the Program in a
+ commercial product offering, such Contributor (“Commercial Contributor”)
+ hereby agrees to defend and indemnify every other Contributor
+ (“Indemnified Contributor”) against any losses, damages and costs
+ (collectively “Losses”) arising from claims, lawsuits and other legal actions
+ brought by a third party against the Indemnified Contributor to the extent
+ caused by the acts or omissions of such Commercial Contributor in connection
+ with its distribution of the Program in a commercial product offering.
+ The obligations in this section do not apply to any claims or Losses relating
+ to any actual or alleged intellectual property infringement. In order to
+ qualify, an Indemnified Contributor must: a) promptly notify the
+ Commercial Contributor in writing of such claim, and b) allow the Commercial
+ Contributor to control, and cooperate with the Commercial Contributor in,
+ the defense and any related settlement negotiations. The Indemnified
+ Contributor may participate in any such claim at its own expense.
+ </p>
+ <p>For example, a Contributor might include the Program
+ in a commercial product offering, Product X. That Contributor is then a
+ Commercial Contributor. If that Commercial Contributor then makes performance
+ claims, or offers warranties related to Product X, those performance claims
+ and warranties are such Commercial Contributor's responsibility alone.
+ Under this section, the Commercial Contributor would have to defend claims
+ against the other Contributors related to those performance claims and
+ warranties, and if a court requires any other Contributor to pay any damages
+ as a result, the Commercial Contributor must pay those damages.
+ </p>
+ <h2 id="warranty">5. NO WARRANTY</h2>
+ <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
+ BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN “AS IS” BASIS, WITHOUT
+ WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+ WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is
+ solely responsible for determining the appropriateness of using and
+ distributing the Program and assumes all risks associated with its
+ exercise of rights under this Agreement, including but not limited to the
+ risks and costs of program errors, compliance with applicable laws, damage
+ to or loss of data, programs or equipment, and unavailability or
+ interruption of operations.
+ </p>
+ <h2 id="disclaimer">6. DISCLAIMER OF LIABILITY</h2>
+ <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
+ BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY
+ LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+ GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ </p>
+ <h2 id="general">7. GENERAL</h2>
+ <p>If any provision of this Agreement is invalid or unenforceable under
+ applicable law, it shall not affect the validity or enforceability of the
+ remainder of the terms of this Agreement, and without further action by the
+ parties hereto, such provision shall be reformed to the minimum extent
+ necessary to make such provision valid and enforceable.
+ </p>
+ <p>If Recipient institutes patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Program itself
+ (excluding combinations of the Program with other software or hardware)
+ infringes such Recipient's patent(s), then such Recipient's rights granted
+ under Section 2(b) shall terminate as of the date such litigation is filed.
+ </p>
+ <p>All Recipient's rights under this Agreement shall terminate if it fails to
+ comply with any of the material terms or conditions of this Agreement and
+ does not cure such failure in a reasonable period of time after becoming
+ aware of such noncompliance. If all Recipient's rights under this Agreement
+ terminate, Recipient agrees to cease use and distribution of the Program
+ as soon as reasonably practicable. However, Recipient's obligations under
+ this Agreement and any licenses granted by Recipient relating to the
+ Program shall continue and survive.
+ </p>
+ <p>Everyone is permitted to copy and distribute copies of this Agreement,
+ but in order to avoid inconsistency the Agreement is copyrighted and may
+ only be modified in the following manner. The Agreement Steward reserves
+ the right to publish new versions (including revisions) of this Agreement
+ from time to time. No one other than the Agreement Steward has the right
+ to modify this Agreement. The Eclipse Foundation is the initial Agreement
+ Steward. The Eclipse Foundation may assign the responsibility to serve as
+ the Agreement Steward to a suitable separate entity. Each new version of
+ the Agreement will be given a distinguishing version number. The Program
+ (including Contributions) may always be Distributed subject to the version
+ of the Agreement under which it was received. In addition, after a new
+ version of the Agreement is published, Contributor may elect to Distribute
+ the Program (including its Contributions) under the new version.
+ </p>
+ <p>Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
+ receives no rights or licenses to the intellectual property of any
+ Contributor under this Agreement, whether expressly, by implication,
+ estoppel or otherwise. All rights in the Program not expressly granted
+ under this Agreement are reserved. Nothing in this Agreement is intended
+ to be enforceable by any entity that is not a Contributor or Recipient.
+ No third-party beneficiary rights are created under this Agreement.
+ </p>
+ <h2 id="exhibit-a">Exhibit A – Form of Secondary Licenses Notice</h2>
+ <p>“This Source Code may also be made available under the following
+ Secondary Licenses when the conditions for such availability set forth
+ in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
+ version(s), and exceptions or additional permissions here}.”
+ </p>
+ <blockquote>
+ <p>Simply including a copy of this Agreement, including this Exhibit A
+ is not sufficient to license the Source Code under Secondary Licenses.
+ </p>
+ <p>If it is not possible or desirable to put the notice in a particular file,
+ then You may include the notice in a location (such as a LICENSE file in a
+ relevant directory) where a recipient would be likely to look for
+ such a notice.
+ </p>
+ <p>You may add additional accurate notices of copyright ownership.</p>
+ </blockquote>
+ </body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/license.html b/org.eclipse.osbp.fork.jpos/license.html
new file mode 100644
index 0000000..637a181
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/license.html
@@ -0,0 +1,300 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <title>Eclipse Public License - Version 2.0</title>
+ <style type="text/css">
+ body {
+ margin: 1.5em 3em;
+ }
+ h1{
+ font-size:1.5em;
+ }
+ h2{
+ font-size:1em;
+ margin-bottom:0.5em;
+ margin-top:1em;
+ }
+ p {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ }
+ ul, ol{
+ list-style-type:none;
+ }
+ </style>
+ </head>
+ <body>
+ <h1>Eclipse Public License - v 2.0</h1>
+ <p>THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE
+ PUBLIC LICENSE (“AGREEMENT”). ANY USE, REPRODUCTION OR DISTRIBUTION
+ OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+ </p>
+ <h2 id="definitions">1. DEFINITIONS</h2>
+ <p>“Contribution” means:</p>
+ <ul>
+ <li>a) in the case of the initial Contributor, the initial content
+ Distributed under this Agreement, and
+ </li>
+ <li>
+ b) in the case of each subsequent Contributor:
+ <ul>
+ <li>i) changes to the Program, and</li>
+ <li>ii) additions to the Program;</li>
+ </ul>
+ where such changes and/or additions to the Program originate from
+ and are Distributed by that particular Contributor. A Contribution
+ “originates” from a Contributor if it was added to the Program by such
+ Contributor itself or anyone acting on such Contributor's behalf.
+ Contributions do not include changes or additions to the Program that
+ are not Modified Works.
+ </li>
+ </ul>
+ <p>“Contributor” means any person or entity that Distributes the Program.</p>
+ <p>“Licensed Patents” mean patent claims licensable by a Contributor which
+ are necessarily infringed by the use or sale of its Contribution alone
+ or when combined with the Program.
+ </p>
+ <p>“Program” means the Contributions Distributed in accordance with this
+ Agreement.
+ </p>
+ <p>“Recipient” means anyone who receives the Program under this Agreement
+ or any Secondary License (as applicable), including Contributors.
+ </p>
+ <p>“Derivative Works” shall mean any work, whether in Source Code or other
+ form, that is based on (or derived from) the Program and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship.
+ </p>
+ <p>“Modified Works” shall mean any work in Source Code or other form that
+ results from an addition to, deletion from, or modification of the
+ contents of the Program, including, for purposes of clarity any new file
+ in Source Code form that contains any contents of the Program. Modified
+ Works shall not include works that contain only declarations, interfaces,
+ types, classes, structures, or files of the Program solely in each case
+ in order to link to, bind by name, or subclass the Program or Modified
+ Works thereof.
+ </p>
+ <p>“Distribute” means the acts of a) distributing or b) making available
+ in any manner that enables the transfer of a copy.
+ </p>
+ <p>“Source Code” means the form of a Program preferred for making
+ modifications, including but not limited to software source code,
+ documentation source, and configuration files.
+ </p>
+ <p>“Secondary License” means either the GNU General Public License,
+ Version 2.0, or any later versions of that license, including any
+ exceptions or additional permissions as identified by the initial
+ Contributor.
+ </p>
+ <h2 id="grant-of-rights">2. GRANT OF RIGHTS</h2>
+ <ul>
+ <li>a) Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free copyright
+ license to reproduce, prepare Derivative Works of, publicly display,
+ publicly perform, Distribute and sublicense the Contribution of such
+ Contributor, if any, and such Derivative Works.
+ </li>
+ <li>b) Subject to the terms of this Agreement, each Contributor hereby
+ grants Recipient a non-exclusive, worldwide, royalty-free patent
+ license under Licensed Patents to make, use, sell, offer to sell,
+ import and otherwise transfer the Contribution of such Contributor,
+ if any, in Source Code or other form. This patent license shall
+ apply to the combination of the Contribution and the Program if,
+ at the time the Contribution is added by the Contributor, such
+ addition of the Contribution causes such combination to be covered
+ by the Licensed Patents. The patent license shall not apply to any
+ other combinations which include the Contribution. No hardware per
+ se is licensed hereunder.
+ </li>
+ <li>c) Recipient understands that although each Contributor grants the
+ licenses to its Contributions set forth herein, no assurances are
+ provided by any Contributor that the Program does not infringe the
+ patent or other intellectual property rights of any other entity.
+ Each Contributor disclaims any liability to Recipient for claims
+ brought by any other entity based on infringement of intellectual
+ property rights or otherwise. As a condition to exercising the rights
+ and licenses granted hereunder, each Recipient hereby assumes sole
+ responsibility to secure any other intellectual property rights needed,
+ if any. For example, if a third party patent license is required to
+ allow Recipient to Distribute the Program, it is Recipient's
+ responsibility to acquire that license before distributing the Program.
+ </li>
+ <li>d) Each Contributor represents that to its knowledge it has sufficient
+ copyright rights in its Contribution, if any, to grant the copyright
+ license set forth in this Agreement.
+ </li>
+ <li>e) Notwithstanding the terms of any Secondary License, no Contributor
+ makes additional grants to any Recipient (other than those set forth
+ in this Agreement) as a result of such Recipient's receipt of the
+ Program under the terms of a Secondary License (if permitted under
+ the terms of Section 3).
+ </li>
+ </ul>
+ <h2 id="requirements">3. REQUIREMENTS</h2>
+ <p>3.1 If a Contributor Distributes the Program in any form, then:</p>
+ <ul>
+ <li>a) the Program must also be made available as Source Code, in
+ accordance with section 3.2, and the Contributor must accompany
+ the Program with a statement that the Source Code for the Program
+ is available under this Agreement, and informs Recipients how to
+ obtain it in a reasonable manner on or through a medium customarily
+ used for software exchange; and
+ </li>
+ <li>
+ b) the Contributor may Distribute the Program under a license
+ different than this Agreement, provided that such license:
+ <ul>
+ <li>i) effectively disclaims on behalf of all other Contributors all
+ warranties and conditions, express and implied, including warranties
+ or conditions of title and non-infringement, and implied warranties
+ or conditions of merchantability and fitness for a particular purpose;
+ </li>
+ <li>ii) effectively excludes on behalf of all other Contributors all
+ liability for damages, including direct, indirect, special, incidental
+ and consequential damages, such as lost profits;
+ </li>
+ <li>iii) does not attempt to limit or alter the recipients' rights in the
+ Source Code under section 3.2; and
+ </li>
+ <li>iv) requires any subsequent distribution of the Program by any party
+ to be under a license that satisfies the requirements of this section 3.
+ </li>
+ </ul>
+ </li>
+ </ul>
+ <p>3.2 When the Program is Distributed as Source Code:</p>
+ <ul>
+ <li>a) it must be made available under this Agreement, or if the Program (i)
+ is combined with other material in a separate file or files made available
+ under a Secondary License, and (ii) the initial Contributor attached to
+ the Source Code the notice described in Exhibit A of this Agreement,
+ then the Program may be made available under the terms of such
+ Secondary Licenses, and
+ </li>
+ <li>b) a copy of this Agreement must be included with each copy of the Program.</li>
+ </ul>
+ <p>3.3 Contributors may not remove or alter any copyright, patent, trademark,
+ attribution notices, disclaimers of warranty, or limitations of liability
+ (‘notices’) contained within the Program from any copy of the Program which
+ they Distribute, provided that Contributors may add their own appropriate
+ notices.
+ </p>
+ <h2 id="commercial-distribution">4. COMMERCIAL DISTRIBUTION</h2>
+ <p>Commercial distributors of software may accept certain responsibilities
+ with respect to end users, business partners and the like. While this
+ license is intended to facilitate the commercial use of the Program, the
+ Contributor who includes the Program in a commercial product offering should
+ do so in a manner which does not create potential liability for other
+ Contributors. Therefore, if a Contributor includes the Program in a
+ commercial product offering, such Contributor (“Commercial Contributor”)
+ hereby agrees to defend and indemnify every other Contributor
+ (“Indemnified Contributor”) against any losses, damages and costs
+ (collectively “Losses”) arising from claims, lawsuits and other legal actions
+ brought by a third party against the Indemnified Contributor to the extent
+ caused by the acts or omissions of such Commercial Contributor in connection
+ with its distribution of the Program in a commercial product offering.
+ The obligations in this section do not apply to any claims or Losses relating
+ to any actual or alleged intellectual property infringement. In order to
+ qualify, an Indemnified Contributor must: a) promptly notify the
+ Commercial Contributor in writing of such claim, and b) allow the Commercial
+ Contributor to control, and cooperate with the Commercial Contributor in,
+ the defense and any related settlement negotiations. The Indemnified
+ Contributor may participate in any such claim at its own expense.
+ </p>
+ <p>For example, a Contributor might include the Program
+ in a commercial product offering, Product X. That Contributor is then a
+ Commercial Contributor. If that Commercial Contributor then makes performance
+ claims, or offers warranties related to Product X, those performance claims
+ and warranties are such Commercial Contributor's responsibility alone.
+ Under this section, the Commercial Contributor would have to defend claims
+ against the other Contributors related to those performance claims and
+ warranties, and if a court requires any other Contributor to pay any damages
+ as a result, the Commercial Contributor must pay those damages.
+ </p>
+ <h2 id="warranty">5. NO WARRANTY</h2>
+ <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
+ BY APPLICABLE LAW, THE PROGRAM IS PROVIDED ON AN “AS IS” BASIS, WITHOUT
+ WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING,
+ WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT,
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is
+ solely responsible for determining the appropriateness of using and
+ distributing the Program and assumes all risks associated with its
+ exercise of rights under this Agreement, including but not limited to the
+ risks and costs of program errors, compliance with applicable laws, damage
+ to or loss of data, programs or equipment, and unavailability or
+ interruption of operations.
+ </p>
+ <h2 id="disclaimer">6. DISCLAIMER OF LIABILITY</h2>
+ <p>EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, AND TO THE EXTENT PERMITTED
+ BY APPLICABLE LAW, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY
+ LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+ OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST PROFITS),
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+ GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+ </p>
+ <h2 id="general">7. GENERAL</h2>
+ <p>If any provision of this Agreement is invalid or unenforceable under
+ applicable law, it shall not affect the validity or enforceability of the
+ remainder of the terms of this Agreement, and without further action by the
+ parties hereto, such provision shall be reformed to the minimum extent
+ necessary to make such provision valid and enforceable.
+ </p>
+ <p>If Recipient institutes patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Program itself
+ (excluding combinations of the Program with other software or hardware)
+ infringes such Recipient's patent(s), then such Recipient's rights granted
+ under Section 2(b) shall terminate as of the date such litigation is filed.
+ </p>
+ <p>All Recipient's rights under this Agreement shall terminate if it fails to
+ comply with any of the material terms or conditions of this Agreement and
+ does not cure such failure in a reasonable period of time after becoming
+ aware of such noncompliance. If all Recipient's rights under this Agreement
+ terminate, Recipient agrees to cease use and distribution of the Program
+ as soon as reasonably practicable. However, Recipient's obligations under
+ this Agreement and any licenses granted by Recipient relating to the
+ Program shall continue and survive.
+ </p>
+ <p>Everyone is permitted to copy and distribute copies of this Agreement,
+ but in order to avoid inconsistency the Agreement is copyrighted and may
+ only be modified in the following manner. The Agreement Steward reserves
+ the right to publish new versions (including revisions) of this Agreement
+ from time to time. No one other than the Agreement Steward has the right
+ to modify this Agreement. The Eclipse Foundation is the initial Agreement
+ Steward. The Eclipse Foundation may assign the responsibility to serve as
+ the Agreement Steward to a suitable separate entity. Each new version of
+ the Agreement will be given a distinguishing version number. The Program
+ (including Contributions) may always be Distributed subject to the version
+ of the Agreement under which it was received. In addition, after a new
+ version of the Agreement is published, Contributor may elect to Distribute
+ the Program (including its Contributions) under the new version.
+ </p>
+ <p>Except as expressly stated in Sections 2(a) and 2(b) above, Recipient
+ receives no rights or licenses to the intellectual property of any
+ Contributor under this Agreement, whether expressly, by implication,
+ estoppel or otherwise. All rights in the Program not expressly granted
+ under this Agreement are reserved. Nothing in this Agreement is intended
+ to be enforceable by any entity that is not a Contributor or Recipient.
+ No third-party beneficiary rights are created under this Agreement.
+ </p>
+ <h2 id="exhibit-a">Exhibit A – Form of Secondary Licenses Notice</h2>
+ <p>“This Source Code may also be made available under the following
+ Secondary Licenses when the conditions for such availability set forth
+ in the Eclipse Public License, v. 2.0 are satisfied: {name license(s),
+ version(s), and exceptions or additional permissions here}.”
+ </p>
+ <blockquote>
+ <p>Simply including a copy of this Agreement, including this Exhibit A
+ is not sufficient to license the Source Code under Secondary Licenses.
+ </p>
+ <p>If it is not possible or desirable to put the notice in a particular file,
+ then You may include the notice in a location (such as a LICENSE file in a
+ relevant directory) where a recipient would be likely to look for
+ such a notice.
+ </p>
+ <p>You may add additional accurate notices of copyright ownership.</p>
+ </blockquote>
+ </body>
+</html>
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/notice.html b/org.eclipse.osbp.fork.jpos/notice.html
new file mode 100644
index 0000000..81fca9d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/notice.html
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Eclipse Foundation Software User Agreement</title>
+</head>
+
+<body lang="EN-US">
+ <h2>Eclipse Foundation Software User Agreement</h2>
+ <p>November 22, 2014</p>
+
+ <h3>Usage Of Content</h3>
+
+ <p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION,
+ INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
+ (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY
+ THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
+ CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
+ BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE OF THE CONTENT IS
+ GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY
+ APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED
+ BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS
+ AGREEMENT AND THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE
+ AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT
+ USE THE CONTENT.</p>
+
+ <h3>Applicable Licenses</h3>
+
+ <p>
+ Unless otherwise indicated, all Content made available by the Eclipse
+ Foundation is provided to you under the terms and conditions of the
+ Eclipse Public License Version 2.0 ("EPL"). A copy of the
+ EPL is provided with this Content and is also available at <a
+ href="http://www.eclipse.org/legal/epl-2.0">http://www.eclipse.org/legal/epl-2.0</a>.
+ For purposes of the EPL, "Program" will mean the Content.
+ </p>
+
+ <p>Content includes, but is not limited to, source code, object
+ code, documentation and other files maintained in the Eclipse
+ Foundation source code repository ("Repository") in software
+ modules ("Modules") and made available as downloadable
+ archives ("Downloads").</p>
+
+ <ul>
+ <li>Content may be structured and packaged into modules to
+ facilitate delivering, extending, and upgrading the Content. Typical
+ modules may include plug-ins ("Plug-ins"), plug-in
+ fragments ("Fragments"), and features
+ ("Features").</li>
+ <li>Each Plug-in or Fragment may be packaged as a sub-directory
+ or JAR (Java™ ARchive) in a directory named
+ "plugins".</li>
+ <li>A Feature is a bundle of one or more Plug-ins and/or
+ Fragments and associated material. Each Feature may be packaged as a
+ sub-directory in a directory named "features". Within a
+ Feature, files named "feature.xml" may contain a list of
+ the names and version numbers of the Plug-ins and/or Fragments
+ associated with that Feature.</li>
+ <li>Features may also include other Features ("Included
+ Features"). Within a Feature, files named
+ "feature.xml" may contain a list of the names and version
+ numbers of Included Features.</li>
+ </ul>
+
+ <p>The terms and conditions governing Plug-ins and Fragments should
+ be contained in files named "about.html"
+ ("Abouts"). The terms and conditions governing Features and
+ Included Features should be contained in files named
+ "license.html" ("Feature Licenses"). Abouts and
+ Feature Licenses may be located in any directory of a Download or
+ Module including, but not limited to the following locations:</p>
+
+ <ul>
+ <li>The top-level (root) directory</li>
+ <li>Plug-in and Fragment directories</li>
+ <li>Inside Plug-ins and Fragments packaged as JARs</li>
+ <li>Sub-directories of the directory named "src" of
+ certain Plug-ins</li>
+ <li>Feature directories</li>
+ </ul>
+
+ <p>Note: if a Feature made available by the Eclipse Foundation is
+ installed using the Provisioning Technology (as defined below), you
+ must agree to a license ("Feature Update License") during
+ the installation process. If the Feature contains Included Features,
+ the Feature Update License should either provide you with the terms
+ and conditions governing the Included Features or inform you where you
+ can locate them. Feature Update Licenses may be found in the
+ "license" property of files named
+ "feature.properties" found within a Feature. Such Abouts,
+ Feature Licenses, and Feature Update Licenses contain the terms and
+ conditions (or references to such terms and conditions) that govern
+ your use of the associated Content in that directory.</p>
+
+ <p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY
+ REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND
+ CONDITIONS. SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT
+ ARE NOT LIMITED TO):</p>
+
+ <ul>
+ <li>Eclipse Public License Version 1.0 (available at <a
+ href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>)
+ </li>
+ <li>Eclipse Distribution License Version 1.0 (available at <a
+ href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)
+ </li>
+ <li>Common Public License Version 1.0 (available at <a
+ href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)
+ </li>
+ <li>Apache Software License 1.1 (available at <a
+ href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)
+ </li>
+ <li>Apache Software License 2.0 (available at <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)
+ </li>
+ <li>Mozilla Public License Version 1.1 (available at <a
+ href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)
+ </li>
+ </ul>
+
+ <p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND
+ CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License,
+ or Feature Update License is provided, please contact the Eclipse
+ Foundation to determine what terms and conditions govern that
+ particular Content.</p>
+
+
+ <h3>Use of Provisioning Technology</h3>
+
+ <p>
+ The Eclipse Foundation makes available provisioning software, examples
+ of which include, but are not limited to, p2 and the Eclipse Update
+ Manager ("Provisioning Technology") for the purpose of
+ allowing users to install software, documentation, information and/or
+ other materials (collectively "Installable Software"). This
+ capability is provided with the intent of allowing such users to
+ install, extend and update Eclipse-based products. Information about
+ packaging Installable Software is available at <a
+ href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
+ ("Specification").
+ </p>
+
+ <p>You may use Provisioning Technology to allow other parties to
+ install Installable Software. You shall be responsible for enabling
+ the applicable license agreements relating to the Installable Software
+ to be presented to, and accepted by, the users of the Provisioning
+ Technology in accordance with the Specification. By using Provisioning
+ Technology in such a manner and making it available in accordance with
+ the Specification, you further acknowledge your agreement to, and the
+ acquisition of all necessary rights to permit the following:</p>
+
+ <ol>
+ <li>A series of actions may occur ("Provisioning
+ Process") in which a user may execute the Provisioning
+ Technology on a machine ("Target Machine") with the intent
+ of installing, extending or updating the functionality of an
+ Eclipse-based product.</li>
+ <li>During the Provisioning Process, the Provisioning Technology
+ may cause third party Installable Software or a portion thereof to be
+ accessed and copied to the Target Machine.</li>
+ <li>Pursuant to the Specification, you will provide to the user
+ the terms and conditions that govern the use of the Installable
+ Software ("Installable Software Agreement") and such
+ Installable Software Agreement shall be accessed from the Target
+ Machine in accordance with the Specification. Such Installable
+ Software Agreement must inform the user of the terms and conditions
+ that govern the Installable Software and must solicit acceptance by
+ the end user in the manner prescribed in such Installable Software
+ Agreement. Upon such indication of agreement by the user, the
+ provisioning Technology will complete installation of the Installable
+ Software.</li>
+ </ol>
+
+ <h3>Cryptography</h3>
+
+ <p>Content may contain encryption software. The country in which
+ you are currently may have restrictions on the import, possession, and
+ use, and/or re-export to another country, of encryption software.
+ BEFORE using any encryption software, please check the country's laws,
+ regulations and policies concerning the import, possession, or use,
+ and re-export of encryption software, to see if this is permitted.</p>
+
+ <p>
+ <small>Java and all Java-based trademarks are trademarks of
+ Oracle Corporation in the United States, other countries, or both.</small>
+ </p>
+</body>
+</html>
diff --git a/org.eclipse.osbp.fork.jpos/pom.xml b/org.eclipse.osbp.fork.jpos/pom.xml
new file mode 100644
index 0000000..2f8bd53
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/pom.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+#=======================================================================
+# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany).
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License 2.0 which is available at
+# http://www.eclipse.org/legal/epl-2.0.
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# Loetz GmbH&Co.KG - initial API and implementation
+#=======================================================================
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.eclipse.osbp.fork.jpos</groupId>
+ <artifactId>org.eclipse.osbp.fork.jpos.aggregator</artifactId>
+ <version>1.14.0-SNAPSHOT</version>
+ <relativePath>..</relativePath>
+ </parent>
+
+
+ <artifactId>org.eclipse.osbp.fork.jpos</artifactId>
+ <packaging>eclipse-plugin</packaging>
+
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ </build>
+
+ </project>
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/Activator.java b/org.eclipse.osbp.fork.jpos/src/jpos/Activator.java
new file mode 100644
index 0000000..e1f4457
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/Activator.java
@@ -0,0 +1,40 @@
+package jpos;
+
+import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class Activator implements BundleActivator {
+
+ private static BundleContext context;
+ private static final Logger LOGGER = LoggerFactory.getLogger("activator");
+
+ static BundleContext getContext() {
+ return context;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext
+ * )
+ */
+ public void start(BundleContext bundleContext) throws Exception {
+ Activator.context = bundleContext;
+ LOGGER.info(Activator.class.getCanonicalName() + ": started");
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext)
+ */
+ public void stop(BundleContext bundleContext) throws Exception {
+ Activator.context = null;
+ LOGGER.info(Activator.class.getCanonicalName() + ": stopped");
+ }
+
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BaseControl.java b/org.eclipse.osbp.fork.jpos/src/jpos/BaseControl.java
new file mode 100644
index 0000000..b61d1d6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BaseControl.java
@@ -0,0 +1,52 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BaseControl
+//
+// Interface definining all capabilities, properties and methods
+// that are common to all JavaPOS device controls.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface BaseControl
+{
+ // Properties
+ public String getCheckHealthText() throws JposException;
+ public boolean getClaimed() throws JposException;
+ public String getDeviceControlDescription();
+ public int getDeviceControlVersion();
+ public boolean getDeviceEnabled() throws JposException;
+ public void setDeviceEnabled(boolean deviceEnabled)
+ throws JposException;
+ public String getDeviceServiceDescription() throws JposException;
+ public int getDeviceServiceVersion() throws JposException;
+ public boolean getFreezeEvents() throws JposException;
+ public void setFreezeEvents(boolean freezeEvents) throws JposException;
+ public String getPhysicalDeviceDescription() throws JposException;
+ public String getPhysicalDeviceName() throws JposException;
+ public int getState();
+
+ // Methods
+ public void claim(int timeout) throws JposException;
+ public void close() throws JposException;
+ public void checkHealth(int level) throws JposException;
+ public void directIO(int command, int[] data, Object object)
+ throws JposException;
+ public void open(String logicalDeviceName) throws JposException;
+ public void release() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BaseJposControl.java b/org.eclipse.osbp.fork.jpos/src/jpos/BaseJposControl.java
new file mode 100644
index 0000000..c521260
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BaseJposControl.java
@@ -0,0 +1,623 @@
+//----------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BaseJposControl.java - Abstract base class for all JavaPOS Device Controls.
+//
+//-----------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public abstract class BaseJposControl
+ implements BaseControl
+{
+ //--------------------------------------------------------------------------
+ // Constants
+ //--------------------------------------------------------------------------
+
+ protected static final int deviceVersion12 = 1002000; // 1.2.0
+ protected static final int deviceVersion13 = 1003000; // 1.3.0
+ protected static final int deviceVersion14 = 1004000; // 1.4.0
+ protected static final int deviceVersion15 = 1005000; // 1.5.0
+ protected static final int deviceVersion16 = 1006000; // 1.6.0
+ protected static final int deviceVersion17 = 1007000; // 1.7.0
+ protected static final int deviceVersion18 = 1008000; // 1.8.0
+ protected static final int deviceVersion19 = 1009000; // 1.9.0
+ protected static final int deviceVersion110 = 1010000; // 1.10.0
+ protected static final int deviceVersion111 = 1011000; // 1.11.0
+ protected static final int deviceVersion112 = 1012000; // 1.12.0
+ protected static final int deviceVersion113 = 1013000; // 1.13.0
+ protected static final int deviceVersion114 = 1014000; // 1.14.0
+
+
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ // Instance Data Set in Derived Class
+ protected String deviceControlDescription;
+ protected int deviceControlVersion;
+
+ // Instance Data Set in Base Class
+ protected JposServiceConnection serviceConnection;
+ protected int serviceVersion;
+ protected boolean bOpen;
+ protected BaseService service;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public BaseJposControl()
+ {
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //serviceConnection = null;
+ //serviceVersion = 0;
+ //bOpen = false;
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public String getCheckHealthText()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JposConst.JPOS_E_CLOSED, "Control not opened");
+ }
+
+ try
+ {
+ return service.getCheckHealthText();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JposConst.JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getClaimed()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JposConst.JPOS_E_CLOSED, "Control not opened");
+ }
+
+ try
+ {
+ return service.getClaimed();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JposConst.JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getDeviceControlDescription()
+ {
+ return deviceControlDescription;
+ }
+
+ public int getDeviceControlVersion()
+ {
+ return deviceControlVersion;
+ }
+
+ public boolean getDeviceEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JposConst.JPOS_E_CLOSED, "Control not opened");
+ }
+
+ try
+ {
+ return service.getDeviceEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JposConst.JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDeviceEnabled(boolean deviceEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JposConst.JPOS_E_CLOSED, "Control not opened");
+ }
+
+ try
+ {
+ service.setDeviceEnabled(deviceEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JposConst.JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getDeviceServiceDescription()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JposConst.JPOS_E_CLOSED, "Control not opened");
+ }
+
+ try
+ {
+ return service.getDeviceServiceDescription();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JposConst.JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDeviceServiceVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JposConst.JPOS_E_CLOSED, "Control not opened");
+ }
+
+ try
+ {
+ return service.getDeviceServiceVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JposConst.JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getFreezeEvents()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JposConst.JPOS_E_CLOSED, "Control not opened");
+ }
+
+ try
+ {
+ return service.getFreezeEvents();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JposConst.JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setFreezeEvents(boolean freezeEvents)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JposConst.JPOS_E_CLOSED, "Control not opened");
+ }
+
+ try
+ {
+ service.setFreezeEvents(freezeEvents);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JposConst.JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getPhysicalDeviceDescription()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JposConst.JPOS_E_CLOSED, "Control not opened");
+ }
+
+ try
+ {
+ return service.getPhysicalDeviceDescription();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JposConst.JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getPhysicalDeviceName()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JposConst.JPOS_E_CLOSED, "Control not opened");
+ }
+
+ try
+ {
+ return service.getPhysicalDeviceName();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JposConst.JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getState()
+ {
+ // Preset result to JposConst.JPOS_S_CLOSED
+ int nState = JposConst.JPOS_S_CLOSED;
+
+ // If control is opened, get state from Device Service
+ if(bOpen)
+ {
+ try
+ {
+ nState = service.getState();
+ }
+ catch(Exception e)
+ {
+ }
+ }
+
+ return nState;
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void claim(int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JposConst.JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service.claim(timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JposConst.JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public synchronized void close()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JposConst.JPOS_E_CLOSED, "Control not opened");
+ }
+ else
+ {
+ // Perform the operation
+ try
+ {
+ service.close();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JposConst.JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+
+ try
+ {
+ serviceConnection.disconnect();
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JposConst.JPOS_E_NOSERVICE,
+ "Unable to free service connection",
+ e);
+ }
+ finally
+ {
+ setDeviceService(null, 0);
+ serviceConnection = null;
+ service = null;
+ serviceVersion = 0;
+ bOpen = false;
+ }
+ }
+ }
+
+ public void checkHealth(int level)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JposConst.JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service.checkHealth(level);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JposConst.JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void directIO(int command, int[] data, Object object)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JposConst.JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service.directIO(command, data, object);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JposConst.JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public synchronized void open(String logicalDeviceName)
+ throws JposException
+ {
+ // Make sure the control is not already open
+ if(bOpen)
+ {
+ throw new JposException(JposConst.JPOS_E_ILLEGAL, "Device Control already open");
+ }
+
+ // Use JCL to get a connection to the device service
+ try
+ {
+ serviceConnection = JposServiceLoader.findService(logicalDeviceName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JposConst.JPOS_E_NOEXIST,
+ "Device profile not found", e);
+ }
+
+ try
+ {
+ serviceConnection.connect();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JposConst.JPOS_E_NOSERVICE,
+ "Could not connect to service", e);
+ }
+
+ // Get an instance of the BaseService interface
+ try
+ {
+ service = (BaseService)serviceConnection.getService();
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JposConst.JPOS_E_NOSERVICE,
+ "Could not get service instance", e);
+ }
+
+ // Now attempt to process the open command
+ JposException jposException = null;
+ boolean bRealOpenSucceeded = false;
+ try
+ {
+ // Create callback subclass and attach it to the device service
+ EventCallbacks callbacks = createEventCallbacks();
+ service.open(logicalDeviceName, callbacks);
+
+ // If we got this far, the real open call succeeded
+ bRealOpenSucceeded = true;
+
+ // If the open succeeds, remember the service instance and determine
+ // the actual service version
+ serviceVersion = service.getDeviceServiceVersion();
+ setDeviceService(service, serviceVersion);
+
+ // If everything worked to this point, the open has succeeded.
+ bOpen = true;
+ }
+ catch(JposException je)
+ {
+ jposException = je;
+ }
+ catch(Exception e)
+ {
+ jposException = new JposException(JposConst.JPOS_E_FAILURE,
+ "Unhandled exception from Device Service",
+ e);
+ }
+
+ // If the overall open failed, clean up then throw the specified exception
+ if(!bOpen)
+ {
+ // If the Device Service open call succeeded, close it
+ try
+ {
+ service.close();
+ }
+ catch(Exception e)
+ {
+ // Eat any exceptions - we're trying to clean up as best we can
+ }
+
+ // Attenpt to disconnect the service instance
+ try
+ {
+ serviceConnection.disconnect();
+ }
+ catch(Exception e)
+ {
+ // Eat any exceptions - we're trying to clean up as best we can
+ }
+
+ // Reset instance data to allow for another open attempt later
+ serviceConnection = null;
+ serviceVersion = 0;
+
+ // Now that we've cleaned up, throw the exception that caused all this
+ throw jposException;
+ }
+ }
+
+ public void release()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JposConst.JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service.release();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JposConst.JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ abstract protected EventCallbacks createEventCallbacks();
+
+ // Store the reference to the Device Service
+ abstract protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/Belt.java b/org.eclipse.osbp.fork.jpos/src/jpos/Belt.java
new file mode 100644
index 0000000..fde379c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/Belt.java
@@ -0,0 +1,1381 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// Belt.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class Belt
+ extends BaseJposControl
+ implements BeltControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected BeltService112 service112;
+ protected BeltService113 service113;
+ protected BeltService114 service114;
+ protected Vector directIOListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public Belt()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS Belt Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ directIOListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapAutoStopBackward()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapAutoStopBackward();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapAutoStopBackwardItemCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapAutoStopBackwardItemCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapAutoStopForward()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapAutoStopForward();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapAutoStopForwardItemCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapAutoStopForwardItemCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapLightBarrierBackward()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapLightBarrierBackward();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapLightBarrierForward()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapLightBarrierForward();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapMoveBackward()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapMoveBackward();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRealTimeData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapRealTimeData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSecurityFlapBackward()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapSecurityFlapBackward();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSecurityFlapForward()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapSecurityFlapForward();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapSpeedStepsBackward()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapSpeedStepsBackward();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapSpeedStepsForward()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapSpeedStepsForward();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public boolean getAutoStopBackward()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getAutoStopBackward();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAutoStopBackward(boolean autoStop)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setAutoStopBackward(autoStop);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getAutoStopBackwardDelayTime()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getAutoStopBackwardDelayTime();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAutoStopBackwardDelayTime(int delayTime)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setAutoStopBackwardDelayTime(delayTime);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getAutoStopBackwardItemCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getAutoStopBackwardItemCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getAutoStopForward()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getAutoStopForward();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAutoStopForward(boolean autoStop)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setAutoStopForward(autoStop);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getAutoStopForwardDelayTime()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getAutoStopForwardDelayTime();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAutoStopForwardDelayTime(int delayTime)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setAutoStopForwardDelayTime(delayTime);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getAutoStopForwardItemCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getAutoStopForwardItemCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getLightBarrierBackwardInterrupted()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getLightBarrierBackwardInterrupted();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getLightBarrierForwardInterrupted()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getLightBarrierForwardInterrupted();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMotionStatus()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getMotionStatus();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getSecurityFlapBackwardOpened()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getSecurityFlapBackwardOpened();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getSecurityFlapForwardOpened()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getSecurityFlapForwardOpened();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void adjustItemCount(int direction, int count)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.adjustItemCount(direction, count);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void moveBackward(int speed)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.moveBackward(speed);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void moveForward(int speed)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.moveForward(speed);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetBelt()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.resetBelt();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetItemCount(int direction)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.resetItemCount(direction);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void stopBelt()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.stopBelt();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new BeltCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (BeltService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BeltService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (BeltService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BeltService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (BeltService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BeltService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class BeltCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)Belt.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(Belt.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(Belt.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/Belt.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/Belt.manifest.stub
new file mode 100644
index 0000000..2a22e8c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/Belt.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/Belt.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BeltBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/BeltBeanInfo.java
new file mode 100644
index 0000000..1a603fa
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BeltBeanInfo.java
@@ -0,0 +1,111 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// BeltBeanInfo.java - Bean information for the JavaPOS Belt
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class BeltBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.Belt.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.Belt.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapAutoStopBackward"),
+ makeProperty("CapAutoStopBackwardItemCount"),
+ makeProperty("CapAutoStopForward"),
+ makeProperty("CapAutoStopForwardItemCount"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapLightBarrierBackward"),
+ makeProperty("CapLightBarrierForward"),
+ makeProperty("CapMoveBackward"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapRealTimeData"),
+ makeProperty("CapSecurityFlapBackward"),
+ makeProperty("CapSecurityFlapForward"),
+ makeProperty("CapSpeedStepsBackward"),
+ makeProperty("CapSpeedStepsForward"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateFirmware"),
+ makeProperty("CapUpdateStatistics"),
+
+ // Properties
+ makeProperty("AutoStopBackward"),
+ makeProperty("AutoStopBackwardDelayTime"),
+ makeProperty("AutoStopBackwardItemCount"),
+ makeProperty("AutoStopForward"),
+ makeProperty("AutoStopForwardDelayTime"),
+ makeProperty("AutoStopForwardItemCount"),
+ makeProperty("LightBarrierBackwardInterrupted"),
+ makeProperty("LightBarrierForwardInterrupted"),
+ makeProperty("MotionStatus"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("SecurityFlapBackwardOpened"),
+ makeProperty("SecurityFlapForwardOpened")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.Belt.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("DirectIO"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BeltConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/BeltConst.java
new file mode 100644
index 0000000..a355ad2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BeltConst.java
@@ -0,0 +1,73 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BeltConst
+//
+// Belt constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface BeltConst
+{
+ /////////////////////////////////////////////////////////////////////
+ // "MotionStatus" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int BELT_MT_FORWARD = 1;
+ public static final int BELT_MT_BACKWARD = 2;
+ public static final int BELT_MT_STOPPED = 3;
+ public static final int BELT_MT_EMERGENCY = 4;
+ public static final int BELT_MT_MOTOR_FAULT = 5;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "adjustItemCount" Method: "Direction" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int BELT_AIC_BACKWARD = 1;
+ public static final int BELT_AIC_FORWARD = 2;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "resetItemCount" Method: "Direction" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int BELT_RIC_BACKWARD = 1;
+ public static final int BELT_RIC_FORWARD = 2;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "StatusUpdateEvent" Event: "Data" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int BELT_SUE_AUTO_STOP = 11;
+ public static final int BELT_SUE_EMERGENCY_STOP = 12;
+ public static final int BELT_SUE_SAFETY_STOP = 13;
+ public static final int BELT_SUE_TIMEOUT_STOP = 14;
+ public static final int BELT_SUE_MOTOR_OVERHEATING = 15;
+ public static final int BELT_SUE_MOTOR_FUSE_DEFECT = 16;
+ public static final int BELT_SUE_LIGHT_BARRIER_BACKWARD_INTERRUPTED = 17;
+ public static final int BELT_SUE_LIGHT_BARRIER_BACKWARD_OK = 18;
+ public static final int BELT_SUE_LIGHT_BARRIER_FORWARD_INTERRUPTED = 19;
+ public static final int BELT_SUE_LIGHT_BARRIER_FORWARD_OK = 20;
+ public static final int BELT_SUE_SECURITY_FLAP_BACKWARD_OPENED = 21;
+ public static final int BELT_SUE_SECURITY_FLAP_BACKWARD_CLOSED = 22;
+ public static final int BELT_SUE_SECURITY_FLAP_FORWARD_OPENED = 23;
+ public static final int BELT_SUE_SECURITY_FLAP_FORWARD_CLOSED = 24;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BeltControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/BeltControl112.java
new file mode 100644
index 0000000..dc1e98c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BeltControl112.java
@@ -0,0 +1,105 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BeltControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Belt for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// New device category.
+// 2010-Mar-16 JavaPOS Release 1.12.4 BS
+// Corrected return types of getCapSpeedStepsBackward() and
+// getCapSpeedStepsForward(). Was boolean, but should have been
+// int.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BeltControl112 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapAutoStopBackward() throws JposException;
+ public boolean getCapAutoStopBackwardItemCount() throws JposException;
+ public boolean getCapAutoStopForward() throws JposException;
+ public boolean getCapAutoStopForwardItemCount() throws JposException;
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapLightBarrierBackward() throws JposException;
+ public boolean getCapLightBarrierForward() throws JposException;
+ public boolean getCapMoveBackward() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapRealTimeData() throws JposException;
+ public boolean getCapSecurityFlapBackward() throws JposException;
+ public boolean getCapSecurityFlapForward() throws JposException;
+ public int getCapSpeedStepsBackward() throws JposException;
+ public int getCapSpeedStepsForward() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Properties
+ public boolean getAutoStopBackward() throws JposException;
+ public void setAutoStopBackward(boolean autoStop) throws JposException;
+ public int getAutoStopBackwardDelayTime() throws JposException;
+ public void setAutoStopBackwardDelayTime(int delayTime) throws JposException;
+ public int getAutoStopBackwardItemCount() throws JposException;
+ public boolean getAutoStopForward() throws JposException;
+ public void setAutoStopForward(boolean autoStop) throws JposException;
+ public int getAutoStopForwardDelayTime() throws JposException;
+ public void setAutoStopForwardDelayTime(int delayTime) throws JposException;
+ public int getAutoStopForwardItemCount() throws JposException;
+ public boolean getLightBarrierBackwardInterrupted() throws JposException;
+ public boolean getLightBarrierForwardInterrupted() throws JposException;
+ public int getMotionStatus() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public boolean getSecurityFlapBackwardOpened() throws JposException;
+ public boolean getSecurityFlapForwardOpened() throws JposException;
+
+ // Methods
+ public void adjustItemCount(int direction,
+ int count)
+ throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void moveBackward(int speed)
+ throws JposException;
+ public void moveForward(int speed)
+ throws JposException;
+ public void resetBelt()
+ throws JposException;
+ public void resetItemCount(int direction)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void stopBelt()
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+
+ // Event listener methods
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BeltControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/BeltControl113.java
new file mode 100644
index 0000000..307e56f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BeltControl113.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BeltControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Belt for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BeltControl113 extends BeltControl112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BeltControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/BeltControl114.java
new file mode 100644
index 0000000..61782c4
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BeltControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BeltControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Belt for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BeltControl114 extends BeltControl113
+{
+ // Nothing new added for release 1.14
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptor.java b/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptor.java
new file mode 100644
index 0000000..3201707
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptor.java
@@ -0,0 +1,1249 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BillAcceptor.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class BillAcceptor
+ extends BaseJposControl
+ implements BillAcceptorControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected BillAcceptorService111 service111;
+ protected BillAcceptorService112 service112;
+ protected BillAcceptorService113 service113;
+ protected BillAcceptorService114 service114;
+ protected Vector dataListeners;
+ protected Vector directIOListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public BillAcceptor()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS BillAcceptor Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ dataListeners = new Vector();
+ directIOListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapDiscrepancy()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapDiscrepancy();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapFullSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapFullSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapJamSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapJamSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapNearFullSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapNearFullSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapPauseDeposit()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapPauseDeposit();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRealTimeData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapRealTimeData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public String getCurrencyCode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCurrencyCode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCurrencyCode(String currencyCode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setCurrencyCode(currencyCode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDataEventEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getDataEventEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setDataEventEnabled(dataEventEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDepositAmount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getDepositAmount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getDepositCashList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getDepositCashList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getDepositCodeList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getDepositCodeList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getDepositCounts()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getDepositCounts();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDepositStatus()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getDepositStatus();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getFullStatus()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getFullStatus();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getRealTimeDataEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getRealTimeDataEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setRealTimeDataEnabled(boolean bEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setRealTimeDataEnabled(bEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void adjustCashCounts(String cashCounts)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.adjustCashCounts(cashCounts);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void beginDeposit()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.beginDeposit();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.clearInput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endDeposit(int success)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.endDeposit(success);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void fixDeposit()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.fixDeposit();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void pauseDeposit(int control)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.pauseDeposit(control);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void readCashCounts(String[] cashCounts, boolean[] discrepancy)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.readCashCounts(cashCounts, discrepancy);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new BillAcceptorCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (BillAcceptorService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BillAcceptorService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (BillAcceptorService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BillAcceptorService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (BillAcceptorService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BillAcceptorService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (BillAcceptorService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BillAcceptorService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.addElement(l);
+ }
+ }
+
+ public void removeDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.removeElement(l);
+ }
+ }
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class BillAcceptorCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)BillAcceptor.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ synchronized(BillAcceptor.this.dataListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < dataListeners.size(); x++)
+ {
+ ((DataListener)dataListeners.elementAt(x)).dataOccurred(e);
+ }
+ }
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(BillAcceptor.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(BillAcceptor.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptor.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptor.manifest.stub
new file mode 100644
index 0000000..057fd12
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptor.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/BillAcceptor.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptorBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptorBeanInfo.java
new file mode 100644
index 0000000..742f495
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptorBeanInfo.java
@@ -0,0 +1,106 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// BillAcceptorBeanInfo.java - Bean information for the JavaPOS BillAcceptor
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class BillAcceptorBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.BillAcceptor.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.BillAcceptor.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapDiscrepancy"),
+ makeProperty("CapFullSensor"),
+ makeProperty("CapJamSensor"),
+ makeProperty("CapNearFullSensor"),
+ makeProperty("CapPauseDeposit"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapRealTimeData"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateFirmware"),
+ makeProperty("CapUpdateStatistics"),
+
+ // Properties
+ makeProperty("CurrencyCode"),
+ makeProperty("DataCount"),
+ makeProperty("DataEventEnabled"),
+ makeProperty("DepositAmount"),
+ makeProperty("DepositCashList"),
+ makeProperty("DepositCodeList"),
+ makeProperty("DepositCounts"),
+ makeProperty("DepositStatus"),
+ makeProperty("FullStatus"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("RealTimeDataEnabled"),
+
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.BillAcceptor.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("Data"),
+ makeEvent("DirectIO"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptorConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptorConst.java
new file mode 100644
index 0000000..efb1252
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptorConst.java
@@ -0,0 +1,70 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BillAcceptorConst
+//
+// BillAcceptor constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface BillAcceptorConst
+{
+ //###################################################################
+ //#### BillAcceptor Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // "FullStatus" Property Constants
+ // "StatusUpdateEvent" Event Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int BACC_STATUS_OK = 0; // FullStatus
+
+ public static final int BACC_STATUS_FULL = 21; // FullStatus, StatusUpdateEvent
+ public static final int BACC_STATUS_NEARFULL = 22; // FullStatus, StatusUpdateEvent
+ public static final int BACC_STATUS_FULLOK = 23; // StatusUpdateEvent
+
+ public static final int BACC_STATUS_JAM = 31; // StatusUpdateEvent
+ public static final int BACC_STATUS_JAMOK = 32; // StatusUpdateEvent
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "DepositStatus" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int BACC_STATUS_DEPOSIT_START = 1;
+ public static final int BACC_STATUS_DEPOSIT_END = 2;
+ public static final int BACC_STATUS_DEPOSIT_COUNT = 4;
+ public static final int BACC_STATUS_DEPOSIT_JAM = 5;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "EndDeposit" Method Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int BACC_DEPOSIT_COMPLETE = 11;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "PauseDeposit" Method Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int BACC_DEPOSIT_PAUSE = 11;
+ public static final int BACC_DEPOSIT_RESTART = 12;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptorControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptorControl111.java
new file mode 100644
index 0000000..787c917
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptorControl111.java
@@ -0,0 +1,98 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BillAcceptorControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bill Acceptor for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BillAcceptorControl111 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapDiscrepancy() throws JposException;
+ public boolean getCapFullSensor() throws JposException;
+ public boolean getCapJamSensor() throws JposException;
+ public boolean getCapNearFullSensor() throws JposException;
+ public boolean getCapPauseDeposit() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapRealTimeData() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Properties
+ public String getCurrencyCode() throws JposException;
+ public void setCurrencyCode(String currencyCode) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public int getDepositAmount() throws JposException;
+ public String getDepositCashList() throws JposException;
+ public String getDepositCodeList() throws JposException;
+ public String getDepositCounts() throws JposException;
+ public int getDepositStatus() throws JposException;
+ public int getFullStatus() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public boolean getRealTimeDataEnabled() throws JposException;
+ public void setRealTimeDataEnabled(boolean bEnabled) throws JposException;
+
+ // Methods
+ public void adjustCashCounts(String cashCounts)
+ throws JposException;
+ public void beginDeposit()
+ throws JposException;
+ public void clearInput() throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void endDeposit(int success)
+ throws JposException;
+ public void fixDeposit()
+ throws JposException;
+ public void pauseDeposit(int control)
+ throws JposException;
+ public void readCashCounts(String[] cashCounts,
+ boolean[] discrepancy)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+
+
+ // Event listener methods
+ public void addDataListener(DataListener l);
+ public void removeDataListener(DataListener l);
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptorControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptorControl112.java
new file mode 100644
index 0000000..a85212e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptorControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BillAcceptorControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bill Acceptor for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BillAcceptorControl112 extends BillAcceptorControl111
+{
+ // Nothing new added for release 1.12
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptorControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptorControl113.java
new file mode 100644
index 0000000..8b4641a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptorControl113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BillAcceptorControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bill Acceptor for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BillAcceptorControl113 extends BillAcceptorControl112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptorControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptorControl114.java
new file mode 100644
index 0000000..4c65e1d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BillAcceptorControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BillAcceptorControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Bill Acceptor for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BillAcceptorControl114 extends BillAcceptorControl113
+{
+ // Nothing new added for release 1.14
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenser.java b/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenser.java
new file mode 100644
index 0000000..a90e046
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenser.java
@@ -0,0 +1,1098 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BillDispenser.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class BillDispenser
+ extends BaseJposControl
+ implements BillDispenserControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected BillDispenserService111 service111;
+ protected BillDispenserService112 service112;
+ protected BillDispenserService113 service113;
+ protected BillDispenserService114 service114;
+ protected Vector directIOListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public BillDispenser()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS BillDispenser Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ directIOListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapDiscrepancy()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapDiscrepancy();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapEmptySensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapEmptySensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapJamSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapJamSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapNearEmptySensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapNearEmptySensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public boolean getAsyncMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getAsyncMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAsyncMode(boolean asyncMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setAsyncMode(asyncMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getAsyncResultCode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getAsyncResultCode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getAsyncResultCodeExtended()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getAsyncResultCodeExtended();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getCurrencyCashList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCurrencyCashList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getCurrencyCode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCurrencyCode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCurrencyCode(String currencyCode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setCurrencyCode(currencyCode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getCurrencyCodeList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCurrencyCodeList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCurrentExit()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCurrentExit();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCurrentExit(int currentExit)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setCurrentExit(currentExit);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDeviceExits()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getDeviceExits();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDeviceStatus()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getDeviceStatus();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getExitCashList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getExitCashList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void adjustCashCounts(String cashCounts)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.adjustCashCounts(cashCounts);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearOutput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.clearOutput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void dispenseCash(String cashCounts)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.dispenseCash(cashCounts);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void readCashCounts(String[] cashCounts, boolean[] discrepancy)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.readCashCounts(cashCounts, discrepancy);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new BillDispenserCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (BillDispenserService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BillDispenserService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (BillDispenserService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BillDispenserService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (BillDispenserService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BillDispenserService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (BillDispenserService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BillDispenserService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class BillDispenserCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)BillDispenser.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(BillDispenser.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(BillDispenser.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenser.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenser.manifest.stub
new file mode 100644
index 0000000..62c77e9
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenser.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/BillDispenser.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenserBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenserBeanInfo.java
new file mode 100644
index 0000000..183ae7b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenserBeanInfo.java
@@ -0,0 +1,102 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// BillDispenserBeanInfo.java - Bean information for the JavaPOS BillDispenser
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class BillDispenserBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.BillDispenser.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.BillDispenser.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapDiscrepancy"),
+ makeProperty("CapEmptySensor"),
+ makeProperty("CapJamSensor"),
+ makeProperty("CapNearEmptySensor"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateFirmware"),
+ makeProperty("CapUpdateStatistics"),
+
+ // Properties
+ makeProperty("AsyncMode"),
+ makeProperty("AsyncResultCode"),
+ makeProperty("AsyncResultCodeExtended"),
+ makeProperty("CurrencyCashList"),
+ makeProperty("CurrencyCode"),
+ makeProperty("CurrencyCodeList"),
+ makeProperty("CurrentExit"),
+ makeProperty("DeviceExits"),
+ makeProperty("DeviceStatus"),
+ makeProperty("ExitCashList"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.BillDispenser.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("DirectIO"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenserConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenserConst.java
new file mode 100644
index 0000000..a039b07
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenserConst.java
@@ -0,0 +1,54 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BillDispenserConst
+//
+// BillDispenser constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface BillDispenserConst
+{
+ //###################################################################
+ //#### BillDispenser Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // "DeviceStatus" Property Constants
+ // "StatusUpdateEvent" Event Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int BDSP_STATUS_OK = 0; // DeviceStatus
+
+ public static final int BDSP_STATUS_EMPTY = 11; // DeviceStatus, StatusUpdateEvent
+ public static final int BDSP_STATUS_NEAREMPTY = 12; // DeviceStatus, StatusUpdateEvent
+ public static final int BDSP_STATUS_EMPTYOK = 13; // StatusUpdateEvent
+
+ public static final int BDSP_STATUS_JAM = 31; // DeviceStatus, StatusUpdateEvent
+ public static final int BDSP_STATUS_JAMOK = 32; // StatusUpdateEvent
+
+ public static final int BDSP_STATUS_ASYNC = 91; // StatusUpdateEvent
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ResultCodeExtended" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_EBDSP_OVERDISPENSE = 201; // DispenseCash
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenserControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenserControl111.java
new file mode 100644
index 0000000..51a2002
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenserControl111.java
@@ -0,0 +1,87 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BillDispenserControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bill Dispenser for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BillDispenserControl111 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapDiscrepancy() throws JposException;
+ public boolean getCapEmptySensor() throws JposException;
+ public boolean getCapJamSensor() throws JposException;
+ public boolean getCapNearEmptySensor() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Properties
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public int getAsyncResultCode() throws JposException;
+ public int getAsyncResultCodeExtended() throws JposException;
+ public String getCurrencyCashList() throws JposException;
+ public String getCurrencyCode() throws JposException;
+ public void setCurrencyCode(String currencyCode) throws JposException;
+ public String getCurrencyCodeList() throws JposException;
+ public int getCurrentExit() throws JposException;
+ public void setCurrentExit(int currentExit) throws JposException;
+ public int getDeviceExits() throws JposException;
+ public int getDeviceStatus() throws JposException;
+ public String getExitCashList() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+
+
+ // Methods
+ public void adjustCashCounts(String cashCounts)
+ throws JposException;
+ public void clearOutput() throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void dispenseCash(String cashCounts)
+ throws JposException;
+ public void readCashCounts(String[] cashCounts,
+ boolean[] discrepancy)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+
+ // Event listener methods
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenserControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenserControl112.java
new file mode 100644
index 0000000..be67fe8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenserControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BillDispenserControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bill Dispenser for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BillDispenserControl112 extends BillDispenserControl111
+{
+ // Nothing new added for release 1.12
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenserControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenserControl113.java
new file mode 100644
index 0000000..1963048
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenserControl113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BillDispenserControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bill Dispenser for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BillDispenserControl113 extends BillDispenserControl112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenserControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenserControl114.java
new file mode 100644
index 0000000..5d71e4c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BillDispenserControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BillDispenserControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Bill Dispenser for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BillDispenserControl114 extends BillDispenserControl113
+{
+ // Nothing new added for release 1.14
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/Biometrics.java b/org.eclipse.osbp.fork.jpos/src/jpos/Biometrics.java
new file mode 100644
index 0000000..181cd7e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/Biometrics.java
@@ -0,0 +1,1592 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// Biometrics.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class Biometrics
+ extends BaseJposControl
+ implements BiometricsControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected BiometricsService110 service110;
+ protected BiometricsService111 service111;
+ protected BiometricsService112 service112;
+ protected BiometricsService113 service113;
+ protected BiometricsService114 service114;
+ protected Vector dataListeners;
+ protected Vector directIOListeners;
+ protected Vector errorListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public Biometrics()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS Biometrics Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ dataListeners = new Vector();
+ directIOListeners = new Vector();
+ errorListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapPrematchData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapPrematchData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRawSensorData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapRawSensorData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRealTimeData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapRealTimeData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapSensorColor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapSensorColor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapSensorOrientation()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapSensorOrientation();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapSensorType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapSensorType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapTemplateAdaptation()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapTemplateAdaptation();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public int getAlgorithm()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getAlgorithm();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAlgorithm(int algorithm)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.setAlgorithm(algorithm);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getAlgorithmList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getAlgorithmList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getAutoDisable()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getAutoDisable();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAutoDisable(boolean autoDisable)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.setAutoDisable(autoDisable);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getBIR()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getBIR();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDataEventEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getDataEventEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.setDataEventEnabled(dataEventEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getRawSensorData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getRawSensorData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getRealTimeDataEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getRealTimeDataEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setRealTimeDataEnabled(boolean enabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.setRealTimeDataEnabled(enabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSensorBPP()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getSensorBPP();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSensorColor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getSensorColor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setSensorColor(int color)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.setSensorColor(color);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSensorHeight()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getSensorHeight();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSensorOrientation()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getSensorOrientation();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setSensorOrientation(int orientation)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.setSensorOrientation(orientation);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSensorType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getSensorType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setSensorType(int type)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.setSensorType(type);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSensorWidth()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getSensorWidth();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void beginEnrollCapture(byte[] referenceBIR, byte[] payload)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.beginEnrollCapture(referenceBIR, payload);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void beginVerifyCapture()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.beginVerifyCapture();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.clearInput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInputProperties()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.clearInputProperties();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endCapture()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.endCapture();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void identify(int maxFARRequested, int maxFRRRequested, boolean FARPrecedence, byte[][] referenceBIRPopulation, int[][] candidateRanking, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.identify(maxFARRequested, maxFRRRequested, FARPrecedence, referenceBIRPopulation, candidateRanking, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void identifyMatch(int maxFARRequested, int maxFRRRequested, boolean FARPrecedence, byte[] sampleBIR, byte[][] referenceBIRPopulation, int[][] candidateRanking)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.identifyMatch(maxFARRequested, maxFRRRequested, FARPrecedence, sampleBIR, referenceBIRPopulation, candidateRanking);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void processPrematchData(byte[] capturedBIR, byte[] prematchDataBIR, byte[][] processedBIR)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.processPrematchData(capturedBIR, prematchDataBIR, processedBIR);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void verify(int maxFARRequested, int maxFRRRequested, boolean FARPrecedence, byte[] referenceBIR, byte[][] adaptedBIR, boolean[] result, int[] FARAchieved, int[] FRRAchieved, byte[][] payload, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.verify(maxFARRequested, maxFRRRequested, FARPrecedence, referenceBIR, adaptedBIR, result, FARAchieved, FRRAchieved, payload, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void verifyMatch(int maxFARRequested, int maxFRRRequested, boolean FARPrecedence, byte[] sampleBIR, byte[] referenceBIR, byte[][] adaptedBIR, boolean[] result, int[] FARAchieved, int[] FRRAchieved, byte[][] payload)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.verifyMatch(maxFARRequested, maxFRRRequested, FARPrecedence, sampleBIR, referenceBIR, adaptedBIR, result, FARAchieved, FRRAchieved, payload);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new BiometricsCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (BiometricsService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BiometricsService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (BiometricsService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BiometricsService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (BiometricsService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BiometricsService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (BiometricsService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BiometricsService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (BiometricsService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BiometricsService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.addElement(l);
+ }
+ }
+
+ public void removeDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.removeElement(l);
+ }
+ }
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.addElement(l);
+ }
+ }
+
+ public void removeErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class BiometricsCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)Biometrics.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ synchronized(Biometrics.this.dataListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < dataListeners.size(); x++)
+ {
+ ((DataListener)dataListeners.elementAt(x)).dataOccurred(e);
+ }
+ }
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(Biometrics.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ synchronized(Biometrics.this.errorListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < errorListeners.size(); x++)
+ {
+ ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e);
+ }
+ }
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(Biometrics.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/Biometrics.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/Biometrics.manifest.stub
new file mode 100644
index 0000000..531a256
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/Biometrics.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/Biometrics.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BiometricsBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/BiometricsBeanInfo.java
new file mode 100644
index 0000000..7e07553
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BiometricsBeanInfo.java
@@ -0,0 +1,111 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// BiometricsBeanInfo.java - Bean information for the JavaPOS Biometrics
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class BiometricsBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.Biometrics.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.Biometrics.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapPrematchData"),
+ makeProperty("CapRawSensorData"),
+ makeProperty("CapRealTimeData"),
+ makeProperty("CapSensorColor"),
+ makeProperty("CapSensorOrientation"),
+ makeProperty("CapSensorType"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapTemplateAdaptation"),
+ makeProperty("CapUpdateFirmware"),
+ makeProperty("CapUpdateStatistics"),
+
+ // Properties
+ makeProperty("Algorithm"),
+ makeProperty("AlgorithmList"),
+ makeProperty("AutoDisable"),
+ makeProperty("BIR"),
+ makeProperty("DataCount"),
+ makeProperty("DataEventEnabled"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("RawSensorData"),
+ makeProperty("RealTimeDataEnabled"),
+ makeProperty("SensorBPP"),
+ makeProperty("SensorColor"),
+ makeProperty("SensorHeight"),
+ makeProperty("SensorOrientation"),
+ makeProperty("SensorType"),
+ makeProperty("SensorWidth")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.Biometrics.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("Data"),
+ makeEvent("DirectIO"),
+ makeEvent("Error"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BiometricsConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/BiometricsConst.java
new file mode 100644
index 0000000..480fe2b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BiometricsConst.java
@@ -0,0 +1,166 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BiometricsConst
+//
+// Biometrics constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+// 2006-Aug-11 JavaPOS Release 1.10.2 BS
+// - Added missing constants:
+// BIO_FAR_PRECEDENCE
+// BIO_FRR_PRECEDENCE
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+// Added new StatusUpdateEvent constants:
+// BIO_SUE_MOVE_SLOWER
+// BIO_SUE_MOVE_FASTER
+// BIO_SUE_SENSOR_DIRTY
+// Fixed incorrect spelling of constants:
+// BIO_CST_KEYSTROKE_DYNAMICS
+// BIO_ST_KEYSTROKE_DYNAMICS
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// Added new StatusUpdateEvent constant:
+// BIO_SUE_FAILED_READ
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+// Added new StatusUpdateEvent constants:
+// BIO_SUE_SENSOR_READY
+// BIO_SUE_SENSOR_COMPLETE
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface BiometricsConst
+{
+ //###################################################################
+ //#### Biometrics Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapSensorColor" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int BIO_CSC_MONO = 0x00000001;
+ public static final int BIO_CSC_GRAYSCALE = 0x00000002;
+ public static final int BIO_CSC_16 = 0x00000004;
+ public static final int BIO_CSC_256 = 0x00000008;
+ public static final int BIO_CSC_FULL = 0x00000010;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapSensorOrientation" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int BIO_CSO_NORMAL = 0x00000001;
+ public static final int BIO_CSO_RIGHT = 0x00000002;
+ public static final int BIO_CSO_INVERTED = 0x00000004;
+ public static final int BIO_CSO_LEFT = 0x00000008;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapSensorType" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int BIO_CST_FACIAL_FEATURES = 0x00000001;
+ public static final int BIO_CST_VOICE = 0x00000002;
+ public static final int BIO_CST_FINGERPRINT = 0x00000004;
+ public static final int BIO_CST_IRIS = 0x00000008;
+ public static final int BIO_CST_RETINA = 0x00000010;
+ public static final int BIO_CST_HAND_GEOMETRY = 0x00000020;
+ public static final int BIO_CST_SIGNATURE_DYNAMICS = 0x00000040;
+ public static final int BIO_CST_KEYSTROKE_DYNAMICS = 0x00000080;
+ public static final int BIO_CST_LIP_MOVEMENT = 0x00000100;
+ public static final int BIO_CST_THERMAL_FACE_IMAGE = 0x00000200;
+ public static final int BIO_CST_THERMAL_HAND_IMAGE = 0x00000400;
+ public static final int BIO_CST_GAIT = 0x00000800;
+ public static final int BIO_CST_PASSWORD = 0x00001000;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "SensorColor" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int BIO_SC_MONO = 1;
+ public static final int BIO_SC_GRAYSCALE = 2;
+ public static final int BIO_SC_16 = 3;
+ public static final int BIO_SC_256 = 4;
+ public static final int BIO_SC_FULL = 5;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "SensorOrientation" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int BIO_SO_NORMAL = 1;
+ public static final int BIO_SO_RIGHT = 2;
+ public static final int BIO_SO_INVERTED = 3;
+ public static final int BIO_SO_LEFT = 4;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "SensorType" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int BIO_ST_FACIAL_FEATURES = 1;
+ public static final int BIO_ST_VOICE = 2;
+ public static final int BIO_ST_FINGERPRINT = 3;
+ public static final int BIO_ST_IRIS = 4;
+ public static final int BIO_ST_RETINA = 5;
+ public static final int BIO_ST_HAND_GEOMETRY = 6;
+ public static final int BIO_ST_SIGNATURE_DYNAMICS = 7;
+ public static final int BIO_ST_KEYSTROKE_DYNAMICS = 8;
+ public static final int BIO_ST_LIP_MOVEMENT = 9;
+ public static final int BIO_ST_THERMAL_FACE_IMAGE = 10;
+ public static final int BIO_ST_THERMAL_HAND_IMAGE = 11;
+ public static final int BIO_ST_GAIT = 12;
+ public static final int BIO_ST_PASSWORD = 13;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "identify", "identifyMatch, "verify", and "verifyMatch"
+ // "FARPrecedence" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final boolean BIO_FAR_PRECEDENCE = true;
+ public static final boolean BIO_FRR_PRECEDENCE = false;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "DataEvent" "Status" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int BIO_DATA_ENROLL = 1;
+ public static final int BIO_DATA_VERIFY = 2;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "StatusUpdateEvent" "Status" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int BIO_SUE_RAW_DATA = 1;
+ public static final int BIO_SUE_MOVE_LEFT = 2;
+ public static final int BIO_SUE_MOVE_RIGHT = 3;
+ public static final int BIO_SUE_MOVE_DOWN = 4;
+ public static final int BIO_SUE_MOVE_UP = 5;
+ public static final int BIO_SUE_MOVE_CLOSER = 6;
+ public static final int BIO_SUE_MOVE_AWAY = 7;
+ public static final int BIO_SUE_MOVE_BACKWARD = 8;
+ public static final int BIO_SUE_MOVE_FORWARD = 9;
+ public static final int BIO_SUE_MOVE_SLOWER = 10; // 1.11
+ public static final int BIO_SUE_MOVE_FASTER = 11; // 1.11
+ public static final int BIO_SUE_SENSOR_DIRTY = 12; // 1.11
+ public static final int BIO_SUE_FAILED_READ = 13; // 1.12
+ public static final int BIO_SUE_SENSOR_READY = 14; // 1.13
+ public static final int BIO_SUE_SENSOR_COMPLETE = 15; // 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BiometricsControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/BiometricsControl110.java
new file mode 100644
index 0000000..91eab15
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BiometricsControl110.java
@@ -0,0 +1,143 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BiometricsControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Biometrics for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BiometricsControl110 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapPrematchData() throws JposException;
+ public boolean getCapRawSensorData() throws JposException;
+ public boolean getCapRealTimeData() throws JposException;
+ public int getCapSensorColor() throws JposException;
+ public int getCapSensorOrientation() throws JposException;
+ public int getCapSensorType() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapTemplateAdaptation() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Properties
+ public int getAlgorithm() throws JposException;
+ public void setAlgorithm(int algorithm) throws JposException;
+ public String getAlgorithmList() throws JposException;
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public byte[] getBIR() throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public byte[] getRawSensorData() throws JposException;
+ public boolean getRealTimeDataEnabled() throws JposException;
+ public void setRealTimeDataEnabled(boolean enabled) throws JposException;
+ public int getSensorBPP() throws JposException;
+ public int getSensorColor() throws JposException;
+ public void setSensorColor(int color) throws JposException;
+ public int getSensorHeight() throws JposException;
+ public int getSensorOrientation() throws JposException;
+ public void setSensorOrientation(int orientation) throws JposException;
+ public int getSensorType() throws JposException;
+ public void setSensorType(int type) throws JposException;
+ public int getSensorWidth() throws JposException;
+
+ // Methods
+ public void beginEnrollCapture(byte[] referenceBIR,
+ byte[] payload)
+ throws JposException;
+ public void beginVerifyCapture()
+ throws JposException;
+ public void clearInput() throws JposException;
+ public void clearInputProperties()
+ throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void endCapture()
+ throws JposException;
+ public void identify(int maxFARRequested,
+ int maxFRRRequested,
+ boolean FARPrecedence,
+ byte[][] referenceBIRPopulation,
+ int[][] candidateRanking,
+ int timeout)
+ throws JposException;
+ public void identifyMatch(int maxFARRequested,
+ int maxFRRRequested,
+ boolean FARPrecedence,
+ byte[] sampleBIR,
+ byte[][] referenceBIRPopulation,
+ int[][] candidateRanking)
+ throws JposException;
+ public void processPrematchData(byte[] capturedBIR,
+ byte[] prematchDataBIR,
+ byte[][] processedBIR)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+ public void verify(int maxFARRequested,
+ int maxFRRRequested,
+ boolean FARPrecedence,
+ byte[] referenceBIR,
+ byte[][] adaptedBIR,
+ boolean[] result,
+ int[] FARAchieved,
+ int[] FRRAchieved,
+ byte[][] payload,
+ int timeout)
+ throws JposException;
+ public void verifyMatch(int maxFARRequested,
+ int maxFRRRequested,
+ boolean FARPrecedence,
+ byte[] sampleBIR,
+ byte[] referenceBIR,
+ byte[][] adaptedBIR,
+ boolean[] result,
+ int[] FARAchieved,
+ int[] FRRAchieved,
+ byte[][] payload)
+ throws JposException;
+
+ // Event listener methods
+ public void addDataListener(DataListener l);
+ public void removeDataListener(DataListener l);
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addErrorListener(ErrorListener l);
+ public void removeErrorListener(ErrorListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BiometricsControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/BiometricsControl111.java
new file mode 100644
index 0000000..327038f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BiometricsControl111.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BiometricsControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Biometrics for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BiometricsControl111 extends BiometricsControl110
+{
+ // Specification changes marked as version 1.11 were incorporated into
+ // the JavaPOS controls 1.10.2 in order to fix implementation issues
+ // for early adopters.
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BiometricsControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/BiometricsControl112.java
new file mode 100644
index 0000000..63b1cac
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BiometricsControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BiometricsControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Biometrics for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BiometricsControl112 extends BiometricsControl111
+{
+ // Nothing new added for release 1.12
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BiometricsControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/BiometricsControl113.java
new file mode 100644
index 0000000..6f3484b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BiometricsControl113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BiometricsControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Biometrics for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BiometricsControl113 extends BiometricsControl112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BiometricsControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/BiometricsControl114.java
new file mode 100644
index 0000000..c57ecf3
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BiometricsControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BiometricsControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Biometrics for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BiometricsControl114 extends BiometricsControl113
+{
+ // Nothing new added for release 1.14
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BumpBar.java b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBar.java
new file mode 100644
index 0000000..4de65d2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBar.java
@@ -0,0 +1,1525 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBar.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class BumpBar
+ extends BaseJposControl
+ implements BumpBarControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected BumpBarService13 service13;
+ protected BumpBarService14 service14;
+ protected BumpBarService15 service15;
+ protected BumpBarService16 service16;
+ protected BumpBarService17 service17;
+ protected BumpBarService18 service18;
+ protected BumpBarService19 service19;
+ protected BumpBarService110 service110;
+ protected BumpBarService111 service111;
+ protected BumpBarService112 service112;
+ protected BumpBarService113 service113;
+ protected BumpBarService114 service114;
+ protected Vector dataListeners;
+ protected Vector directIOListeners;
+ protected Vector errorListeners;
+ protected Vector outputCompleteListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public BumpBar()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS BumpBar Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service13 = null;
+ //service14 = null;
+ //service15 = null;
+ //service16 = null;
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ dataListeners = new Vector();
+ directIOListeners = new Vector();
+ errorListeners = new Vector();
+ outputCompleteListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapTone()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapTone();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public boolean getAsyncMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getAsyncMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAsyncMode(boolean asyncMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setAsyncMode(asyncMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getAutoToneDuration()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getAutoToneDuration();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAutoToneDuration(int autoToneDuration)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setAutoToneDuration(autoToneDuration);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getAutoToneFrequency()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getAutoToneFrequency();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAutoToneFrequency(int autoToneFrequency)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setAutoToneFrequency(autoToneFrequency);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getBumpBarDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getBumpBarDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCurrentUnitID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCurrentUnitID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCurrentUnitID(int currentUnitID)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setCurrentUnitID(currentUnitID);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDataEventEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getDataEventEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setDataEventEnabled(dataEventEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getErrorString()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getErrorString();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getErrorUnits()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getErrorUnits();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getEventString()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getEventString();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getEventUnitID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getEventUnitID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getEventUnits()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getEventUnits();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getKeys()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getKeys();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getOutputID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getOutputID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTimeout()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getTimeout();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTimeout(int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setTimeout(timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getUnitsOnline()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getUnitsOnline();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void bumpBarSound(int units, int frequency, int duration, int numberOfCycles, int interSoundWait)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.bumpBarSound(units, frequency, duration, numberOfCycles, interSoundWait);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.clearInput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearOutput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.clearOutput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setKeyTranslation(int units, int scanCode, int logicalKey)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setKeyTranslation(units, scanCode, logicalKey);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new BumpBarCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service13 = null;
+ service14 = null;
+ service15 = null;
+ service16 = null;
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion13)
+ {
+ try
+ {
+ service13 = (BumpBarService13)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BumpBarService13 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion14)
+ {
+ try
+ {
+ service14 = (BumpBarService14)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BumpBarService14 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion15)
+ {
+ try
+ {
+ service15 = (BumpBarService15)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BumpBarService15 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion16)
+ {
+ try
+ {
+ service16 = (BumpBarService16)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BumpBarService16 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (BumpBarService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BumpBarService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (BumpBarService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BumpBarService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (BumpBarService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BumpBarService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (BumpBarService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BumpBarService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (BumpBarService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BumpBarService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (BumpBarService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BumpBarService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (BumpBarService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BumpBarService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (BumpBarService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement BumpBarService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.addElement(l);
+ }
+ }
+
+ public void removeDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.removeElement(l);
+ }
+ }
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.addElement(l);
+ }
+ }
+
+ public void removeErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.removeElement(l);
+ }
+ }
+
+ public void addOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.addElement(l);
+ }
+ }
+
+ public void removeOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class BumpBarCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)BumpBar.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ synchronized(BumpBar.this.dataListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < dataListeners.size(); x++)
+ {
+ ((DataListener)dataListeners.elementAt(x)).dataOccurred(e);
+ }
+ }
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(BumpBar.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ synchronized(BumpBar.this.errorListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < errorListeners.size(); x++)
+ {
+ ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e);
+ }
+ }
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ synchronized(BumpBar.this.outputCompleteListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < outputCompleteListeners.size(); x++)
+ {
+ ((OutputCompleteListener)outputCompleteListeners.elementAt(x)).outputCompleteOccurred(e);
+ }
+ }
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(BumpBar.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BumpBar.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBar.manifest.stub
new file mode 100644
index 0000000..c0dde7f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBar.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/BumpBar.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarBeanInfo.java
new file mode 100644
index 0000000..7c325d6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarBeanInfo.java
@@ -0,0 +1,108 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// BumpBarBeanInfo.java - Bean information for the JavaPOS BumpBar
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class BumpBarBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.BumpBar.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.BumpBar.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapTone"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapUpdateFirmware"),
+
+ // Properties
+ makeProperty("AsyncMode"),
+ makeProperty("AutoToneDuration"),
+ makeProperty("AutoToneFrequency"),
+ makeProperty("BumpBarDataCount"),
+ makeProperty("CurrentUnitID"),
+ makeProperty("DataCount"),
+ makeProperty("DataEventEnabled"),
+ makeProperty("ErrorString"),
+ makeProperty("ErrorUnits"),
+ makeProperty("EventString"),
+ makeProperty("EventUnitID"),
+ makeProperty("EventUnits"),
+ makeProperty("Keys"),
+ makeProperty("OutputID"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("Timeout"),
+ makeProperty("UnitsOnline")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.BumpBar.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("Data"),
+ makeEvent("DirectIO"),
+ makeEvent("Error"),
+ makeEvent("OutputComplete"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarConst.java
new file mode 100644
index 0000000..9a1117f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarConst.java
@@ -0,0 +1,71 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarConst
+//
+// Bump Bar constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface BumpBarConst
+{
+ /////////////////////////////////////////////////////////////////////
+ // "CurrentUnitID" and "UnitsOnline" Properties
+ // and "Units" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int BB_UID_1 = 0x00000001;
+ public static final int BB_UID_2 = 0x00000002;
+ public static final int BB_UID_3 = 0x00000004;
+ public static final int BB_UID_4 = 0x00000008;
+ public static final int BB_UID_5 = 0x00000010;
+ public static final int BB_UID_6 = 0x00000020;
+ public static final int BB_UID_7 = 0x00000040;
+ public static final int BB_UID_8 = 0x00000080;
+ public static final int BB_UID_9 = 0x00000100;
+ public static final int BB_UID_10 = 0x00000200;
+ public static final int BB_UID_11 = 0x00000400;
+ public static final int BB_UID_12 = 0x00000800;
+ public static final int BB_UID_13 = 0x00001000;
+ public static final int BB_UID_14 = 0x00002000;
+ public static final int BB_UID_15 = 0x00004000;
+ public static final int BB_UID_16 = 0x00008000;
+ public static final int BB_UID_17 = 0x00010000;
+ public static final int BB_UID_18 = 0x00020000;
+ public static final int BB_UID_19 = 0x00040000;
+ public static final int BB_UID_20 = 0x00080000;
+ public static final int BB_UID_21 = 0x00100000;
+ public static final int BB_UID_22 = 0x00200000;
+ public static final int BB_UID_23 = 0x00400000;
+ public static final int BB_UID_24 = 0x00800000;
+ public static final int BB_UID_25 = 0x01000000;
+ public static final int BB_UID_26 = 0x02000000;
+ public static final int BB_UID_27 = 0x04000000;
+ public static final int BB_UID_28 = 0x08000000;
+ public static final int BB_UID_29 = 0x10000000;
+ public static final int BB_UID_30 = 0x20000000;
+ public static final int BB_UID_31 = 0x40000000;
+ public static final int BB_UID_32 = 0x80000000;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "DataEvent" Event: "Status" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int BB_DE_KEY = 0x01;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl110.java
new file mode 100644
index 0000000..29a213c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl110.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BumpBarControl110 extends BumpBarControl19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl111.java
new file mode 100644
index 0000000..a710ecf
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BumpBarControl111 extends BumpBarControl110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl112.java
new file mode 100644
index 0000000..bc9af1c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BumpBarControl112 extends BumpBarControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl113.java
new file mode 100644
index 0000000..119ebfd
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BumpBarControl113 extends BumpBarControl112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl114.java
new file mode 100644
index 0000000..294f401
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Bump Bar for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BumpBarControl114 extends BumpBarControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl13.java b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl13.java
new file mode 100644
index 0000000..d5318b5
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl13.java
@@ -0,0 +1,84 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarControl13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BumpBarControl13 extends BaseControl
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapTone() throws JposException;
+
+ // Properties
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public int getAutoToneDuration() throws JposException;
+ public void setAutoToneDuration(int autoToneDuration)
+ throws JposException;
+ public int getAutoToneFrequency() throws JposException;
+ public void setAutoToneFrequency(int autoToneFrequency)
+ throws JposException;
+ public int getBumpBarDataCount() throws JposException;
+ public int getCurrentUnitID() throws JposException;
+ public void setCurrentUnitID(int currentUnitID) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public String getErrorString() throws JposException;
+ public int getErrorUnits() throws JposException;
+ public String getEventString() throws JposException;
+ public int getEventUnitID() throws JposException;
+ public int getEventUnits() throws JposException;
+ public int getKeys() throws JposException;
+ public int getOutputID() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getTimeout() throws JposException;
+ public void setTimeout(int timeout) throws JposException;
+ public int getUnitsOnline() throws JposException;
+
+ // Methods
+ public void bumpBarSound(int units, int frequency, int duration,
+ int numberOfCycles, int interSoundWait)
+ throws JposException;
+ public void clearInput() throws JposException;
+ public void clearOutput() throws JposException;
+ public void setKeyTranslation(int units, int scanCode, int logicalKey)
+ throws JposException;
+
+ // Event listener methods
+ public void addDataListener(DataListener l);
+ public void removeDataListener(DataListener l);
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addErrorListener(ErrorListener l);
+ public void removeErrorListener(ErrorListener l);
+ public void addOutputCompleteListener(OutputCompleteListener l);
+ public void removeOutputCompleteListener(OutputCompleteListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl14.java b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl14.java
new file mode 100644
index 0000000..5ebbd4d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarControl14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BumpBarControl14 extends BumpBarControl13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl15.java b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl15.java
new file mode 100644
index 0000000..dd4616f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl15.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarControl15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 00-04-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BumpBarControl15 extends BumpBarControl14
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl16.java b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl16.java
new file mode 100644
index 0000000..f7be368
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl16.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarControl16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-04-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BumpBarControl16 extends BumpBarControl15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl17.java
new file mode 100644
index 0000000..d027a14
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl17.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarControl17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BumpBarControl17 extends BumpBarControl16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl18.java
new file mode 100644
index 0000000..b8360fd
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl18.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BumpBarControl18 extends BumpBarControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl19.java
new file mode 100644
index 0000000..8be6e27
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/BumpBarControl19.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface BumpBarControl19 extends BumpBarControl18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CAT.java b/org.eclipse.osbp.fork.jpos/src/jpos/CAT.java
new file mode 100644
index 0000000..ce2bff6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CAT.java
@@ -0,0 +1,2223 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CAT.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class CAT
+ extends BaseJposControl
+ implements CATControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected CATService14 service14;
+ protected CATService15 service15;
+ protected CATService16 service16;
+ protected CATService17 service17;
+ protected CATService18 service18;
+ protected CATService19 service19;
+ protected CATService110 service110;
+ protected CATService111 service111;
+ protected CATService112 service112;
+ protected CATService113 service113;
+ protected CATService114 service114;
+ protected Vector directIOListeners;
+ protected Vector errorListeners;
+ protected Vector outputCompleteListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public CAT()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS CAT Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service14 = null;
+ //service15 = null;
+ //service16 = null;
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ directIOListeners = new Vector();
+ errorListeners = new Vector();
+ outputCompleteListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapAdditionalSecurityInformation()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getCapAdditionalSecurityInformation();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapAuthorizeCompletion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getCapAuthorizeCompletion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapAuthorizePreSales()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getCapAuthorizePreSales();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapAuthorizeRefund()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getCapAuthorizeRefund();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapAuthorizeVoid()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getCapAuthorizeVoid();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapAuthorizeVoidPreSales()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getCapAuthorizeVoidPreSales();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCenterResultCode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getCapCenterResultCode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCheckCard()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getCapCheckCard();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapDailyLog()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getCapDailyLog();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapInstallments()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getCapInstallments();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapPaymentDetail()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getCapPaymentDetail();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapTaxOthers()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getCapTaxOthers();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapTransactionNumber()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getCapTransactionNumber();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapTrainingMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getCapTrainingMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCashDeposit()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCashDeposit();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapLockTerminal()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapLockTerminal();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapLogStatus()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapLogStatus();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUnlockTerminal()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUnlockTerminal();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public String getAccountNumber()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getAccountNumber();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getAdditionalSecurityInformation()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getAdditionalSecurityInformation();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAdditionalSecurityInformation(String securityInfo)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service14.setAdditionalSecurityInformation(securityInfo);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getApprovalCode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getApprovalCode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getAsyncMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getAsyncMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAsyncMode(boolean asyncMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service14.setAsyncMode(asyncMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getCardCompanyID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getCardCompanyID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getCenterResultCode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getCenterResultCode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getDailyLog()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getDailyLog();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPaymentCondition()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getPaymentCondition();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getPaymentDetail()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getPaymentDetail();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service14.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSequenceNumber()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getSequenceNumber();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getSlipNumber()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getSlipNumber();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getTrainingMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getTrainingMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTrainingMode(boolean trainingMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service14.setTrainingMode(trainingMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getTransactionNumber()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getTransactionNumber();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getTransactionType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service14.getTransactionType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPaymentMedia()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getPaymentMedia();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPaymentMedia(int paymentMedia)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setPaymentMedia(paymentMedia);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public long getBalance()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getBalance();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getLogStatus()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getLogStatus();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public long getSettledAmount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getSettledAmount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getOutputID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.13.0
+ if(serviceVersion < deviceVersion113)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.13.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service113.getOutputID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void accessDailyLog(int sequenceNumber, int type, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service14.accessDailyLog(sequenceNumber, type, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void authorizeCompletion(int sequenceNumber, long amount, long taxOthers, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service14.authorizeCompletion(sequenceNumber, amount, taxOthers, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void authorizePreSales(int sequenceNumber, long amount, long taxOthers, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service14.authorizePreSales(sequenceNumber, amount, taxOthers, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void authorizeRefund(int sequenceNumber, long amount, long taxOthers, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service14.authorizeRefund(sequenceNumber, amount, taxOthers, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void authorizeSales(int sequenceNumber, long amount, long taxOthers, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service14.authorizeSales(sequenceNumber, amount, taxOthers, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void authorizeVoid(int sequenceNumber, long amount, long taxOthers, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service14.authorizeVoid(sequenceNumber, amount, taxOthers, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void authorizeVoidPreSales(int sequenceNumber, long amount, long taxOthers, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service14.authorizeVoidPreSales(sequenceNumber, amount, taxOthers, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void checkCard(int sequenceNumber, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service14.checkCard(sequenceNumber, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearOutput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service14.clearOutput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void cashDeposit(int sequenceNumber, long amount, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.cashDeposit(sequenceNumber, amount, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void lockTerminal()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.lockTerminal();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void unlockTerminal()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.unlockTerminal();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new CATCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service14 = null;
+ service15 = null;
+ service16 = null;
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion14)
+ {
+ try
+ {
+ service14 = (CATService14)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CATService14 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion15)
+ {
+ try
+ {
+ service15 = (CATService15)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CATService15 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion16)
+ {
+ try
+ {
+ service16 = (CATService16)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CATService16 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (CATService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CATService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (CATService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CATService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (CATService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CATService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (CATService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CATService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (CATService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CATService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (CATService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CATService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (CATService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CATService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (CATService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CATService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.addElement(l);
+ }
+ }
+
+ public void removeErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.removeElement(l);
+ }
+ }
+
+ public void addOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.addElement(l);
+ }
+ }
+
+ public void removeOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class CATCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)CAT.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(CAT.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ synchronized(CAT.this.errorListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < errorListeners.size(); x++)
+ {
+ ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e);
+ }
+ }
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ synchronized(CAT.this.outputCompleteListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < outputCompleteListeners.size(); x++)
+ {
+ ((OutputCompleteListener)outputCompleteListeners.elementAt(x)).outputCompleteOccurred(e);
+ }
+ }
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(CAT.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CAT.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/CAT.manifest.stub
new file mode 100644
index 0000000..249d46b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CAT.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/CAT.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CATBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/CATBeanInfo.java
new file mode 100644
index 0000000..e012471
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CATBeanInfo.java
@@ -0,0 +1,127 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// CATBeanInfo.java - Bean information for the JavaPOS CAT
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class CATBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.CAT.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.CAT.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapAdditionalSecurityInformation"),
+ makeProperty("CapAuthorizeCompletion"),
+ makeProperty("CapAuthorizePreSales"),
+ makeProperty("CapAuthorizeRefund"),
+ makeProperty("CapAuthorizeVoid"),
+ makeProperty("CapAuthorizeVoidPreSales"),
+ makeProperty("CapCenterResultCode"),
+ makeProperty("CapCheckCard"),
+ makeProperty("CapDailyLog"),
+ makeProperty("CapInstallments"),
+ makeProperty("CapPaymentDetail"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapTaxOthers"),
+ makeProperty("CapTransactionNumber"),
+ makeProperty("CapTrainingMode"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCashDeposit"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapLockTerminal"),
+ makeProperty("CapLogStatus"),
+ makeProperty("CapUnlockTerminal"),
+ makeProperty("CapUpdateFirmware"),
+
+ // Properties
+ makeProperty("AccountNumber"),
+ makeProperty("AdditionalSecurityInformation"),
+ makeProperty("ApprovalCode"),
+ makeProperty("AsyncMode"),
+ makeProperty("CardCompanyID"),
+ makeProperty("CenterResultCode"),
+ makeProperty("DailyLog"),
+ makeProperty("PaymentCondition"),
+ makeProperty("PaymentDetail"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("SequenceNumber"),
+ makeProperty("SlipNumber"),
+ makeProperty("TrainingMode"),
+ makeProperty("TransactionNumber"),
+ makeProperty("TransactionType"),
+ makeProperty("PaymentMedia"),
+ makeProperty("Balance"),
+ makeProperty("LogStatus"),
+ makeProperty("SettledAmount"),
+ makeProperty("OutputID")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.CAT.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("DirectIO"),
+ makeEvent("Error"),
+ makeEvent("OutputComplete"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CATConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/CATConst.java
new file mode 100644
index 0000000..f26a169
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CATConst.java
@@ -0,0 +1,114 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATConst
+//
+// Credit Authorization Terminal constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 1998-Nov-02 JavaPOS Release 1.4 BS
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+// Added the following constants:
+// CAT_PAYMENT_ELECTRONIC_MONEY
+// CAT_TRANSACTION_CASHDEPOSIT
+// CAT_MEDIA_ELECTRONIC_MONEY
+// JPOS_ECAT_DEFICIENT
+// JPOS_ECAT_OVERDEPOSIT
+// CAT_LOGSTATUS_OK
+// CAT_LOGSTATUS_NEARFULL
+// CAT_LOGSTATUS_FULL
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface CATConst
+{
+ /////////////////////////////////////////////////////////////////////
+ // Payment Condition Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int CAT_PAYMENT_LUMP = 10;
+ public static final int CAT_PAYMENT_BONUS_1 = 21;
+ public static final int CAT_PAYMENT_BONUS_2 = 22;
+ public static final int CAT_PAYMENT_BONUS_3 = 23;
+ public static final int CAT_PAYMENT_BONUS_4 = 24;
+ public static final int CAT_PAYMENT_BONUS_5 = 25;
+ public static final int CAT_PAYMENT_INSTALLMENT_1 = 61;
+ public static final int CAT_PAYMENT_INSTALLMENT_2 = 62;
+ public static final int CAT_PAYMENT_INSTALLMENT_3 = 63;
+ public static final int CAT_PAYMENT_BONUS_COMBINATION_1 = 31;
+ public static final int CAT_PAYMENT_BONUS_COMBINATION_2 = 32;
+ public static final int CAT_PAYMENT_BONUS_COMBINATION_3 = 33;
+ public static final int CAT_PAYMENT_BONUS_COMBINATION_4 = 34;
+ public static final int CAT_PAYMENT_REVOLVING = 80;
+ public static final int CAT_PAYMENT_DEBIT = 110;
+ public static final int CAT_PAYMENT_ELECTRONIC_MONEY = 111;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // Transaction Type Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int CAT_TRANSACTION_SALES = 10;
+ public static final int CAT_TRANSACTION_VOID = 20;
+ public static final int CAT_TRANSACTION_REFUND = 21;
+ public static final int CAT_TRANSACTION_VOIDPRESALES = 29;
+ public static final int CAT_TRANSACTION_COMPLETION = 30;
+ public static final int CAT_TRANSACTION_PRESALES = 40;
+ public static final int CAT_TRANSACTION_CHECKCARD = 41;
+ public static final int CAT_TRANSACTION_CASHDEPOSIT = 50;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "PaymentMedia' Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int CAT_MEDIA_UNSPECIFIED = 0;
+ public static final int CAT_MEDIA_NONDEFINE = 0;
+ public static final int CAT_MEDIA_CREDIT = 1;
+ public static final int CAT_MEDIA_DEBIT = 2;
+ public static final int CAT_MEDIA_ELECTRONIC_MONEY = 3;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "Daily Log" Property & Argument Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int CAT_DL_NONE = 0; //None of them
+ public static final int CAT_DL_REPORTING = 1; //Only Reporting
+ public static final int CAT_DL_SETTLEMENT = 2; //Only Settlement
+ public static final int CAT_DL_REPORTING_SETTLEMENT = 3; //Both of them
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "LogStatus" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int CAT_LOGSTATUS_OK = 1;
+ public static final int CAT_LOGSTATUS_NEARFULL = 2;
+ public static final int CAT_LOGSTATUS_FULL = 3;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // ResultCodeExtended Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_ECAT_CENTERERROR = 01;
+ public static final int JPOS_ECAT_COMMANDERROR = 90;
+ public static final int JPOS_ECAT_RESET = 91;
+ public static final int JPOS_ECAT_COMMUNICATIONERROR = 92;
+ public static final int JPOS_ECAT_DAILYLOGOVERFLOW = 200;
+ public static final int JPOS_ECAT_DEFICIENT = 201;
+ public static final int JPOS_ECAT_OVERDEPOSIT = 202;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CATControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl110.java
new file mode 100644
index 0000000..1c6d70c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl110.java
@@ -0,0 +1,31 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATControl110
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CATControl110 extends CATControl19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CATControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl111.java
new file mode 100644
index 0000000..dc0ba04
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl111.java
@@ -0,0 +1,31 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATControl111
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CATControl111 extends CATControl110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CATControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl112.java
new file mode 100644
index 0000000..24aeb76
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl112.java
@@ -0,0 +1,31 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATControl112
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CATControl112 extends CATControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CATControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl113.java
new file mode 100644
index 0000000..6a9912c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl113.java
@@ -0,0 +1,34 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATControl113
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+// 2010-Nov-17 JavaPOS Release 1.13.3 BS
+// Added missing property OutputID
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CATControl113 extends CATControl112
+{
+ // Properties
+ public int getOutputID() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CATControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl114.java
new file mode 100644
index 0000000..0c5c7e4
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl114.java
@@ -0,0 +1,31 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATControl114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CATControl114 extends CATControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CATControl14.java b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl14.java
new file mode 100644
index 0000000..3e68e32
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl14.java
@@ -0,0 +1,98 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATControl14
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.4.
+//
+// Modification history
+// ---------------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CATControl14 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapAdditionalSecurityInformation() throws JposException;
+ public boolean getCapAuthorizeCompletion() throws JposException;
+ public boolean getCapAuthorizePreSales() throws JposException;
+ public boolean getCapAuthorizeRefund() throws JposException;
+ public boolean getCapAuthorizeVoid() throws JposException;
+ public boolean getCapAuthorizeVoidPreSales() throws JposException;
+ public boolean getCapCenterResultCode() throws JposException;
+ public boolean getCapCheckCard() throws JposException;
+ public int getCapDailyLog() throws JposException;
+ public boolean getCapInstallments() throws JposException;
+ public boolean getCapPaymentDetail() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapTaxOthers() throws JposException;
+ public boolean getCapTransactionNumber() throws JposException;
+ public boolean getCapTrainingMode() throws JposException;
+
+ // Properties
+ public String getAccountNumber() throws JposException;
+ public String getAdditionalSecurityInformation() throws JposException;
+ public void setAdditionalSecurityInformation(String securityInfo)
+ throws JposException;
+ public String getApprovalCode() throws JposException;
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public String getCardCompanyID() throws JposException;
+ public String getCenterResultCode() throws JposException;
+ public String getDailyLog() throws JposException;
+ public int getPaymentCondition() throws JposException;
+ public String getPaymentDetail() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getSequenceNumber() throws JposException;
+ public String getSlipNumber() throws JposException;
+ public boolean getTrainingMode() throws JposException;
+ public void setTrainingMode(boolean trainingMode) throws JposException;
+ public String getTransactionNumber() throws JposException;
+ public String getTransactionType() throws JposException;
+
+ // Methods
+ public void accessDailyLog(int sequenceNumber, int type, int timeout)
+ throws JposException;
+ public void authorizeCompletion(int sequenceNumber, long amount,
+ long taxOthers, int timeout) throws JposException;
+ public void authorizePreSales(int sequenceNumber, long amount,
+ long taxOthers, int timeout) throws JposException;
+ public void authorizeRefund(int sequenceNumber, long amount,
+ long taxOthers, int timeout) throws JposException;
+ public void authorizeSales(int sequenceNumber, long amount,
+ long taxOthers, int timeout) throws JposException;
+ public void authorizeVoid(int sequenceNumber, long amount,
+ long taxOthers, int timeout) throws JposException;
+ public void authorizeVoidPreSales(int sequenceNumber, long amount,
+ long taxOthers, int timeout) throws JposException;
+ public void checkCard(int sequenceNumber, int timeout)
+ throws JposException;
+ public void clearOutput() throws JposException;
+
+ // Event listener methods
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addErrorListener(ErrorListener l);
+ public void removeErrorListener(ErrorListener l);
+ public void addOutputCompleteListener(OutputCompleteListener l);
+ public void removeOutputCompleteListener(OutputCompleteListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CATControl15.java b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl15.java
new file mode 100644
index 0000000..2c94d0a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl15.java
@@ -0,0 +1,33 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATControl15
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.5.
+//
+// Modification history
+// ---------------------------------------------------------------------------
+// 00-04-17 JavaPOS Release 1.5 BS
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CATControl15 extends CATControl14
+{
+ // Properties
+ public int getPaymentMedia() throws JposException;
+ public void setPaymentMedia(int paymentMedia) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CATControl16.java b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl16.java
new file mode 100644
index 0000000..3db3144
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl16.java
@@ -0,0 +1,31 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATControl16
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.6.
+//
+// Modification history
+// ---------------------------------------------------------------------------
+// 01-04-18 JavaPOS Release 1.6 BS
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CATControl16 extends CATControl15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CATControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl17.java
new file mode 100644
index 0000000..2b92e06
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl17.java
@@ -0,0 +1,31 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATControl17
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.7.
+//
+// Modification history
+// ---------------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CATControl17 extends CATControl16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CATControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl18.java
new file mode 100644
index 0000000..d113cb4
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl18.java
@@ -0,0 +1,41 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATControl18
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.8.
+//
+// Modification history
+// ---------------------------------------------------------------------------
+// 03-Jun-2003 JavaPOS Release 1.8 BS
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CATControl18 extends CATControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CATControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl19.java
new file mode 100644
index 0000000..772e567
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CATControl19.java
@@ -0,0 +1,54 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATControl19
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CATControl19 extends CATControl18
+{
+ // Capabilities
+ public boolean getCapCashDeposit() throws JposException;
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapLockTerminal() throws JposException;
+ public boolean getCapLogStatus() throws JposException;
+ public boolean getCapUnlockTerminal() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Properties
+ public long getBalance() throws JposException;
+ public int getLogStatus() throws JposException;
+ public long getSettledAmount() throws JposException;
+
+ // Methods
+ public void cashDeposit(int sequenceNumber, long amount, int timeout)
+ throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void lockTerminal()
+ throws JposException;
+ public void unlockTerminal()
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashChanger.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashChanger.java
new file mode 100644
index 0000000..89f9b74
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashChanger.java
@@ -0,0 +1,2225 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChanger.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class CashChanger
+ extends BaseJposControl
+ implements CashChangerControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected CashChangerService12 service12;
+ protected CashChangerService13 service13;
+ protected CashChangerService14 service14;
+ protected CashChangerService15 service15;
+ protected CashChangerService16 service16;
+ protected CashChangerService17 service17;
+ protected CashChangerService18 service18;
+ protected CashChangerService19 service19;
+ protected CashChangerService110 service110;
+ protected CashChangerService111 service111;
+ protected CashChangerService112 service112;
+ protected CashChangerService113 service113;
+ protected CashChangerService114 service114;
+ protected Vector directIOListeners;
+ protected Vector statusUpdateListeners;
+ protected Vector dataListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public CashChanger()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS CashChanger Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service12 = null;
+ //service13 = null;
+ //service14 = null;
+ //service15 = null;
+ //service16 = null;
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ directIOListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ dataListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapDiscrepancy()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapDiscrepancy();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapEmptySensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapEmptySensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapFullSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapFullSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapNearEmptySensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapNearEmptySensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapNearFullSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapNearFullSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapDeposit()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapDeposit();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapDepositDataEvent()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapDepositDataEvent();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapPauseDeposit()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapPauseDeposit();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRepayDeposit()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapRepayDeposit();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapJamSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.11.0
+ if(serviceVersion < deviceVersion111)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.11.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapJamSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRealTimeData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.11.0
+ if(serviceVersion < deviceVersion111)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.11.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapRealTimeData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public boolean getAsyncMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getAsyncMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAsyncMode(boolean asyncMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setAsyncMode(asyncMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getAsyncResultCode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getAsyncResultCode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getAsyncResultCodeExtended()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getAsyncResultCodeExtended();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getCurrencyCashList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCurrencyCashList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getCurrencyCode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCurrencyCode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCurrencyCode(String currencyCode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setCurrencyCode(currencyCode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getCurrencyCodeList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCurrencyCodeList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCurrentExit()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCurrentExit();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCurrentExit(int currentExit)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setCurrentExit(currentExit);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDeviceExits()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getDeviceExits();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDeviceStatus()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getDeviceStatus();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getExitCashList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getExitCashList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getFullStatus()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getFullStatus();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDataEventEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getDataEventEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setDataEventEnabled(dataEventEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDepositAmount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getDepositAmount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getDepositCashList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getDepositCashList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getDepositCodeList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getDepositCodeList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getDepositCounts()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getDepositCounts();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDepositStatus()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getDepositStatus();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCurrentService()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.11.0
+ if(serviceVersion < deviceVersion111)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.11.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCurrentService();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCurrentService(int currentService)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.11.0
+ if(serviceVersion < deviceVersion111)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.11.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setCurrentService(currentService);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getRealTimeDataEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.11.0
+ if(serviceVersion < deviceVersion111)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.11.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getRealTimeDataEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setRealTimeDataEnabled(boolean bEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.11.0
+ if(serviceVersion < deviceVersion111)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.11.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setRealTimeDataEnabled(bEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getServiceCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.11.0
+ if(serviceVersion < deviceVersion111)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.11.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getServiceCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getServiceIndex()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.11.0
+ if(serviceVersion < deviceVersion111)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.11.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getServiceIndex();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void dispenseCash(String cashCounts)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.dispenseCash(cashCounts);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void dispenseChange(int amount)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.dispenseChange(amount);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void readCashCounts(String[] cashCounts, boolean[] discrepancy)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.readCashCounts(cashCounts, discrepancy);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void beginDeposit()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.beginDeposit();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.clearInput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endDeposit(int success)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.endDeposit(success);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void fixDeposit()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.fixDeposit();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void pauseDeposit(int control)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.pauseDeposit(control);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void adjustCashCounts(String cashCounts)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.11.0
+ if(serviceVersion < deviceVersion111)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.11.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.adjustCashCounts(cashCounts);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new CashChangerCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service12 = null;
+ service13 = null;
+ service14 = null;
+ service15 = null;
+ service16 = null;
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion12)
+ {
+ try
+ {
+ service12 = (CashChangerService12)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashChangerService12 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion13)
+ {
+ try
+ {
+ service13 = (CashChangerService13)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashChangerService13 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion14)
+ {
+ try
+ {
+ service14 = (CashChangerService14)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashChangerService14 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion15)
+ {
+ try
+ {
+ service15 = (CashChangerService15)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashChangerService15 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion16)
+ {
+ try
+ {
+ service16 = (CashChangerService16)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashChangerService16 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (CashChangerService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashChangerService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (CashChangerService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashChangerService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (CashChangerService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashChangerService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (CashChangerService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashChangerService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (CashChangerService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashChangerService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (CashChangerService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashChangerService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (CashChangerService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashChangerService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (CashChangerService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashChangerService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+ public void addDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.addElement(l);
+ }
+ }
+
+ public void removeDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class CashChangerCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)CashChanger.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ synchronized(CashChanger.this.dataListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < dataListeners.size(); x++)
+ {
+ ((DataListener)dataListeners.elementAt(x)).dataOccurred(e);
+ }
+ }
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(CashChanger.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(CashChanger.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashChanger.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/CashChanger.manifest.stub
new file mode 100644
index 0000000..3ac2271
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashChanger.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/CashChanger.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerBeanInfo.java
new file mode 100644
index 0000000..74d44a2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerBeanInfo.java
@@ -0,0 +1,122 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// CashChangerBeanInfo.java - Bean information for the JavaPOS CashChanger
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class CashChangerBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.CashChanger.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.CashChanger.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapDiscrepancy"),
+ makeProperty("CapEmptySensor"),
+ makeProperty("CapFullSensor"),
+ makeProperty("CapNearEmptySensor"),
+ makeProperty("CapNearFullSensor"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapDeposit"),
+ makeProperty("CapDepositDataEvent"),
+ makeProperty("CapPauseDeposit"),
+ makeProperty("CapRepayDeposit"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapUpdateFirmware"),
+ makeProperty("CapJamSensor"),
+ makeProperty("CapRealTimeData"),
+
+ // Properties
+ makeProperty("AsyncMode"),
+ makeProperty("AsyncResultCode"),
+ makeProperty("AsyncResultCodeExtended"),
+ makeProperty("CurrencyCashList"),
+ makeProperty("CurrencyCode"),
+ makeProperty("CurrencyCodeList"),
+ makeProperty("CurrentExit"),
+ makeProperty("DeviceExits"),
+ makeProperty("DeviceStatus"),
+ makeProperty("ExitCashList"),
+ makeProperty("FullStatus"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("DataCount"),
+ makeProperty("DataEventEnabled"),
+ makeProperty("DepositAmount"),
+ makeProperty("DepositCashList"),
+ makeProperty("DepositCodeList"),
+ makeProperty("DepositCounts"),
+ makeProperty("DepositStatus"),
+ makeProperty("CurrentService"),
+ makeProperty("RealTimeDataEnabled"),
+ makeProperty("ServiceCount"),
+ makeProperty("ServiceIndex")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.CashChanger.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("Data"),
+ makeEvent("DirectIO"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerConst.java
new file mode 100644
index 0000000..86bbd45
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerConst.java
@@ -0,0 +1,85 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerConst
+//
+// Cash Changer constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface CashChangerConst
+{
+ //###################################################################
+ //#### Cash Changer Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // "DeviceStatus" and "FullStatus" Property Constants
+ // "StatusUpdateEvent" Event Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int CHAN_STATUS_OK = 0; // DeviceStatus, FullStatus
+
+ public static final int CHAN_STATUS_EMPTY = 11; // DeviceStatus, StatusUpdateEvent
+ public static final int CHAN_STATUS_NEAREMPTY= 12; // DeviceStatus, StatusUpdateEvent
+ public static final int CHAN_STATUS_EMPTYOK = 13; // StatusUpdateEvent
+
+ public static final int CHAN_STATUS_FULL = 21; // FullStatus, StatusUpdateEvent
+ public static final int CHAN_STATUS_NEARFULL = 22; // FullStatus, StatusUpdateEvent
+ public static final int CHAN_STATUS_FULLOK = 23; // StatusUpdateEvent
+
+ public static final int CHAN_STATUS_JAM = 31; // DeviceStatus, StatusUpdateEvent
+ public static final int CHAN_STATUS_JAMOK = 32; // StatusUpdateEvent
+
+ public static final int CHAN_STATUS_ASYNC = 91; // StatusUpdateEvent
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "DepositStatus" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int CHAN_STATUS_DEPOSIT_START = 1;
+ public static final int CHAN_STATUS_DEPOSIT_END = 2;
+ public static final int CHAN_STATUS_DEPOSIT_NONE = 3;
+ public static final int CHAN_STATUS_DEPOSIT_COUNT = 4;
+ public static final int CHAN_STATUS_DEPOSIT_JAM = 5;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "EndDeposit" Method: "Success" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int CHAN_DEPOSIT_CHANGE = 1;
+ public static final int CHAN_DEPOSIT_NOCHANGE = 2;
+ public static final int CHAN_DEPOSIT_REPAY = 3;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "PauseDeposit" Method: "Control" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int CHAN_DEPOSIT_PAUSE = 11;
+ public static final int CHAN_DEPOSIT_RESTART = 12;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ResultCodeExtended" Property Constants for Cash Changer
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_ECHAN_OVERDISPENSE = 1 + JposConst.JPOSERREXT;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl110.java
new file mode 100644
index 0000000..757d521
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl110.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashChangerControl110 extends CashChangerControl19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl111.java
new file mode 100644
index 0000000..862a897
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl111.java
@@ -0,0 +1,46 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+// 2008-Jul-23 Corrected spelling mistake of setCurrentService BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashChangerControl111 extends CashChangerControl110
+{
+ // Capabilities
+ public boolean getCapJamSensor() throws JposException;
+ public boolean getCapRealTimeData() throws JposException;
+
+ // Properties
+ public int getCurrentService() throws JposException;
+ public void setCurrentService(int currentService) throws JposException;
+ public boolean getRealTimeDataEnabled() throws JposException;
+ public void setRealTimeDataEnabled(boolean bEnabled) throws JposException;
+ public int getServiceCount() throws JposException;
+ public int getServiceIndex() throws JposException;
+
+ // Methods
+ public void adjustCashCounts(String cashCounts)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl112.java
new file mode 100644
index 0000000..dcdaf50
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashChangerControl112 extends CashChangerControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl113.java
new file mode 100644
index 0000000..7c76cd8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashChangerControl113 extends CashChangerControl112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl114.java
new file mode 100644
index 0000000..2ec286e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Cash Changer for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashChangerControl114 extends CashChangerControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl12.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl12.java
new file mode 100644
index 0000000..dad2d9b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl12.java
@@ -0,0 +1,64 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerControl12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to Cash Changer for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashChangerControl12 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapDiscrepancy() throws JposException;
+ public boolean getCapEmptySensor() throws JposException;
+ public boolean getCapFullSensor() throws JposException;
+ public boolean getCapNearEmptySensor() throws JposException;
+ public boolean getCapNearFullSensor() throws JposException;
+
+ // Properties
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public int getAsyncResultCode() throws JposException;
+ public int getAsyncResultCodeExtended() throws JposException;
+ public String getCurrencyCashList() throws JposException;
+ public String getCurrencyCode() throws JposException;
+ public void setCurrencyCode(String currencyCode) throws JposException;
+ public String getCurrencyCodeList() throws JposException;
+ public int getCurrentExit() throws JposException;
+ public void setCurrentExit(int currentExit) throws JposException;
+ public int getDeviceExits() throws JposException;
+ public int getDeviceStatus() throws JposException;
+ public String getExitCashList() throws JposException;
+ public int getFullStatus() throws JposException;
+
+ // Methods
+ public void dispenseCash(String cashCounts) throws JposException;
+ public void dispenseChange(int amount) throws JposException;
+ public void readCashCounts(String[] cashCounts,
+ boolean[] discrepancy) throws JposException;
+
+ // Event listener methods
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl13.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl13.java
new file mode 100644
index 0000000..42a31b8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl13.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerControl13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashChangerControl13 extends CashChangerControl12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl14.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl14.java
new file mode 100644
index 0000000..b6c6542
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerControl14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashChangerControl14 extends CashChangerControl13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl15.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl15.java
new file mode 100644
index 0000000..d8049a0
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl15.java
@@ -0,0 +1,57 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerControl15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 00-04-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashChangerControl15 extends CashChangerControl14
+{
+ // Capabilities
+ public boolean getCapDeposit() throws JposException;
+ public boolean getCapDepositDataEvent() throws JposException;
+ public boolean getCapPauseDeposit() throws JposException;
+ public boolean getCapRepayDeposit() throws JposException;
+
+ // Properties
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public int getDepositAmount() throws JposException;
+ public String getDepositCashList() throws JposException;
+ public String getDepositCodeList() throws JposException;
+ public String getDepositCounts() throws JposException;
+ public int getDepositStatus() throws JposException;
+
+ // Methods
+ public void beginDeposit() throws JposException;
+ public void clearInput() throws JposException;
+ public void endDeposit(int success) throws JposException;
+ public void fixDeposit() throws JposException;
+ public void pauseDeposit(int control) throws JposException;
+
+ // Event listener methods
+ public void addDataListener(DataListener l);
+ public void removeDataListener(DataListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl16.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl16.java
new file mode 100644
index 0000000..b334399
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl16.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerControl16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-04-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashChangerControl16 extends CashChangerControl15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl17.java
new file mode 100644
index 0000000..d2f6a73
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl17.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerControl17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashChangerControl17 extends CashChangerControl16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl18.java
new file mode 100644
index 0000000..12fde76
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl18.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashChangerControl18 extends CashChangerControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl19.java
new file mode 100644
index 0000000..4ad4df0
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashChangerControl19.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashChangerControl19 extends CashChangerControl18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawer.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawer.java
new file mode 100644
index 0000000..60954ea
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawer.java
@@ -0,0 +1,949 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawer.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class CashDrawer
+ extends BaseJposControl
+ implements CashDrawerControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected CashDrawerService12 service12;
+ protected CashDrawerService13 service13;
+ protected CashDrawerService14 service14;
+ protected CashDrawerService15 service15;
+ protected CashDrawerService16 service16;
+ protected CashDrawerService17 service17;
+ protected CashDrawerService18 service18;
+ protected CashDrawerService19 service19;
+ protected CashDrawerService110 service110;
+ protected CashDrawerService111 service111;
+ protected CashDrawerService112 service112;
+ protected CashDrawerService113 service113;
+ protected CashDrawerService114 service114;
+ protected Vector directIOListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public CashDrawer()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS CashDrawer Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service12 = null;
+ //service13 = null;
+ //service14 = null;
+ //service15 = null;
+ //service16 = null;
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ directIOListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapStatus()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapStatus();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatusMultiDrawerDetect()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapStatusMultiDrawerDetect();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public boolean getDrawerOpened()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getDrawerOpened();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void openDrawer()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.openDrawer();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void waitForDrawerClose(int beepTimeout, int beepFrequency, int beepDuration, int beepDelay)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.waitForDrawerClose(beepTimeout, beepFrequency, beepDuration, beepDelay);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new CashDrawerCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service12 = null;
+ service13 = null;
+ service14 = null;
+ service15 = null;
+ service16 = null;
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion12)
+ {
+ try
+ {
+ service12 = (CashDrawerService12)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashDrawerService12 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion13)
+ {
+ try
+ {
+ service13 = (CashDrawerService13)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashDrawerService13 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion14)
+ {
+ try
+ {
+ service14 = (CashDrawerService14)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashDrawerService14 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion15)
+ {
+ try
+ {
+ service15 = (CashDrawerService15)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashDrawerService15 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion16)
+ {
+ try
+ {
+ service16 = (CashDrawerService16)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashDrawerService16 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (CashDrawerService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashDrawerService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (CashDrawerService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashDrawerService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (CashDrawerService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashDrawerService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (CashDrawerService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashDrawerService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (CashDrawerService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashDrawerService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (CashDrawerService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashDrawerService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (CashDrawerService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashDrawerService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (CashDrawerService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CashDrawerService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class CashDrawerCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)CashDrawer.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(CashDrawer.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(CashDrawer.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawer.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawer.manifest.stub
new file mode 100644
index 0000000..144cd3e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawer.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/CashDrawer.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerBeanInfo.java
new file mode 100644
index 0000000..e8f026c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerBeanInfo.java
@@ -0,0 +1,91 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// CashDrawerBeanInfo.java - Bean information for the JavaPOS CashDrawer
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class CashDrawerBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.CashDrawer.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.CashDrawer.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapStatus"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapStatusMultiDrawerDetect"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapUpdateFirmware"),
+
+ // Properties
+ makeProperty("DrawerOpened"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.CashDrawer.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("DirectIO"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerConst.java
new file mode 100644
index 0000000..162e701
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerConst.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerConst
+//
+// Cash Drawer constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface CashDrawerConst
+{
+ //###################################################################
+ //#### Cash Drawer Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // "StatusUpdateEvent" Event: "status" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+ public static final int CASH_SUE_DRAWERCLOSED = 0;
+ public static final int CASH_SUE_DRAWEROPEN = 1;
+
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl110.java
new file mode 100644
index 0000000..59e3b46
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl110.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashDrawerControl110 extends CashDrawerControl19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl111.java
new file mode 100644
index 0000000..9a125b4
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashDrawerControl111 extends CashDrawerControl110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl112.java
new file mode 100644
index 0000000..5e17137
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashDrawerControl112 extends CashDrawerControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl113.java
new file mode 100644
index 0000000..c2426b0
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashDrawerControl113 extends CashDrawerControl112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl114.java
new file mode 100644
index 0000000..54f69c1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Cash Drawer for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashDrawerControl114 extends CashDrawerControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl12.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl12.java
new file mode 100644
index 0000000..9d7cfa6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl12.java
@@ -0,0 +1,46 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerControl12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to Cash Drawer for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashDrawerControl12 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapStatus() throws JposException;
+
+ // Properties
+ public boolean getDrawerOpened() throws JposException;
+
+ // Methods
+ public void openDrawer() throws JposException;
+ public void waitForDrawerClose(int beepTimeout, int beepFrequency,
+ int beepDuration, int beepDelay) throws JposException;
+
+ // Event listener methods
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl13.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl13.java
new file mode 100644
index 0000000..9056b0c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl13.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerControl13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashDrawerControl13 extends CashDrawerControl12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl14.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl14.java
new file mode 100644
index 0000000..5727a0f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerControl14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashDrawerControl14 extends CashDrawerControl13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl15.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl15.java
new file mode 100644
index 0000000..220be76
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl15.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerControl15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 00-04-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashDrawerControl15 extends CashDrawerControl14
+{
+ // Capabilities
+ public boolean getCapStatusMultiDrawerDetect() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl16.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl16.java
new file mode 100644
index 0000000..6b4c6cb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl16.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerControl16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-04-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashDrawerControl16 extends CashDrawerControl15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl17.java
new file mode 100644
index 0000000..fcc0e6a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl17.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerControl17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashDrawerControl17 extends CashDrawerControl16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl18.java
new file mode 100644
index 0000000..d26a351
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl18.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashDrawerControl18 extends CashDrawerControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl19.java
new file mode 100644
index 0000000..6d861ee
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CashDrawerControl19.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CashDrawerControl19 extends CashDrawerControl18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CheckScanner.java b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScanner.java
new file mode 100644
index 0000000..ec2f3fe
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScanner.java
@@ -0,0 +1,2216 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CheckScanner.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class CheckScanner
+ extends BaseJposControl
+ implements CheckScannerControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected CheckScannerService17 service17;
+ protected CheckScannerService18 service18;
+ protected CheckScannerService19 service19;
+ protected CheckScannerService110 service110;
+ protected CheckScannerService111 service111;
+ protected CheckScannerService112 service112;
+ protected CheckScannerService113 service113;
+ protected CheckScannerService114 service114;
+ protected Vector dataListeners;
+ protected Vector directIOListeners;
+ protected Vector errorListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public CheckScanner()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS CheckScanner Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ dataListeners = new Vector();
+ directIOListeners = new Vector();
+ errorListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapAutoGenerateFileID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getCapAutoGenerateFileID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapAutoGenerateImageTagData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getCapAutoGenerateImageTagData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapAutoSize()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getCapAutoSize();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapColor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getCapColor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapConcurrentMICR()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getCapConcurrentMICR();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapDefineCropArea()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getCapDefineCropArea();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapImageFormat()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getCapImageFormat();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapImageTagData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getCapImageTagData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapMICRDevice()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getCapMICRDevice();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStoreImageFiles()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getCapStoreImageFiles();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapValidationDevice()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getCapValidationDevice();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapAutoContrast()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapAutoContrast();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapContrast()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapContrast();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public boolean getAutoDisable()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getAutoDisable();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAutoDisable(boolean autoDisable)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.setAutoDisable(autoDisable);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getColor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getColor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setColor(int nColor)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.setColor(nColor);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getConcurrentMICR()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getConcurrentMICR();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setConcurrentMICR(boolean bConcurrentMICR)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.setConcurrentMICR(bConcurrentMICR);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCropAreaCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getCropAreaCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDataEventEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getDataEventEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.setDataEventEnabled(dataEventEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDocumentHeight()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getDocumentHeight();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDocumentHeight(int nDocumentHeight)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.setDocumentHeight(nDocumentHeight);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDocumentWidth()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getDocumentWidth();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDocumentWidth(int nDocumentWidth)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.setDocumentWidth(nDocumentWidth);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getFileID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getFileID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setFileID(String sFileID)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.setFileID(sFileID);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getFileIndex()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getFileIndex();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setFileIndex(int nFileIndex)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.setFileIndex(nFileIndex);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getImageData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getImageData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getImageFormat()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getImageFormat();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setImageFormat(int nImageFormat)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.setImageFormat(nImageFormat);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getImageMemoryStatus()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getImageMemoryStatus();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getImageTagData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getImageTagData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setImageTagData(String sImageTagData)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.setImageTagData(sImageTagData);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMapMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getMapMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setMapMode(int nMapMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.setMapMode(nMapMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMaxCropAreas()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getMaxCropAreas();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getQuality()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getQuality();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setQuality(int nQuality)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.setQuality(nQuality);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getQualityList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getQualityList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getRemainingImagesEstimate()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getRemainingImagesEstimate();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getContrast()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getContrast();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setContrast(int contrast)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.setContrast(contrast);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void beginInsertion(int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.beginInsertion(timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void beginRemoval(int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.beginRemoval(timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearImage(int by)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.clearImage(by);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.clearInput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void defineCropArea(int cropAreaID, int x, int y, int cx, int cy)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.defineCropArea(cropAreaID, x, y, cx, cy);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endInsertion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.endInsertion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endRemoval()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.endRemoval();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveImage(int cropAreaID)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.retrieveImage(cropAreaID);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveMemory(int by)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.retrieveMemory(by);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void storeImage(int by)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.storeImage(by);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInputProperties()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.10.0
+ if(serviceVersion < deviceVersion110)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.10.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.clearInputProperties();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new CheckScannerCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (CheckScannerService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CheckScannerService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (CheckScannerService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CheckScannerService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (CheckScannerService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CheckScannerService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (CheckScannerService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CheckScannerService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (CheckScannerService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CheckScannerService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (CheckScannerService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CheckScannerService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (CheckScannerService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CheckScannerService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (CheckScannerService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CheckScannerService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.addElement(l);
+ }
+ }
+
+ public void removeDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.removeElement(l);
+ }
+ }
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.addElement(l);
+ }
+ }
+
+ public void removeErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class CheckScannerCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)CheckScanner.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ synchronized(CheckScanner.this.dataListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < dataListeners.size(); x++)
+ {
+ ((DataListener)dataListeners.elementAt(x)).dataOccurred(e);
+ }
+ }
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(CheckScanner.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ synchronized(CheckScanner.this.errorListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < errorListeners.size(); x++)
+ {
+ ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e);
+ }
+ }
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(CheckScanner.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CheckScanner.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScanner.manifest.stub
new file mode 100644
index 0000000..fef9fcb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScanner.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/CheckScanner.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerBeanInfo.java
new file mode 100644
index 0000000..8aeb12a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerBeanInfo.java
@@ -0,0 +1,124 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// CheckScannerBeanInfo.java - Bean information for the JavaPOS CheckScanner
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class CheckScannerBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.CheckScanner.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.CheckScanner.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapAutoGenerateFileID"),
+ makeProperty("CapAutoGenerateImageTagData"),
+ makeProperty("CapAutoSize"),
+ makeProperty("CapColor"),
+ makeProperty("CapConcurrentMICR"),
+ makeProperty("CapDefineCropArea"),
+ makeProperty("CapImageFormat"),
+ makeProperty("CapImageTagData"),
+ makeProperty("CapMICRDevice"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapStoreImageFiles"),
+ makeProperty("CapValidationDevice"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapAutoContrast"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapContrast"),
+ makeProperty("CapUpdateFirmware"),
+
+ // Properties
+ makeProperty("AutoDisable"),
+ makeProperty("Color"),
+ makeProperty("ConcurrentMICR"),
+ makeProperty("CropAreaCount"),
+ makeProperty("DataCount"),
+ makeProperty("DataEventEnabled"),
+ makeProperty("DocumentHeight"),
+ makeProperty("DocumentWidth"),
+ makeProperty("FileID"),
+ makeProperty("FileIndex"),
+ makeProperty("ImageData"),
+ makeProperty("ImageFormat"),
+ makeProperty("ImageMemoryStatus"),
+ makeProperty("ImageTagData"),
+ makeProperty("MapMode"),
+ makeProperty("MaxCropAreas"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("Quality"),
+ makeProperty("QualityList"),
+ makeProperty("RemainingImagesEstimate"),
+ makeProperty("Contrast"),
+
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.CheckScanner.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("Data"),
+ makeEvent("DirectIO"),
+ makeEvent("Error"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerConst.java
new file mode 100644
index 0000000..6ee568f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerConst.java
@@ -0,0 +1,150 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CheckScannerConst
+//
+// Check Scanner constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2002-Jul-01 JavaPOS Release 1.7 BS
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+// Added the following constants:
+// CHK_AUTOMATIC_CONTRAST
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface CheckScannerConst
+{
+ //###################################################################
+ //#### Check Scanner Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapColor" Capability Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int CHK_CCL_MONO = 0x00000001;
+ public static final int CHK_CCL_GRAYSCALE = 0x00000002;
+ public static final int CHK_CCL_16 = 0x00000004;
+ public static final int CHK_CCL_256 = 0x00000008;
+ public static final int CHK_CCL_FULL = 0x00000010;
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapImageFormat" Capability Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int CHK_CIF_NATIVE = 0x00000001;
+ public static final int CHK_CIF_TIFF = 0x00000002;
+ public static final int CHK_CIF_BMP = 0x00000004;
+ public static final int CHK_CIF_JPEG = 0x00000008;
+ public static final int CHK_CIF_GIF = 0x00000010;
+
+ /////////////////////////////////////////////////////////////////////
+ // "Color" Capability Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int CHK_CL_MONO = 1;
+ public static final int CHK_CL_GRAYSCALE = 2;
+ public static final int CHK_CL_16 = 3;
+ public static final int CHK_CL_256 = 4;
+ public static final int CHK_CL_FULL = 5;
+
+ /////////////////////////////////////////////////////////////////////
+ // "constrast" Property Constants:
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int CHK_AUTOMATIC_CONTRAST = -1;
+
+ /////////////////////////////////////////////////////////////////////
+ // "ImageFormat" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int CHK_IF_NATIVE = 1;
+ public static final int CHK_IF_TIFF = 2;
+ public static final int CHK_IF_BMP = 3;
+ public static final int CHK_IF_JPEG = 4;
+ public static final int CHK_IF_GIF = 5;
+
+ /////////////////////////////////////////////////////////////////////
+ // "ImageMemoryStatus" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int CHK_IMS_EMPTY = 1;
+ public static final int CHK_IMS_OK = 2;
+ public static final int CHK_IMS_FULL = 3;
+
+ /////////////////////////////////////////////////////////////////////
+ // "MapMode" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int CHK_MM_DOTS = 1;
+ public static final int CHK_MM_TWIPS = 2;
+ public static final int CHK_MM_ENGLISH = 3;
+ public static final int CHK_MM_METRIC = 4;
+
+ /////////////////////////////////////////////////////////////////////
+ // "clearImage" Method Constants:
+ /////////////////////////////////////////////////////////////////////
+
+ // "by" Parameter
+ public static final int CHK_CLR_ALL = 1;
+ public static final int CHK_CLR_BY_FILEID = 2;
+ public static final int CHK_CLR_BY_FILEINDEX = 3;
+ public static final int CHK_CLR_BY_IMAGETAGDATA = 4;
+
+ /////////////////////////////////////////////////////////////////////
+ // "defineCropArea" Method Constants:
+ /////////////////////////////////////////////////////////////////////
+
+ // "cropAreaID" Parameter or index number
+ public static final int CHK_CROP_AREA_ENTIRE_IMAGE = -1;
+ public static final int CHK_CROP_AREA_RESET_ALL = -2;
+
+ // "cx" Parameter or integer width
+ public static final int CHK_CROP_AREA_RIGHT = -1;
+
+ // "cy" Parameter or integer height
+ public static final int CHK_CROP_AREA_BOTTOM = -1;
+
+ /////////////////////////////////////////////////////////////////////
+ // "retrieveMemory" Method Constants:
+ /////////////////////////////////////////////////////////////////////
+
+ // "by" Parameter
+ public static final int CHK_LOCATE_BY_FILEID = 1;
+ public static final int CHK_LOCATE_BY_FILEINDEX = 2;
+ public static final int CHK_LOCATE_BY_IMAGETAGDATA = 3;
+
+ /////////////////////////////////////////////////////////////////////
+ // "RetrieveImage" and "StoreImage" Method Constant:
+ /////////////////////////////////////////////////////////////////////
+
+ // "CropAreaID" Parameter or index number
+ //public static final int CHK_CROP_AREA_ENTIRE_IMAGE = -1; (Defined above)
+
+ /////////////////////////////////////////////////////////////////////
+ // "ErrorCodeExtended" Property Constants for Check Scanner
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_ECHK_NOCHECK = 1 + JposConst.JPOSERREXT; // endInsertion
+ public static final int JPOS_ECHK_CHECK = 2 + JposConst.JPOSERREXT; // endRemoval
+ public static final int JPOS_ECHK_NOROOM = 3 + JposConst.JPOSERREXT; // storeImage
+
+ /////////////////////////////////////////////////////////////////////
+ // "StatusUpdateEvent" Event: "status" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int CHK_SUE_SCANCOMPLETE = 11;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl110.java
new file mode 100644
index 0000000..9881c1e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl110.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CheckScannerControl110
+//
+// Interface definining all new capabilities, properties and
+// Check Scanner
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CheckScannerControl110 extends CheckScannerControl19
+{
+ // Methods
+ public void clearInputProperties()
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl111.java
new file mode 100644
index 0000000..506d49d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl111.java
@@ -0,0 +1,30 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CheckScannerControl111
+//
+// Interface definining all new capabilities, properties and
+// Check Scanner
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CheckScannerControl111 extends CheckScannerControl110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl112.java
new file mode 100644
index 0000000..289ae44
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl112.java
@@ -0,0 +1,30 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CheckScannerControl112
+//
+// Interface definining all new capabilities, properties and
+// Check Scanner
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CheckScannerControl112 extends CheckScannerControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl113.java
new file mode 100644
index 0000000..5dc44d8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl113.java
@@ -0,0 +1,30 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CheckScannerControl113
+//
+// Interface definining all new capabilities, properties and
+// Check Scanner
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CheckScannerControl113 extends CheckScannerControl112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl114.java
new file mode 100644
index 0000000..a602bdb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CheckScannerControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Check Scanner for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CheckScannerControl114 extends CheckScannerControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl17.java
new file mode 100644
index 0000000..eaadbd6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl17.java
@@ -0,0 +1,102 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CheckScannerControl17
+//
+// Interface definining all new capabilities, properties and
+// Check Scanner
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CheckScannerControl17 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapAutoGenerateFileID() throws JposException;
+ public boolean getCapAutoGenerateImageTagData() throws JposException;
+ public boolean getCapAutoSize() throws JposException;
+ public int getCapColor() throws JposException;
+ public boolean getCapConcurrentMICR() throws JposException;
+ public boolean getCapDefineCropArea() throws JposException;
+ public int getCapImageFormat() throws JposException;
+ public boolean getCapImageTagData() throws JposException;
+ public boolean getCapMICRDevice() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapStoreImageFiles() throws JposException;
+ public boolean getCapValidationDevice() throws JposException;
+
+ // Properties
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public int getColor() throws JposException;
+ public void setColor(int nColor) throws JposException;
+ public boolean getConcurrentMICR() throws JposException;
+ public void setConcurrentMICR(boolean bConcurrentMICR) throws JposException;
+ public int getCropAreaCount() throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public int getDocumentHeight() throws JposException;
+ public void setDocumentHeight(int nDocumentHeight) throws JposException;
+ public int getDocumentWidth() throws JposException;
+ public void setDocumentWidth(int nDocumentWidth) throws JposException;
+ public String getFileID() throws JposException;
+ public void setFileID(String sFileID) throws JposException;
+ public int getFileIndex() throws JposException;
+ public void setFileIndex(int nFileIndex) throws JposException;
+ public byte[] getImageData() throws JposException;
+ public int getImageFormat() throws JposException;
+ public void setImageFormat(int nImageFormat) throws JposException;
+ public int getImageMemoryStatus() throws JposException;
+ public String getImageTagData() throws JposException;
+ public void setImageTagData(String sImageTagData) throws JposException;
+ public int getMapMode() throws JposException;
+ public void setMapMode(int nMapMode) throws JposException;
+ public int getMaxCropAreas() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getQuality() throws JposException;
+ public void setQuality(int nQuality) throws JposException;
+ public String getQualityList() throws JposException;
+ public int getRemainingImagesEstimate() throws JposException;
+
+ // Methods
+ public void beginInsertion(int timeout) throws JposException;
+ public void beginRemoval(int timeout) throws JposException;
+ public void clearImage(int by) throws JposException;
+ public void clearInput() throws JposException;
+ public void defineCropArea(int cropAreaID, int x, int y, int cx, int cy)
+ throws JposException;
+ public void endInsertion() throws JposException;
+ public void endRemoval() throws JposException;
+ public void retrieveImage(int cropAreaID) throws JposException;
+ public void retrieveMemory(int by) throws JposException;
+ public void storeImage(int by) throws JposException;
+
+ // Event listener methods
+ public void addDataListener(DataListener l);
+ public void removeDataListener(DataListener l);
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addErrorListener(ErrorListener l);
+ public void removeErrorListener(ErrorListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl18.java
new file mode 100644
index 0000000..7880b33
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl18.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CheckScannerControl18
+//
+// Interface definining all new capabilities, properties and
+// Check Scanner
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CheckScannerControl18 extends CheckScannerControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl19.java
new file mode 100644
index 0000000..aab1064
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CheckScannerControl19.java
@@ -0,0 +1,44 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CheckScannerControl19
+//
+// Interface definining all new capabilities, properties and
+// Check Scanner
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CheckScannerControl19 extends CheckScannerControl18
+{
+ // Capabilities
+ public boolean getCapAutoContrast() throws JposException;
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapContrast() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Properties
+ public int getContrast() throws JposException;
+ public void setContrast(int contrast) throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptor.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptor.java
new file mode 100644
index 0000000..b35c2f3
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptor.java
@@ -0,0 +1,1249 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinAcceptor.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class CoinAcceptor
+ extends BaseJposControl
+ implements CoinAcceptorControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected CoinAcceptorService111 service111;
+ protected CoinAcceptorService112 service112;
+ protected CoinAcceptorService113 service113;
+ protected CoinAcceptorService114 service114;
+ protected Vector dataListeners;
+ protected Vector directIOListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public CoinAcceptor()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS CoinAcceptor Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ dataListeners = new Vector();
+ directIOListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapDiscrepancy()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapDiscrepancy();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapFullSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapFullSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapJamSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapJamSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapNearFullSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapNearFullSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapPauseDeposit()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapPauseDeposit();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRealTimeData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapRealTimeData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public String getCurrencyCode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCurrencyCode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCurrencyCode(String currencyCode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setCurrencyCode(currencyCode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDataEventEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getDataEventEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setDataEventEnabled(dataEventEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDepositAmount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getDepositAmount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getDepositCashList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getDepositCashList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getDepositCodeList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getDepositCodeList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getDepositCounts()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getDepositCounts();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDepositStatus()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getDepositStatus();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getFullStatus()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getFullStatus();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getRealTimeDataEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getRealTimeDataEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setRealTimeDataEnabled(boolean bEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setRealTimeDataEnabled(bEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void adjustCashCounts(String cashCounts)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.adjustCashCounts(cashCounts);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void beginDeposit()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.beginDeposit();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.clearInput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endDeposit(int success)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.endDeposit(success);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void fixDeposit()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.fixDeposit();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void pauseDeposit(int control)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.pauseDeposit(control);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void readCashCounts(String[] cashCounts, boolean[] discrepancy)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.readCashCounts(cashCounts, discrepancy);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new CoinAcceptorCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (CoinAcceptorService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CoinAcceptorService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (CoinAcceptorService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CoinAcceptorService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (CoinAcceptorService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CoinAcceptorService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (CoinAcceptorService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CoinAcceptorService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.addElement(l);
+ }
+ }
+
+ public void removeDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.removeElement(l);
+ }
+ }
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class CoinAcceptorCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)CoinAcceptor.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ synchronized(CoinAcceptor.this.dataListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < dataListeners.size(); x++)
+ {
+ ((DataListener)dataListeners.elementAt(x)).dataOccurred(e);
+ }
+ }
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(CoinAcceptor.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(CoinAcceptor.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptor.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptor.manifest.stub
new file mode 100644
index 0000000..a100473
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptor.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/CoinAcceptor.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptorBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptorBeanInfo.java
new file mode 100644
index 0000000..ba9dab8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptorBeanInfo.java
@@ -0,0 +1,106 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// CoinAcceptorBeanInfo.java - Bean information for the JavaPOS CoinAcceptor
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class CoinAcceptorBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.CoinAcceptor.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.CoinAcceptor.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapDiscrepancy"),
+ makeProperty("CapFullSensor"),
+ makeProperty("CapJamSensor"),
+ makeProperty("CapNearFullSensor"),
+ makeProperty("CapPauseDeposit"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapRealTimeData"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateFirmware"),
+ makeProperty("CapUpdateStatistics"),
+
+ // Properties
+ makeProperty("CurrencyCode"),
+ makeProperty("DataCount"),
+ makeProperty("DataEventEnabled"),
+ makeProperty("DepositAmount"),
+ makeProperty("DepositCashList"),
+ makeProperty("DepositCodeList"),
+ makeProperty("DepositCounts"),
+ makeProperty("DepositStatus"),
+ makeProperty("FullStatus"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("RealTimeDataEnabled"),
+
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.CoinAcceptor.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("Data"),
+ makeEvent("DirectIO"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptorConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptorConst.java
new file mode 100644
index 0000000..6c07c44
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptorConst.java
@@ -0,0 +1,70 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinAcceptorConst
+//
+// CoinAcceptor constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface CoinAcceptorConst
+{
+ //###################################################################
+ //#### CoinAcceptor Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // "FullStatus" Property Constants
+ // "StatusUpdateEvent" Event Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int CACC_STATUS_OK = 0;
+
+ public static final int CACC_STATUS_FULL = 21; // FullStatus, StatusUpdateEvent
+ public static final int CACC_STATUS_NEARFULL = 22; // FullStatus, StatusUpdateEvent
+ public static final int CACC_STATUS_FULLOK = 23; // StatusUpdateEvent
+
+ public static final int CACC_STATUS_JAM = 31; // StatusUpdateEvent
+ public static final int CACC_STATUS_JAMOK = 32; // StatusUpdateEvent
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "DepositStatus" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int CACC_STATUS_DEPOSIT_START = 1;
+ public static final int CACC_STATUS_DEPOSIT_END = 2;
+ public static final int CACC_STATUS_DEPOSIT_COUNT = 4;
+ public static final int CACC_STATUS_DEPOSIT_JAM = 5;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "EndDeposit" Method Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int CACC_DEPOSIT_COMPLETE = 11;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "PauseDeposit" Method Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int CACC_DEPOSIT_PAUSE = 11;
+ public static final int CACC_DEPOSIT_RESTART = 12;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptorControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptorControl111.java
new file mode 100644
index 0000000..871c8aa
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptorControl111.java
@@ -0,0 +1,97 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinAcceptorControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Acceptor for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CoinAcceptorControl111 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapDiscrepancy() throws JposException;
+ public boolean getCapFullSensor() throws JposException;
+ public boolean getCapJamSensor() throws JposException;
+ public boolean getCapNearFullSensor() throws JposException;
+ public boolean getCapPauseDeposit() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapRealTimeData() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Properties
+ public String getCurrencyCode() throws JposException;
+ public void setCurrencyCode(String currencyCode) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public int getDepositAmount() throws JposException;
+ public String getDepositCashList() throws JposException;
+ public String getDepositCodeList() throws JposException;
+ public String getDepositCounts() throws JposException;
+ public int getDepositStatus() throws JposException;
+ public int getFullStatus() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public boolean getRealTimeDataEnabled() throws JposException;
+ public void setRealTimeDataEnabled(boolean bEnabled) throws JposException;
+
+ // Methods
+ public void adjustCashCounts(String cashCounts)
+ throws JposException;
+ public void beginDeposit()
+ throws JposException;
+ public void clearInput() throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void endDeposit(int success)
+ throws JposException;
+ public void fixDeposit()
+ throws JposException;
+ public void pauseDeposit(int control)
+ throws JposException;
+ public void readCashCounts(String[] cashCounts,
+ boolean[] discrepancy)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+
+ // Event listener methods
+ public void addDataListener(DataListener l);
+ public void removeDataListener(DataListener l);
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptorControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptorControl112.java
new file mode 100644
index 0000000..78e6041
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptorControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinAcceptorControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Acceptor for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CoinAcceptorControl112 extends CoinAcceptorControl111
+{
+ // Nothing new added for release 1.12
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptorControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptorControl113.java
new file mode 100644
index 0000000..5d7f14d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptorControl113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinAcceptorControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Acceptor for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CoinAcceptorControl113 extends CoinAcceptorControl112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptorControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptorControl114.java
new file mode 100644
index 0000000..19b3214
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinAcceptorControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinAcceptorControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Coin Acceptor for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CoinAcceptorControl114 extends CoinAcceptorControl113
+{
+ // Nothing new added for release 1.14
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenser.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenser.java
new file mode 100644
index 0000000..a222368
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenser.java
@@ -0,0 +1,1006 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenser.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class CoinDispenser
+ extends BaseJposControl
+ implements CoinDispenserControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected CoinDispenserService12 service12;
+ protected CoinDispenserService13 service13;
+ protected CoinDispenserService14 service14;
+ protected CoinDispenserService15 service15;
+ protected CoinDispenserService16 service16;
+ protected CoinDispenserService17 service17;
+ protected CoinDispenserService18 service18;
+ protected CoinDispenserService19 service19;
+ protected CoinDispenserService110 service110;
+ protected CoinDispenserService111 service111;
+ protected CoinDispenserService112 service112;
+ protected CoinDispenserService113 service113;
+ protected CoinDispenserService114 service114;
+ protected Vector directIOListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public CoinDispenser()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS CoinDispenser Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service12 = null;
+ //service13 = null;
+ //service14 = null;
+ //service15 = null;
+ //service16 = null;
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ directIOListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapEmptySensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapEmptySensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapJamSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapJamSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapNearEmptySensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapNearEmptySensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public int getDispenserStatus()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getDispenserStatus();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void dispenseChange(int amount)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.dispenseChange(amount);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void adjustCashCounts(String cashCounts)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.11.0
+ if(serviceVersion < deviceVersion111)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.11.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.adjustCashCounts(cashCounts);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void readCashCounts(String[] cashCounts, boolean[] discrepancy)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.11.0
+ if(serviceVersion < deviceVersion111)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.11.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.readCashCounts(cashCounts, discrepancy);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new CoinDispenserCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service12 = null;
+ service13 = null;
+ service14 = null;
+ service15 = null;
+ service16 = null;
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion12)
+ {
+ try
+ {
+ service12 = (CoinDispenserService12)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CoinDispenserService12 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion13)
+ {
+ try
+ {
+ service13 = (CoinDispenserService13)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CoinDispenserService13 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion14)
+ {
+ try
+ {
+ service14 = (CoinDispenserService14)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CoinDispenserService14 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion15)
+ {
+ try
+ {
+ service15 = (CoinDispenserService15)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CoinDispenserService15 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion16)
+ {
+ try
+ {
+ service16 = (CoinDispenserService16)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CoinDispenserService16 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (CoinDispenserService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CoinDispenserService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (CoinDispenserService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CoinDispenserService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (CoinDispenserService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CoinDispenserService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (CoinDispenserService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CoinDispenserService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (CoinDispenserService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CoinDispenserService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (CoinDispenserService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CoinDispenserService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (CoinDispenserService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CoinDispenserService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (CoinDispenserService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement CoinDispenserService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class CoinDispenserCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)CoinDispenser.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(CoinDispenser.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(CoinDispenser.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenser.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenser.manifest.stub
new file mode 100644
index 0000000..8df50ab
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenser.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/CoinDispenser.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserBeanInfo.java
new file mode 100644
index 0000000..8d006b2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserBeanInfo.java
@@ -0,0 +1,92 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// CoinDispenserBeanInfo.java - Bean information for the JavaPOS CoinDispenser
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class CoinDispenserBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.CoinDispenser.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.CoinDispenser.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapEmptySensor"),
+ makeProperty("CapJamSensor"),
+ makeProperty("CapNearEmptySensor"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapUpdateFirmware"),
+
+ // Properties
+ makeProperty("DispenserStatus"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.CoinDispenser.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("DirectIO"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserConst.java
new file mode 100644
index 0000000..f6c14f1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserConst.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserConst
+//
+// Coin Dispenser constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface CoinDispenserConst
+{
+ //###################################################################
+ //#### Coin Dispenser Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // "DispenserStatus" Property Constants
+ // "StatusUpdateEvent" Event: "status" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int COIN_STATUS_OK = 1;
+ public static final int COIN_STATUS_EMPTY = 2;
+ public static final int COIN_STATUS_NEAREMPTY= 3;
+ public static final int COIN_STATUS_JAM = 4;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl110.java
new file mode 100644
index 0000000..4b37252
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl110.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CoinDispenserControl110 extends CoinDispenserControl19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl111.java
new file mode 100644
index 0000000..c5269a4
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl111.java
@@ -0,0 +1,35 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CoinDispenserControl111 extends CoinDispenserControl110
+{
+ // Methods
+ public void adjustCashCounts(String cashCounts)
+ throws JposException;
+ public void readCashCounts(String[] cashCounts,
+ boolean[] discrepancy)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl112.java
new file mode 100644
index 0000000..fe6820f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl112.java
@@ -0,0 +1,30 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CoinDispenserControl112 extends CoinDispenserControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl113.java
new file mode 100644
index 0000000..4548089
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl113.java
@@ -0,0 +1,30 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CoinDispenserControl113 extends CoinDispenserControl112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl114.java
new file mode 100644
index 0000000..b435a75
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl114.java
@@ -0,0 +1,30 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Coin Dispenser for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CoinDispenserControl114 extends CoinDispenserControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl12.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl12.java
new file mode 100644
index 0000000..216b19b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl12.java
@@ -0,0 +1,46 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserControl12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to Coin Dispenser for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CoinDispenserControl12 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapEmptySensor() throws JposException;
+ public boolean getCapJamSensor() throws JposException;
+ public boolean getCapNearEmptySensor() throws JposException;
+
+ // Properties
+ public int getDispenserStatus() throws JposException;
+
+ // Methods
+ public void dispenseChange(int amount) throws JposException;
+
+ // Event listener methods
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl13.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl13.java
new file mode 100644
index 0000000..d1095fc
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl13.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserControl13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CoinDispenserControl13 extends CoinDispenserControl12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl14.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl14.java
new file mode 100644
index 0000000..e00565d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserControl14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CoinDispenserControl14 extends CoinDispenserControl13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl15.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl15.java
new file mode 100644
index 0000000..19eb805
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl15.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserControl15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 00-04-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CoinDispenserControl15 extends CoinDispenserControl14
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl16.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl16.java
new file mode 100644
index 0000000..6235d4d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl16.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserControl16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-04-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CoinDispenserControl16 extends CoinDispenserControl15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl17.java
new file mode 100644
index 0000000..114227b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl17.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserControl17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CoinDispenserControl17 extends CoinDispenserControl16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl18.java
new file mode 100644
index 0000000..4f8d4b4
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl18.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CoinDispenserControl18 extends CoinDispenserControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl19.java
new file mode 100644
index 0000000..48df244
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/CoinDispenserControl19.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface CoinDispenserControl19 extends CoinDispenserControl18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournal.java b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournal.java
new file mode 100644
index 0000000..d2500b3
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournal.java
@@ -0,0 +1,2018 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ElectronicJournal.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class ElectronicJournal
+ extends BaseJposControl
+ implements ElectronicJournalControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected ElectronicJournalService110 service110;
+ protected ElectronicJournalService111 service111;
+ protected ElectronicJournalService112 service112;
+ protected ElectronicJournalService113 service113;
+ protected ElectronicJournalService114 service114;
+ protected Vector dataListeners;
+ protected Vector directIOListeners;
+ protected Vector errorListeners;
+ protected Vector outputCompleteListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public ElectronicJournal()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS ElectronicJournal Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ dataListeners = new Vector();
+ directIOListeners = new Vector();
+ errorListeners = new Vector();
+ outputCompleteListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapAddMarker()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapAddMarker();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapErasableMedium()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapErasableMedium();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapInitializeMedium()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapInitializeMedium();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapMediumIsAvailable()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapMediumIsAvailable();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapPrintContent()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapPrintContent();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapPrintContentFile()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapPrintContentFile();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRetrieveCurrentMarker()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapRetrieveCurrentMarker();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRetrieveMarker()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapRetrieveMarker();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRetrieveMarkerByDateTime()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapRetrieveMarkerByDateTime();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRetrieveMarkersDateTime()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapRetrieveMarkersDateTime();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapStation()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapStation();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStorageEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapStorageEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSuspendPrintContent()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapSuspendPrintContent();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSuspendQueryContent()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapSuspendQueryContent();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapWaterMark()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapWaterMark();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public boolean getAsyncMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getAsyncMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAsyncMode(boolean asyncMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.setAsyncMode(asyncMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getAutoDisable()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getAutoDisable();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAutoDisable(boolean autoDisable)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.setAutoDisable(autoDisable);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDataEventEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getDataEventEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.setDataEventEnabled(dataEventEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getFlagWhenIdle()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getFlagWhenIdle();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setFlagWhenIdle(boolean flagWhenIdle)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.setFlagWhenIdle(flagWhenIdle);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public long getMediumFreeSpace()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getMediumFreeSpace();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getMediumID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getMediumID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getMediumIsAvailable()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getMediumIsAvailable();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public long getMediumSize()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getMediumSize();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getOutputID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getOutputID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getStation()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getStation();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setStation(int station)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.setStation(station);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getStorageEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getStorageEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setStorageEnabled(boolean enabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.setStorageEnabled(enabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getSuspended()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getSuspended();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getWaterMark()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getWaterMark();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setWaterMark(boolean waterMark)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.setWaterMark(waterMark);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void addMarker(String marker)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.addMarker(marker);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void cancelPrintContent()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.cancelPrintContent();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void cancelQueryContent()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.cancelQueryContent();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.clearInput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearOutput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.clearOutput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void eraseMedium()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.eraseMedium();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void initializeMedium(String mediumID)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.initializeMedium(mediumID);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printContent(String fromMarker, String toMarker)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.printContent(fromMarker, toMarker);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printContentFile(String fileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.printContentFile(fileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void queryContent(String fileName, String fromMarker, String toMarker)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.queryContent(fileName, fromMarker, toMarker);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resumePrintContent()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.resumePrintContent();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resumeQueryContent()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.resumeQueryContent();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveCurrentMarker(int markerType, String[] marker)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.retrieveCurrentMarker(markerType, marker);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveMarker(int markerType, int sessionNumber, int documentNumber, String[] marker)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.retrieveMarker(markerType, sessionNumber, documentNumber, marker);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveMarkerByDateTime(int markerType, String dateTime, String markerNumber, String[] marker)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.retrieveMarkerByDateTime(markerType, dateTime, markerNumber, marker);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveMarkersDateTime(String marker, String[] dateTime)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.retrieveMarkersDateTime(marker, dateTime);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void suspendPrintContent()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.suspendPrintContent();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void suspendQueryContent()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.suspendQueryContent();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new ElectronicJournalCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (ElectronicJournalService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ElectronicJournalService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (ElectronicJournalService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ElectronicJournalService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (ElectronicJournalService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ElectronicJournalService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (ElectronicJournalService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ElectronicJournalService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (ElectronicJournalService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ElectronicJournalService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.addElement(l);
+ }
+ }
+
+ public void removeDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.removeElement(l);
+ }
+ }
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.addElement(l);
+ }
+ }
+
+ public void removeErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.removeElement(l);
+ }
+ }
+
+ public void addOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.addElement(l);
+ }
+ }
+
+ public void removeOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class ElectronicJournalCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)ElectronicJournal.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ synchronized(ElectronicJournal.this.dataListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < dataListeners.size(); x++)
+ {
+ ((DataListener)dataListeners.elementAt(x)).dataOccurred(e);
+ }
+ }
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(ElectronicJournal.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ synchronized(ElectronicJournal.this.errorListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < errorListeners.size(); x++)
+ {
+ ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e);
+ }
+ }
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ synchronized(ElectronicJournal.this.outputCompleteListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < outputCompleteListeners.size(); x++)
+ {
+ ((OutputCompleteListener)outputCompleteListeners.elementAt(x)).outputCompleteOccurred(e);
+ }
+ }
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(ElectronicJournal.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournal.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournal.manifest.stub
new file mode 100644
index 0000000..4dd3c98
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournal.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/ElectronicJournal.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournalBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournalBeanInfo.java
new file mode 100644
index 0000000..634a3a9
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournalBeanInfo.java
@@ -0,0 +1,121 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// ElectronicJournalBeanInfo.java - Bean information for the JavaPOS ElectronicJournal
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class ElectronicJournalBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.ElectronicJournal.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.ElectronicJournal.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapAddMarker"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapErasableMedium"),
+ makeProperty("CapInitializeMedium"),
+ makeProperty("CapMediumIsAvailable"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapPrintContent"),
+ makeProperty("CapPrintContentFile"),
+ makeProperty("CapRetrieveCurrentMarker"),
+ makeProperty("CapRetrieveMarker"),
+ makeProperty("CapRetrieveMarkerByDateTime"),
+ makeProperty("CapRetrieveMarkersDateTime"),
+ makeProperty("CapStation"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapStorageEnabled"),
+ makeProperty("CapSuspendPrintContent"),
+ makeProperty("CapSuspendQueryContent"),
+ makeProperty("CapUpdateFirmware"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapWaterMark"),
+
+ // Properties
+ makeProperty("AsyncMode"),
+ makeProperty("AutoDisable"),
+ makeProperty("DataCount"),
+ makeProperty("DataEventEnabled"),
+ makeProperty("FlagWhenIdle"),
+ makeProperty("MediumFreeSpace"),
+ makeProperty("MediumID"),
+ makeProperty("MediumIsAvailable"),
+ makeProperty("MediumSize"),
+ makeProperty("OutputID"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("Station"),
+ makeProperty("StorageEnabled"),
+ makeProperty("Suspended"),
+ makeProperty("WaterMark"),
+
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.ElectronicJournal.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("Data"),
+ makeEvent("DirectIO"),
+ makeEvent("Error"),
+ makeEvent("OutputComplete"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournalConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournalConst.java
new file mode 100644
index 0000000..319e22a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournalConst.java
@@ -0,0 +1,83 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ElectronicJournalConst
+//
+// Electronic Journal constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// Added new StatusUpdateEvent constant:
+// EJ_SUE_IDLE
+// 2008-Apr-21 JavaPOS Release 1.12.1 BS
+// Change value of EJ_SUE_IDLE to be the same value as used for
+// printer idle SUEs (1001).
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface ElectronicJournalConst
+{
+ //###################################################################
+ //#### Electronic Journal Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapStation", "Station" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int EJ_S_RECEIPT = 0x00000001;
+ public static final int EJ_S_SLIP = 0x00000002;
+ public static final int EJ_S_JOURNAL = 0x00000004;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "retrieveCurrentMarker" Method, "markerType" Parameter Constants
+ // "retrieveMarker" Method, "markerType" Parameter Constants
+ // "retrieveMarkerByDateTime" Method, "markerType" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int EJ_MT_SESSION_BEG = 1;
+ public static final int EJ_MT_SESSION_END = 2;
+ public static final int EJ_MT_DOCUMENT = 3;
+ public static final int EJ_MT_HEAD = 4;
+ public static final int EJ_MT_TAIL = 5;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ErrorEvent" "ErrorCodeExtended" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_EEJ_EXISTING = 1 + JposConst.JPOSERREXT;
+ public static final int JPOS_EEJ_MEDIUM_FULL = 2 + JposConst.JPOSERREXT;
+ public static final int JPOS_EEJ_MULTIPLE_MARKER = 3 + JposConst.JPOSERREXT;
+ public static final int JPOS_EEJ_UNINITIALIZED_MEDIUM = 4 + JposConst.JPOSERREXT;
+ public static final int JPOS_EEJ_CORRUPTED_MEDIUM = 5 + JposConst.JPOSERREXT;
+ public static final int JPOS_EEJ_UNKNOWN_DATAFORMAT = 6 + JposConst.JPOSERREXT;
+ public static final int JPOS_EEJ_NOT_ENOUGH_SPACE = 7 + JposConst.JPOSERREXT;
+ public static final int JPOS_EEJ_MULTIPLE_MARKERS = 8 + JposConst.JPOSERREXT;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "StatusUpdateEvent" "Status" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int EJ_SUE_MEDIUM_NEAR_FULL = 1;
+ public static final int EJ_SUE_MEDIUM_FULL = 2;
+ public static final int EJ_SUE_MEDIUM_REMOVED = 3;
+ public static final int EJ_SUE_MEDIUM_INSERTED = 4;
+ public static final int EJ_SUE_SUSPENDED = 5;
+ public static final int EJ_SUE_IDLE = 1001; // 1.12.1
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournalControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournalControl110.java
new file mode 100644
index 0000000..9aae638
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournalControl110.java
@@ -0,0 +1,148 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ElectronicJournalControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Electronic Journal for release
+// 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ElectronicJournalControl110 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapAddMarker() throws JposException;
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapErasableMedium() throws JposException;
+ public boolean getCapInitializeMedium() throws JposException;
+ public boolean getCapMediumIsAvailable() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapPrintContent() throws JposException;
+ public boolean getCapPrintContentFile() throws JposException;
+ public boolean getCapRetrieveCurrentMarker() throws JposException;
+ public boolean getCapRetrieveMarker() throws JposException;
+ public boolean getCapRetrieveMarkerByDateTime() throws JposException;
+ public boolean getCapRetrieveMarkersDateTime() throws JposException;
+ public int getCapStation() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapStorageEnabled() throws JposException;
+ public boolean getCapSuspendPrintContent() throws JposException;
+ public boolean getCapSuspendQueryContent() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+ public boolean getCapWaterMark() throws JposException;
+
+ // Properties
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public boolean getFlagWhenIdle() throws JposException;
+ public void setFlagWhenIdle(boolean flagWhenIdle) throws JposException;
+ public long getMediumFreeSpace() throws JposException;
+ public String getMediumID() throws JposException;
+ public boolean getMediumIsAvailable() throws JposException;
+ public long getMediumSize() throws JposException;
+ public int getOutputID() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getStation() throws JposException;
+ public void setStation(int station) throws JposException;
+ public boolean getStorageEnabled() throws JposException;
+ public void setStorageEnabled(boolean enabled) throws JposException;
+ public boolean getSuspended() throws JposException;
+ public boolean getWaterMark() throws JposException;
+ public void setWaterMark(boolean waterMark) throws JposException;
+
+ // Methods
+ public void addMarker(String marker)
+ throws JposException;
+ public void cancelPrintContent()
+ throws JposException;
+ public void cancelQueryContent()
+ throws JposException;
+ public void clearInput() throws JposException;
+ public void clearOutput() throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void eraseMedium()
+ throws JposException;
+ public void initializeMedium(String mediumID)
+ throws JposException;
+ public void printContent(String fromMarker,
+ String toMarker)
+ throws JposException;
+ public void printContentFile(String fileName)
+ throws JposException;
+ public void queryContent(String fileName,
+ String fromMarker,
+ String toMarker)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void resumePrintContent()
+ throws JposException;
+ public void resumeQueryContent()
+ throws JposException;
+ public void retrieveCurrentMarker(int markerType,
+ String[] marker)
+ throws JposException;
+ public void retrieveMarker(int markerType,
+ int sessionNumber,
+ int documentNumber,
+ String[] marker)
+ throws JposException;
+ public void retrieveMarkerByDateTime(int markerType,
+ String dateTime,
+ String markerNumber,
+ String[] marker)
+ throws JposException;
+ public void retrieveMarkersDateTime(String marker,
+ String[] dateTime)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void suspendPrintContent()
+ throws JposException;
+ public void suspendQueryContent()
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+
+ // Event listener methods
+ public void addDataListener(DataListener l);
+ public void removeDataListener(DataListener l);
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addErrorListener(ErrorListener l);
+ public void removeErrorListener(ErrorListener l);
+ public void addOutputCompleteListener(OutputCompleteListener l);
+ public void removeOutputCompleteListener(OutputCompleteListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournalControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournalControl111.java
new file mode 100644
index 0000000..b8b4640
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournalControl111.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ElectronicJournalControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Electronic Journal for release
+// 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ElectronicJournalControl111 extends ElectronicJournalControl110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournalControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournalControl112.java
new file mode 100644
index 0000000..4b49986
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournalControl112.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ElectronicJournalControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Electronic Journal for release
+// 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ElectronicJournalControl112 extends ElectronicJournalControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournalControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournalControl113.java
new file mode 100644
index 0000000..d402da1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournalControl113.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ElectronicJournalControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Electronic Journal for release
+// 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ElectronicJournalControl113 extends ElectronicJournalControl112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournalControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournalControl114.java
new file mode 100644
index 0000000..2fec83e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicJournalControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ElectronicJournalControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Electronic Journal for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ElectronicJournalControl114 extends ElectronicJournalControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicValueRW.java b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicValueRW.java
new file mode 100644
index 0000000..d7dfde4
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicValueRW.java
@@ -0,0 +1,2947 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ElectronicValueRW.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class ElectronicValueRW
+ extends BaseJposControl
+ implements ElectronicValueRWControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected ElectronicValueRWService112 service112;
+ protected ElectronicValueRWService113 service113;
+ protected ElectronicValueRWService114 service114;
+ protected Vector dataListeners;
+ protected Vector directIOListeners;
+ protected Vector errorListeners;
+ protected Vector outputCompleteListeners;
+ protected Vector statusUpdateListeners;
+ protected Vector transitionListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public ElectronicValueRW()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS ElectronicValueRW Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ dataListeners = new Vector();
+ directIOListeners = new Vector();
+ errorListeners = new Vector();
+ outputCompleteListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ transitionListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapActivateService()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapActivateService();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapAddValue()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapAddValue();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCancelValue()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapCancelValue();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapCardSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapCardSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapDetectionControl()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapDetectionControl();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapElectronicMoney()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapElectronicMoney();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapEnumerateCardServices()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapEnumerateCardServices();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapIndirectTransactionLog()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapIndirectTransactionLog();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapLockTerminal()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapLockTerminal();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapLogStatus()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapLogStatus();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapMediumID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapMediumID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapPoint()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapPoint();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRealTimeData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapRealTimeData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSubtractValue()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapSubtractValue();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapTransaction()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapTransaction();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapTransactionLog()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapTransactionLog();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUnlockTerminal()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapUnlockTerminal();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateKey()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapUpdateKey();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapVoucher()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapVoucher();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapWriteValue()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapWriteValue();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapPINDevice()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service114.getCapPINDevice();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean CapTrainingMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service114.CapTrainingMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public String getAccountNumber()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getAccountNumber();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getAdditionalSecurityInformation()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getAdditionalSecurityInformation();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAdditionalSecurityInformation(String addSecInfo)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setAdditionalSecurityInformation(addSecInfo);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public long getAmount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getAmount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAmount(long amount)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setAmount(amount);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getApprovalCode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getApprovalCode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setApprovalCode(String approvalCode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setApprovalCode(approvalCode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getAsyncMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getAsyncMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAsyncMode(boolean asyncMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setAsyncMode(asyncMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getAutoDisable()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getAutoDisable();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAutoDisable(boolean autoDisable)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setAutoDisable(autoDisable);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public long getBalance()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getBalance();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public long getBalanceOfPoint()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getBalanceOfPoint();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getCardServiceList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCardServiceList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getCurrentService()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCurrentService();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCurrentService(String currentService)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setCurrentService(currentService);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDataEventEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getDataEventEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setDataEventEnabled(dataEventEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDetectionControl()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getDetectionControl();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDetectionControl(boolean detectionControl)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setDetectionControl(detectionControl);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDetectionStatus()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getDetectionStatus();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getExpirationDate()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getExpirationDate();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getLastUsedDate()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getLastUsedDate();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getLogStatus()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getLogStatus();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getMediumID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getMediumID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setMediumID(String mediumID)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setMediumID(mediumID);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getOutputID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getOutputID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public long getPoint()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getPoint();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPoint(long point)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setPoint(point);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getReaderWriterServiceList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getReaderWriterServiceList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSequenceNumber()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getSequenceNumber();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public long getSettledAmount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getSettledAmount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public long getSettledPoint()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getSettledPoint();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getTransactionLog()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getTransactionLog();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getVoucherID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getVoucherID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setVoucherID(String voucherID)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setVoucherID(voucherID);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getVoucherIDList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getVoucherIDList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setVoucherIDList(String voucherIDList)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setVoucherIDList(voucherIDList);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPINEntry()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service114.getPINEntry();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPINEntry(int pinEntry)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service114.setPINEntry(pinEntry);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTrainingModeState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service114.getTrainingModeState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTrainingModeState(int trainingModeState)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service114.setTrainingModeState(trainingModeState);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void accessLog(int sequenceNumber, int type, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.accessLog(sequenceNumber, type, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void activateService(int[] data, Object[] obj)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.activateService(data, obj);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void addValue(int sequenceNumber, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.addValue(sequenceNumber, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void beginDetection(int type, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.beginDetection(type, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void beginRemoval(int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.beginRemoval(timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void cancelValue(int sequenceNumber, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.cancelValue(sequenceNumber, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void captureCard()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.captureCard();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.clearInput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInputProperties()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.clearInputProperties();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearOutput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.clearOutput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endDetection()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.endDetection();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endRemoval()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.endRemoval();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void enumerateCardServices()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.enumerateCardServices();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void lockTerminal()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.lockTerminal();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void readValue(int sequenceNumber, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.readValue(sequenceNumber, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void subtractValue(int sequenceNumber, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.subtractValue(sequenceNumber, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void transactionAccess(int control)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.transactionAccess(control);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void unlockTerminal()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.unlockTerminal();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateKey(int[] data, Object[] obj)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.updateKey(data, obj);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void writeValue(int sequenceNumber, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.writeValue(sequenceNumber, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearParameterInformation()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service114.clearParameterInformation();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void queryLastSuccessfulTransactionResult()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service114.queryLastSuccessfulTransactionResult();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveResultInformation(String name, String[] value)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service114.retrieveResultInformation(name, value);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setParameterInformation(String name, String value)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service114.setParameterInformation(name, value);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new ElectronicValueRWCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (ElectronicValueRWService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ElectronicValueRWService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (ElectronicValueRWService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ElectronicValueRWService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (ElectronicValueRWService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ElectronicValueRWService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.addElement(l);
+ }
+ }
+
+ public void removeDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.removeElement(l);
+ }
+ }
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.addElement(l);
+ }
+ }
+
+ public void removeErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.removeElement(l);
+ }
+ }
+
+ public void addOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.addElement(l);
+ }
+ }
+
+ public void removeOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+ public void addTransitionListener(TransitionListener l)
+ {
+ synchronized(transitionListeners)
+ {
+ transitionListeners.addElement(l);
+ }
+ }
+
+ public void removeTransitionListener(TransitionListener l)
+ {
+ synchronized(transitionListeners)
+ {
+ transitionListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class ElectronicValueRWCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)ElectronicValueRW.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ synchronized(ElectronicValueRW.this.dataListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < dataListeners.size(); x++)
+ {
+ ((DataListener)dataListeners.elementAt(x)).dataOccurred(e);
+ }
+ }
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(ElectronicValueRW.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ synchronized(ElectronicValueRW.this.errorListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < errorListeners.size(); x++)
+ {
+ ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e);
+ }
+ }
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ synchronized(ElectronicValueRW.this.outputCompleteListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < outputCompleteListeners.size(); x++)
+ {
+ ((OutputCompleteListener)outputCompleteListeners.elementAt(x)).outputCompleteOccurred(e);
+ }
+ }
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(ElectronicValueRW.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicValueRW.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicValueRW.manifest.stub
new file mode 100644
index 0000000..fa7d4d9
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicValueRW.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/ElectronicValueRW.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicValueRWBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicValueRWBeanInfo.java
new file mode 100644
index 0000000..063505e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicValueRWBeanInfo.java
@@ -0,0 +1,143 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// ElectronicValueRWBeanInfo.java - Bean information for the JavaPOS ElectronicValueRW
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class ElectronicValueRWBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.ElectronicValueRW.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.ElectronicValueRW.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapActivateService"),
+ makeProperty("CapAddValue"),
+ makeProperty("CapCancelValue"),
+ makeProperty("CapCardSensor"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapDetectionControl"),
+ makeProperty("CapElectronicMoney"),
+ makeProperty("CapEnumerateCardServices"),
+ makeProperty("CapIndirectTransactionLog"),
+ makeProperty("CapLockTerminal"),
+ makeProperty("CapLogStatus"),
+ makeProperty("CapMediumID"),
+ makeProperty("CapPoint"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapRealTimeData"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapSubtractValue"),
+ makeProperty("CapTransaction"),
+ makeProperty("CapTransactionLog"),
+ makeProperty("CapUnlockTerminal"),
+ makeProperty("CapUpdateFirmware"),
+ makeProperty("CapUpdateKey"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapVoucher"),
+ makeProperty("CapWriteValue"),
+ makeProperty("CapPINDevice"),
+ makeProperty("TrainingMode"),
+
+ // Properties
+ makeProperty("AccountNumber"),
+ makeProperty("AdditionalSecurityInformation"),
+ makeProperty("Amount"),
+ makeProperty("ApprovalCode"),
+ makeProperty("AsyncMode"),
+ makeProperty("AutoDisable"),
+ makeProperty("Balance"),
+ makeProperty("BalanceOfPoint"),
+ makeProperty("CardServiceList"),
+ makeProperty("CurrentService"),
+ makeProperty("DataCount"),
+ makeProperty("DataEventEnabled"),
+ makeProperty("DetectionControl"),
+ makeProperty("DetectionStatus"),
+ makeProperty("ExpirationDate"),
+ makeProperty("LastUsedDate"),
+ makeProperty("LogStatus"),
+ makeProperty("MediumID"),
+ makeProperty("OutputID"),
+ makeProperty("Point"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("ReaderWriterServiceList"),
+ makeProperty("SequenceNumber"),
+ makeProperty("SettledAmount"),
+ makeProperty("SettledPoint"),
+ makeProperty("TransactionLog"),
+ makeProperty("VoucherID"),
+ makeProperty("VoucherIDList"),
+ makeProperty("PINEntry"),
+ makeProperty("TrainingModeState"),
+
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.ElectronicValueRW.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("Data"),
+ makeEvent("DirectIO"),
+ makeEvent("Error"),
+ makeEvent("OutputComplete"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicValueRWConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicValueRWConst.java
new file mode 100644
index 0000000..8213bf2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicValueRWConst.java
@@ -0,0 +1,293 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ElectronicValueRWConst
+//
+// ElectronicValueRW constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// New device category.
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+// Added new constants:
+// EVRW_PIN_ENTRY_NONE
+// EVRW_PIN_ENTRY_EXTERNAL
+// EVRW_PIN_ENTRY_INTERNAL
+// EVRW_PIN_ENTRY_UNKNOWN
+// EVRW_TM_FALSE
+// EVRW_TM_TRUE
+// EVRW_TM_UNKNOWN
+// EVRW_TAG_AS_AUTHENTICATED
+// EVRW_TAG_AS_UNAUTHENTICATED
+// EVRW_TAG_CTT_CANCEL
+// EVRW_TAG_CTT_CHARGE
+// EVRW_TAG_CTT_RETURN
+// EVRW_TAG_CTT_SALES
+// EVRW_TAG_CM_CASH
+// EVRW_TAG_CM_CREDIT
+// EVRW_TAG_CM_POINT
+// EVRW_TAG_PC_INSTALLMENT_2
+// EVRW_TAG_PC_INSTALLMENT_3
+// EVRW_TAG_PC_BONUS_1
+// EVRW_TAG_PC_BONUS_2
+// EVRW_TAG_PC_BONUS_3
+// EVRW_TAG_PC_BONUS_4
+// EVRW_TAG_PC_BONUS_5
+// EVRW_TAG_PC_BONUS_COMBINATION_1
+// EVRW_TAG_PC_BONUS_COMBINATION_2
+// EVRW_TAG_PC_BONUS_COMBINATION_3
+// EVRW_TAG_PC_BONUS_COMBINATION_4
+// EVRW_TAG_PC_INSTALLMENT_1
+// EVRW_TAG_PC_LUMP
+// EVRW_TAG_PC_REVOLVING
+// EVRW_TAG_PM_COMBINED
+// EVRW_TAG_PM_FULL_SETTLEMENT
+// EVRW_TAG_PMFP_CASH
+// EVRW_TAG_PMFP_CREDIT
+// EVRW_TAG_PMFP_EM
+// EVRW_TAG_PMFP_OTHER
+// EVRW_TAG_ROS_NG
+// EVRW_TAG_ROS_OK
+// EVRW_TAG_ROS_UNKNOWN
+// EVRW_TAG_STT_1
+// EVRW_TAG_STT_2
+// EVRW_TAG_STT_3
+// EVRW_TAG_TT_ADD
+// EVRW_TAG_TT_CANCEL_CHARGE
+// EVRW_TAG_TT_CANCEL_RETURN
+// EVRW_TAG_TT_CANCEL_SALES
+// EVRW_TAG_TT_GET_LOG
+// EVRW_TAG_TT_READ
+// EVRW_TAG_TT_RETURN
+// EVRW_TAG_TT_SUBTRACT
+// EVRW_TAG_TT_WRITE
+// EVRW_TE_NOTIFY_TOUCH_RETRY
+// EVRW_TE_NOTIFY_TOUCH_RETRY_CANCELABLE
+// EVRW_TE_CONFIRM_TOUCH_RETRY
+// EVRW_TE_CONFIRM_CANCEL
+// EVRW_TE_NOTIFY_INVALID_OPERATION
+// EVRW_TE_CONFIRM_INVALID_OPERATION
+// EVRW_TE_CONFIRM_REMAINDER_SUBTRACTION
+// EVRW_TE_CONFIRM_CENTER_CHECK
+// EVRW_TE_CONFIRM_TOUCH_TIMEOUT
+// EVRW_TE_CONFIRM_AUTO_CHARGE
+// EVRW_TE_NOTIFY_CAPTURE_CARD
+// EVRW_TE_NOTIFY_PIN
+// EVRW_TE_NOTIFY_CENTER_CHECK
+// EVRW_TE_NOTIFY_COMPLETE
+// EVRW_TE_NOTIFY_TOUCH
+// EVRW_TE_NOTIFY_BUSY
+// EVRW_TE_CONFIRM_CENTER_CHECK_COMPLETE
+// EVRW_TE_CONFIRM_SELECT
+// EVRW_TE_NOTIFY_LOCK
+// EVRW_TE_NOTIFY_CENTER_CHECK_COMPLETE
+// EVRW_TE_CONFIRM_PIN_ENTRY_BY_OUTER_PINPAD
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface ElectronicValueRWConst
+{
+ /////////////////////////////////////////////////////////////////////
+ // "CapCardSensor" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int EVRW_CCS_ENTRY = 0x00000001;
+ public static final int EVRW_CCS_DETECT = 0x00000002;
+ public static final int EVRW_CCS_CAPTURE = 0x00000004;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapDetectionControl" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int EVRW_CDC_RWCONTROL = 0x00000001;
+ public static final int EVRW_CDC_APPLICATIONCONTROL = 0x00000002;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "DetectionStatus" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int EVRW_DS_NOCARD = 1;
+ public static final int EVRW_DS_DETECTED = 2;
+ public static final int EVRW_DS_ENTERED = 3;
+ public static final int EVRW_DS_CAPTURED = 4;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "LogStatus" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int EVRW_LS_OK = 1;
+ public static final int EVRW_LS_NEARFULL = 2;
+ public static final int EVRW_LS_FULL = 3;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "PINEntry" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int EVRW_PIN_ENTRY_NONE = 1; // Added in release 1.14
+ public static final int EVRW_PIN_ENTRY_EXTERNAL = 2; // Added in release 1.14
+ public static final int EVRW_PIN_ENTRY_INTERNAL = 3; // Added in release 1.14
+ public static final int EVRW_PIN_ENTRY_UNKNOWN = 4; // Added in release 1.14
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "TrainingModeState" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int EVRW_TM_FALSE = 1; // Added in release 1.14
+ public static final int EVRW_TM_TRUE = 2; // Added in release 1.14
+ public static final int EVRW_TM_UNKNOWN = 3; // Added in release 1.14
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "accessLog" Method: "Type" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int EVRW_AL_REPORTING = 1;
+ public static final int EVRW_AL_SETTLEMENT = 2;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "beginDetection" Method: "Type" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int EVRW_BD_ANY = 1;
+ public static final int EVRW_BD_SPECIFIC = 2;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "retrieveResultInformation" Method: "value" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int EVRW_TAG_AS_AUTHENTICATED = 1; // Added in release 1.14
+ public static final int EVRW_TAG_AS_UNAUTHENTICATED = 2; // Added in release 1.14
+
+ public static final int EVRW_TAG_CTT_CANCEL = 1; // Added in release 1.14
+ public static final int EVRW_TAG_CTT_CHARGE = 2; // Added in release 1.14
+ public static final int EVRW_TAG_CTT_RETURN = 3; // Added in release 1.14
+ public static final int EVRW_TAG_CTT_SALES = 4; // Added in release 1.14
+
+ public static final int EVRW_TAG_CM_CASH = 1; // Added in release 1.14
+ public static final int EVRW_TAG_CM_CREDIT = 2; // Added in release 1.14
+ public static final int EVRW_TAG_CM_POINT = 3; // Added in release 1.14
+
+ public static final int EVRW_TAG_PC_INSTALLMENT_1 = 1; // Added in release 1.14
+ public static final int EVRW_TAG_PC_INSTALLMENT_2 = 2; // Added in release 1.14
+ public static final int EVRW_TAG_PC_INSTALLMENT_3 = 3; // Added in release 1.14
+ public static final int EVRW_TAG_PC_BONUS_1 = 4; // Added in release 1.14
+ public static final int EVRW_TAG_PC_BONUS_2 = 5; // Added in release 1.14
+ public static final int EVRW_TAG_PC_BONUS_3 = 6; // Added in release 1.14
+ public static final int EVRW_TAG_PC_BONUS_4 = 7; // Added in release 1.14
+ public static final int EVRW_TAG_PC_BONUS_5 = 8; // Added in release 1.14
+ public static final int EVRW_TAG_PC_BONUS_COMBINATION_1 = 9; // Added in release 1.14
+ public static final int EVRW_TAG_PC_BONUS_COMBINATION_2 = 10; // Added in release 1.14
+ public static final int EVRW_TAG_PC_BONUS_COMBINATION_3 = 11; // Added in release 1.14
+ public static final int EVRW_TAG_PC_BONUS_COMBINATION_4 = 12; // Added in release 1.14
+ public static final int EVRW_TAG_PC_LUMP = 13; // Added in release 1.14
+ public static final int EVRW_TAG_PC_REVOLVING = 14; // Added in release 1.14
+
+ public static final int EVRW_TAG_PM_COMBINED = 1; // Added in release 1.14
+ public static final int EVRW_TAG_PM_FULL_SETTLEMENT = 2; // Added in release 1.14
+
+ public static final int EVRW_TAG_PMFP_CASH = 1; // Added in release 1.14
+ public static final int EVRW_TAG_PMFP_CREDIT = 2; // Added in release 1.14
+ public static final int EVRW_TAG_PMFP_EM = 3; // Added in release 1.14
+ public static final int EVRW_TAG_PMFP_OTHER = 4; // Added in release 1.14
+
+ public static final int EVRW_TAG_ROS_NG = 1; // Added in release 1.14
+ public static final int EVRW_TAG_ROS_OK = 2; // Added in release 1.14
+ public static final int EVRW_TAG_ROS_UNKNOWN = 3; // Added in release 1.14
+
+ public static final int EVRW_TAG_STT_1 = 1; // Added in release 1.14
+ public static final int EVRW_TAG_STT_2 = 2; // Added in release 1.14
+ public static final int EVRW_TAG_STT_3 = 3; // Added in release 1.14
+
+ public static final int EVRW_TAG_TT_ADD = 1; // Added in release 1.14
+ public static final int EVRW_TAG_TT_CANCEL_CHARGE = 2; // Added in release 1.14
+ public static final int EVRW_TAG_TT_CANCEL_RETURN = 3; // Added in release 1.14
+ public static final int EVRW_TAG_TT_CANCEL_SALES = 4; // Added in release 1.14
+ public static final int EVRW_TAG_TT_GET_LOG = 5; // Added in release 1.14
+ public static final int EVRW_TAG_TT_READ = 6; // Added in release 1.14
+ public static final int EVRW_TAG_TT_RETURN = 7; // Added in release 1.14
+ public static final int EVRW_TAG_TT_SUBTRACT = 8; // Added in release 1.14
+ public static final int EVRW_TAG_TT_WRITE = 9; // Added in release 1.14
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "transactionAccess" Method: "Control" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int EVRW_TA_TRANSACTION = 11;
+ public static final int EVRW_TA_NORMAL = 12;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "StatusUpdateEvent" Event: "Data" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int EVRW_SUE_LS_OK = 11;
+ public static final int EVRW_SUE_LS_NEARFULL = 12;
+ public static final int EVRW_SUE_LS_FULL = 13;
+ public static final int EVRW_SUE_DS_NOCARD = 21;
+ public static final int EVRW_SUE_DS_DETECTED = 22;
+ public static final int EVRW_SUE_DS_ENTERED = 23;
+ public static final int EVRW_SUE_DS_CAPTURED = 24;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "TransitionEvent" Event: "EventNumber" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int EVRW_TE_NOTIFY_TOUCH_RETRY = 1; // Added in release 1.14
+ public static final int EVRW_TE_NOTIFY_TOUCH_RETRY_CANCELABLE = 2; // Added in release 1.14
+ public static final int EVRW_TE_CONFIRM_TOUCH_RETRY = 3; // Added in release 1.14
+ public static final int EVRW_TE_CONFIRM_CANCEL = 4; // Added in release 1.14
+ public static final int EVRW_TE_NOTIFY_INVALID_OPERATION = 5; // Added in release 1.14
+ public static final int EVRW_TE_CONFIRM_INVALID_OPERATION = 6; // Added in release 1.14
+ public static final int EVRW_TE_CONFIRM_REMAINDER_SUBTRACTION = 7; // Added in release 1.14
+ public static final int EVRW_TE_CONFIRM_CENTER_CHECK = 8; // Added in release 1.14
+ public static final int EVRW_TE_CONFIRM_TOUCH_TIMEOUT = 9; // Added in release 1.14
+ public static final int EVRW_TE_CONFIRM_AUTO_CHARGE = 10; // Added in release 1.14
+ public static final int EVRW_TE_NOTIFY_CAPTURE_CARD = 11; // Added in release 1.14
+ public static final int EVRW_TE_NOTIFY_PIN = 12; // Added in release 1.14
+ public static final int EVRW_TE_NOTIFY_CENTER_CHECK = 13; // Added in release 1.14
+ public static final int EVRW_TE_NOTIFY_COMPLETE = 14; // Added in release 1.14
+ public static final int EVRW_TE_NOTIFY_TOUCH = 15; // Added in release 1.14
+ public static final int EVRW_TE_NOTIFY_BUSY = 16; // Added in release 1.14
+ public static final int EVRW_TE_CONFIRM_CENTER_CHECK_COMPLETE = 17; // Added in release 1.14
+ public static final int EVRW_TE_CONFIRM_SELECT = 18; // Added in release 1.14
+ public static final int EVRW_TE_NOTIFY_LOCK = 19; // Added in release 1.14
+ public static final int EVRW_TE_NOTIFY_CENTER_CHECK_COMPLETE = 20; // Added in release 1.14
+ public static final int EVRW_TE_CONFIRM_PIN_ENTRY_BY_OUTER_PINPAD = 21; // Added in release 1.14
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ResultCodeExtended" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int OPOS_EVRW_NOCARD = 201;
+ public static final int OPOS_EVRW_RELEASE = 202;
+ public static final int OPOS_EVRW_CENTERERROR = 203;
+ public static final int OPOS_EVRW_COMMANDERROR = 204;
+ public static final int OPOS_EVRW_RESET = 205;
+ public static final int OPOS_EVRW_COMMUNICATIONERROR = 206;
+ public static final int OPOS_EVRW_LOGOVERFLOW = 207;
+ public static final int OPOS_EVRW_DAILYLOGOVERFLOW = 208;
+ public static final int OPOS_EVRW_DEFICIENT = 209;
+ public static final int OPOS_EVRW_OVERDEPOSIT = 210;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicValueRWControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicValueRWControl112.java
new file mode 100644
index 0000000..80f5ef2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicValueRWControl112.java
@@ -0,0 +1,176 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ElectronicValueRWControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Electronic Value RW for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ElectronicValueRWControl112 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapActivateService() throws JposException;
+ public boolean getCapAddValue() throws JposException;
+ public boolean getCapCancelValue() throws JposException;
+ public int getCapCardSensor() throws JposException;
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public int getCapDetectionControl() throws JposException;
+ public boolean getCapElectronicMoney() throws JposException;
+ public boolean getCapEnumerateCardServices() throws JposException;
+ public boolean getCapIndirectTransactionLog() throws JposException;
+ public boolean getCapLockTerminal() throws JposException;
+ public boolean getCapLogStatus() throws JposException;
+ public boolean getCapMediumID() throws JposException;
+ public boolean getCapPoint() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapRealTimeData() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapSubtractValue() throws JposException;
+ public boolean getCapTransaction() throws JposException;
+ public boolean getCapTransactionLog() throws JposException;
+ public boolean getCapUnlockTerminal() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateKey() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+ public boolean getCapVoucher() throws JposException;
+ public boolean getCapWriteValue() throws JposException;
+
+ // Properties
+ public String getAccountNumber() throws JposException;
+ public String getAdditionalSecurityInformation() throws JposException;
+ public void setAdditionalSecurityInformation(String addSecInfo) throws JposException;
+ public long getAmount() throws JposException;
+ public void setAmount(long amount) throws JposException;
+ public String getApprovalCode() throws JposException;
+ public void setApprovalCode(String approvalCode) throws JposException;
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public long getBalance() throws JposException;
+ public long getBalanceOfPoint() throws JposException;
+ public String getCardServiceList() throws JposException;
+ public String getCurrentService() throws JposException;
+ public void setCurrentService(String currentService) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public boolean getDetectionControl() throws JposException;
+ public void setDetectionControl(boolean detectionControl) throws JposException;
+ public int getDetectionStatus() throws JposException;
+ public String getExpirationDate() throws JposException;
+ public String getLastUsedDate() throws JposException;
+ public int getLogStatus() throws JposException;
+ public String getMediumID() throws JposException;
+ public void setMediumID(String mediumID) throws JposException;
+ public int getOutputID() throws JposException;
+ public long getPoint() throws JposException;
+ public void setPoint(long point) throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public String getReaderWriterServiceList() throws JposException;
+ public int getSequenceNumber() throws JposException;
+ public long getSettledAmount() throws JposException;
+ public long getSettledPoint() throws JposException;
+ public String getTransactionLog() throws JposException;
+ public String getVoucherID() throws JposException;
+ public void setVoucherID(String voucherID) throws JposException;
+ public String getVoucherIDList() throws JposException;
+ public void setVoucherIDList(String voucherIDList) throws JposException;
+
+ // Methods
+ public void accessLog(int sequenceNumber,
+ int type,
+ int timeout)
+ throws JposException;
+ public void activateService(int[] data,
+ Object[] obj)
+ throws JposException;
+ public void addValue(int sequenceNumber, int timeout)
+ throws JposException;
+ public void beginDetection(int type,
+ int timeout)
+ throws JposException;
+ public void beginRemoval(int timeout)
+ throws JposException;
+ public void cancelValue(int sequenceNumber,
+ int timeout)
+ throws JposException;
+ public void captureCard()
+ throws JposException;
+ public void clearInput()
+ throws JposException;
+ public void clearInputProperties()
+ throws JposException;
+ public void clearOutput()
+ throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void endDetection()
+ throws JposException;
+ public void endRemoval()
+ throws JposException;
+ public void enumerateCardServices()
+ throws JposException;
+ public void lockTerminal()
+ throws JposException;
+ public void readValue(int sequenceNumber,
+ int timeout)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void subtractValue(int sequenceNumber,
+ int timeout)
+ throws JposException;
+ public void transactionAccess(int control)
+ throws JposException;
+ public void unlockTerminal()
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateKey(int[] data,
+ Object[] obj)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+ public void writeValue(int sequenceNumber,
+ int timeout)
+ throws JposException;
+
+ // Event listener methods
+ public void addDataListener(DataListener l);
+ public void removeDataListener(DataListener l);
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addErrorListener(ErrorListener l);
+ public void removeErrorListener(ErrorListener l);
+ public void addOutputCompleteListener(OutputCompleteListener l);
+ public void removeOutputCompleteListener(OutputCompleteListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicValueRWControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicValueRWControl113.java
new file mode 100644
index 0000000..f0cc201
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicValueRWControl113.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ElectronicValueRWControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Electronic Value RW for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ElectronicValueRWControl113 extends ElectronicValueRWControl112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicValueRWControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicValueRWControl114.java
new file mode 100644
index 0000000..824f030
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ElectronicValueRWControl114.java
@@ -0,0 +1,51 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ElectronicValueRWControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Electronic Value RW for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ElectronicValueRWControl114 extends ElectronicValueRWControl113
+{
+ // Capabilities
+ public boolean getCapPINDevice() throws JposException;
+ public boolean CapTrainingMode() throws JposException;
+
+ // Properties
+ public int getPINEntry() throws JposException;
+ public void setPINEntry(int pinEntry) throws JposException;
+ public int getTrainingModeState() throws JposException;
+ public void setTrainingModeState(int trainingModeState) throws JposException;
+
+ // Methods
+ public void clearParameterInformation() throws JposException;
+ public void queryLastSuccessfulTransactionResult() throws JposException;
+ public void retrieveResultInformation(String name,
+ String[] value) throws JposException;
+ public void setParameterInformation(String name,
+ String value) throws JposException;
+
+ // Event listener methods
+ public void addTransitionListener(TransitionListener l);
+ public void removeTransitionListener(TransitionListener l);
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinter.java b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinter.java
new file mode 100644
index 0000000..465dc92
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinter.java
@@ -0,0 +1,5699 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinter.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class FiscalPrinter
+ extends BaseJposControl
+ implements FiscalPrinterControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected FiscalPrinterService13 service13;
+ protected FiscalPrinterService14 service14;
+ protected FiscalPrinterService15 service15;
+ protected FiscalPrinterService16 service16;
+ protected FiscalPrinterService17 service17;
+ protected FiscalPrinterService18 service18;
+ protected FiscalPrinterService19 service19;
+ protected FiscalPrinterService110 service110;
+ protected FiscalPrinterService111 service111;
+ protected FiscalPrinterService112 service112;
+ protected FiscalPrinterService113 service113;
+ protected FiscalPrinterService114 service114;
+ protected Vector directIOListeners;
+ protected Vector errorListeners;
+ protected Vector outputCompleteListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public FiscalPrinter()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS FiscalPrinter Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service13 = null;
+ //service14 = null;
+ //service15 = null;
+ //service16 = null;
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ directIOListeners = new Vector();
+ errorListeners = new Vector();
+ outputCompleteListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapAdditionalLines()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapAdditionalLines();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapAmountAdjustment()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapAmountAdjustment();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapAmountNotPaid()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapAmountNotPaid();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCheckTotal()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapCheckTotal();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCoverSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapCoverSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapDoubleWidth()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapDoubleWidth();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapDuplicateReceipt()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapDuplicateReceipt();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapFixedOutput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapFixedOutput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapHasVatTable()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapHasVatTable();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapIndependentHeader()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapIndependentHeader();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapItemList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapItemList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapJrnEmptySensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapJrnEmptySensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapJrnNearEndSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapJrnNearEndSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapJrnPresent()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapJrnPresent();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapNonFiscalMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapNonFiscalMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapOrderAdjustmentFirst()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapOrderAdjustmentFirst();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapPercentAdjustment()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPercentAdjustment();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapPositiveAdjustment()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPositiveAdjustment();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapPowerLossReport()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPowerLossReport();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapPredefinedPaymentLines()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPredefinedPaymentLines();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapReceiptNotPaid()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapReceiptNotPaid();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRecEmptySensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapRecEmptySensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRecNearEndSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapRecNearEndSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRecPresent()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapRecPresent();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRemainingFiscalMemory()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapRemainingFiscalMemory();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapReservedWord()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapReservedWord();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSetHeader()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapSetHeader();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSetPOSID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapSetPOSID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSetStoreFiscalID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapSetStoreFiscalID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSetTrailer()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapSetTrailer();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSetVatTable()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapSetVatTable();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpEmptySensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapSlpEmptySensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpFiscalDocument()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapSlpFiscalDocument();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpFullSlip()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapSlpFullSlip();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpNearEndSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapSlpNearEndSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpPresent()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapSlpPresent();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpValidation()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapSlpValidation();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSubAmountAdjustment()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapSubAmountAdjustment();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSubPercentAdjustment()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapSubPercentAdjustment();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSubtotal()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapSubtotal();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapTrainingMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapTrainingMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapValidateJournal()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapValidateJournal();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapXReport()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapXReport();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapAdditionalHeader()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getCapAdditionalHeader();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapAdditionalTrailer()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getCapAdditionalTrailer();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapChangeDue()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getCapChangeDue();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapEmptyReceiptIsVoidable()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getCapEmptyReceiptIsVoidable();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapFiscalReceiptStation()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getCapFiscalReceiptStation();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapFiscalReceiptType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getCapFiscalReceiptType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapMultiContractor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getCapMultiContractor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapOnlyVoidLastItem()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getCapOnlyVoidLastItem();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapPackageAdjustment()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getCapPackageAdjustment();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapPostPreLine()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getCapPostPreLine();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSetCurrency()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getCapSetCurrency();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapTotalizerType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getCapTotalizerType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapPositiveSubtotalAdjustment()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.11.0
+ if(serviceVersion < deviceVersion111)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.11.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapPositiveSubtotalAdjustment();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public int getAmountDecimalPlace()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getAmountDecimalPlace();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getAsyncMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getAsyncMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAsyncMode(boolean asyncMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setAsyncMode(asyncMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCheckTotal()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCheckTotal();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCheckTotal(boolean checkTotal)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setCheckTotal(checkTotal);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCountryCode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCountryCode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCoverOpen()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCoverOpen();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDayOpened()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getDayOpened();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDescriptionLength()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getDescriptionLength();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDuplicateReceipt()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getDuplicateReceipt();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDuplicateReceipt(boolean duplicateReceipt)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setDuplicateReceipt(duplicateReceipt);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getErrorLevel()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getErrorLevel();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getErrorOutID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getErrorOutID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getErrorState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getErrorState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getErrorStation()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getErrorStation();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getErrorString()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getErrorString();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getFlagWhenIdle()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getFlagWhenIdle();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setFlagWhenIdle(boolean flagWhenIdle)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setFlagWhenIdle(flagWhenIdle);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getJrnEmpty()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getJrnEmpty();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getJrnNearEnd()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getJrnNearEnd();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMessageLength()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getMessageLength();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getNumHeaderLines()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getNumHeaderLines();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getNumTrailerLines()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getNumTrailerLines();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getNumVatRates()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getNumVatRates();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getOutputID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getOutputID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getPredefinedPaymentLines()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPredefinedPaymentLines();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPrinterState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPrinterState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getQuantityDecimalPlaces()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getQuantityDecimalPlaces();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getQuantityLength()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getQuantityLength();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getRecEmpty()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getRecEmpty();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getRecNearEnd()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getRecNearEnd();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getRemainingFiscalMemory()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getRemainingFiscalMemory();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getReservedWord()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getReservedWord();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getSlpEmpty()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getSlpEmpty();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getSlpNearEnd()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getSlpNearEnd();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSlipSelection()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getSlipSelection();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setSlipSelection(int slipSelection)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setSlipSelection(slipSelection);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getTrainingModeActive()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getTrainingModeActive();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getActualCurrency()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getActualCurrency();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getAdditionalHeader()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getAdditionalHeader();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAdditionalHeader(String additionalHeader)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.setAdditionalHeader(additionalHeader);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getAdditionalTrailer()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getAdditionalTrailer();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAdditionalTrailer(String additionalTrailer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.setAdditionalTrailer(additionalTrailer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getChangeDue()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getChangeDue();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setChangeDue(String changeDue)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.setChangeDue(changeDue);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getContractorId()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getContractorId();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setContractorId(int contractorId)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.setContractorId(contractorId);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDateType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getDateType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDateType(int dateType)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.setDateType(dateType);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getFiscalReceiptStation()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getFiscalReceiptStation();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setFiscalReceiptStation(int fiscalReceiptStation)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.setFiscalReceiptStation(fiscalReceiptStation);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getFiscalReceiptType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getFiscalReceiptType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setFiscalReceiptType(int fiscalReceiptType)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.setFiscalReceiptType(fiscalReceiptType);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMessageType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getMessageType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setMessageType(int messageType)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.setMessageType(messageType);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getPostLine()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getPostLine();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPostLine(String postLine)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.setPostLine(postLine);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getPreLine()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getPreLine();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPreLine(String preLine)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.setPreLine(preLine);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTotalizerType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getTotalizerType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTotalizerType(int totalizerType)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.setTotalizerType(totalizerType);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getAmountDecimalPlaces()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getAmountDecimalPlaces();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void beginFiscalDocument(int documentAmount)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.beginFiscalDocument(documentAmount);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void beginFiscalReceipt(boolean printHeader)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.beginFiscalReceipt(printHeader);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void beginFixedOutput(int station, int documentType)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.beginFixedOutput(station, documentType);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void beginInsertion(int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.beginInsertion(timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void beginItemList(int vatID)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.beginItemList(vatID);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void beginNonFiscal()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.beginNonFiscal();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void beginRemoval(int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.beginRemoval(timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void beginTraining()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.beginTraining();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearError()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.clearError();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearOutput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.clearOutput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endFiscalDocument()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.endFiscalDocument();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endFiscalReceipt(boolean printHeader)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.endFiscalReceipt(printHeader);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endFixedOutput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.endFixedOutput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endInsertion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.endInsertion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endItemList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.endItemList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endNonFiscal()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.endNonFiscal();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endRemoval()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.endRemoval();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endTraining()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.endTraining();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void getData(int dataItem, int[] optArgs, String[] data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.getData(dataItem, optArgs, data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void getDate(String[] Date)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.getDate(Date);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void getTotalizer(int vatID, int optArgs, String[] data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.getTotalizer(vatID, optArgs, data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void getVatEntry(int vatID, int optArgs, int[] vatRate)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.getVatEntry(vatID, optArgs, vatRate);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printDuplicateReceipt()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.printDuplicateReceipt();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printFiscalDocumentLine(String documentLine)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.printFiscalDocumentLine(documentLine);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printFixedOutput(int documentType, int lineNumber, String data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.printFixedOutput(documentType, lineNumber, data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printNormal(int station, String data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.printNormal(station, data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printPeriodicTotalsReport(String date1, String date2)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.printPeriodicTotalsReport(date1, date2);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printPowerLossReport()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.printPowerLossReport();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecItem(String description, long price, int quantity, int vatInfo, long unitPrice, String unitName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.printRecItem(description, price, quantity, vatInfo, unitPrice, unitName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecItemAdjustment(int adjustmentType, String description, long amount, int vatInfo)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.printRecItemAdjustment(adjustmentType, description, amount, vatInfo);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecMessage(String message)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.printRecMessage(message);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecNotPaid(String description, long amount)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.printRecNotPaid(description, amount);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecRefund(String description, long amount, int vatInfo)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.printRecRefund(description, amount, vatInfo);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecSubtotal(long amount)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.printRecSubtotal(amount);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecSubtotalAdjustment(int adjustmentType, String description, long amount)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.printRecSubtotalAdjustment(adjustmentType, description, amount);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecTotal(long total, long payment, String description)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.printRecTotal(total, payment, description);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecVoid(String description)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.printRecVoid(description);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecVoidItem(String description, long amount, int quantity, int adjustmentType, long adjustment, int vatInfo)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.printRecVoidItem(description, amount, quantity, adjustmentType, adjustment, vatInfo);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printReport(int reportType, String startNum, String endNum)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.printReport(reportType, startNum, endNum);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printXReport()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.printXReport();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printZReport()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.printZReport();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetPrinter()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.resetPrinter();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDate(String date)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setDate(date);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setHeaderLine(int lineNumber, String text, boolean doubleWidth)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setHeaderLine(lineNumber, text, doubleWidth);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPOSID(String POSID, String cashierID)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setPOSID(POSID, cashierID);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setStoreFiscalID(String ID)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setStoreFiscalID(ID);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTrailerLine(int lineNumber, String text, boolean doubleWidth)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setTrailerLine(lineNumber, text, doubleWidth);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setVatTable()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setVatTable();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setVatValue(int vatID, String vatValue)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setVatValue(vatID, vatValue);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void verifyItem(String itemName, int vatID)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.verifyItem(itemName, vatID);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCurrency(int newCurrency)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.setCurrency(newCurrency);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecCash(long amount)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.printRecCash(amount);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecItemFuel(String description, long price, int quantity, int vatInfo, long unitPrice, String unitName, long specialTax, String specialTaxName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.printRecItemFuel(description, price, quantity, vatInfo, unitPrice, unitName, specialTax, specialTaxName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecItemFuelVoid(String description, long price, int vatInfo, long specialTax)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.printRecItemFuelVoid(description, price, vatInfo, specialTax);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecPackageAdjustment(int adjustmentType, String description, String vatAdjustment)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.printRecPackageAdjustment(adjustmentType, description, vatAdjustment);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecPackageAdjustVoid(int adjustmentType, String vatAdjustment)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.printRecPackageAdjustVoid(adjustmentType, vatAdjustment);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecRefundVoid(String description, long amount, int vatInfo)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.printRecRefundVoid(description, amount, vatInfo);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecSubtotalAdjustVoid(int adjustmentType, long amount)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.printRecSubtotalAdjustVoid(adjustmentType, amount);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecTaxID(String taxID)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.printRecTaxID(taxID);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecItemVoid(String description, long price, int quantity, int vatInfo, long unitPrice, String unitName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.11.0
+ if(serviceVersion < deviceVersion111)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.11.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.printRecItemVoid(description, price, quantity, vatInfo, unitPrice, unitName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecItemAdjustmentVoid(int adjustmentType, String description, long amount, int vatInfo)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.11.0
+ if(serviceVersion < deviceVersion111)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.11.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.printRecItemAdjustmentVoid(adjustmentType, description, amount, vatInfo);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecItemRefund(String description, long amount, int quantity, int vatInfo, long unitAmount, String unitName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.printRecItemRefund(description, amount, quantity, vatInfo, unitAmount, unitName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printRecItemRefundVoid(String description, long amount, int quantity, int vatInfo, long unitAmount, String unitName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.printRecItemRefundVoid(description, amount, quantity, vatInfo, unitAmount, unitName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new FiscalPrinterCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service13 = null;
+ service14 = null;
+ service15 = null;
+ service16 = null;
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion13)
+ {
+ try
+ {
+ service13 = (FiscalPrinterService13)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement FiscalPrinterService13 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion14)
+ {
+ try
+ {
+ service14 = (FiscalPrinterService14)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement FiscalPrinterService14 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion15)
+ {
+ try
+ {
+ service15 = (FiscalPrinterService15)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement FiscalPrinterService15 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion16)
+ {
+ try
+ {
+ service16 = (FiscalPrinterService16)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement FiscalPrinterService16 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (FiscalPrinterService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement FiscalPrinterService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (FiscalPrinterService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement FiscalPrinterService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (FiscalPrinterService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement FiscalPrinterService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (FiscalPrinterService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement FiscalPrinterService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (FiscalPrinterService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement FiscalPrinterService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (FiscalPrinterService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement FiscalPrinterService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (FiscalPrinterService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement FiscalPrinterService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (FiscalPrinterService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement FiscalPrinterService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.addElement(l);
+ }
+ }
+
+ public void removeErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.removeElement(l);
+ }
+ }
+
+ public void addOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.addElement(l);
+ }
+ }
+
+ public void removeOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class FiscalPrinterCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)FiscalPrinter.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(FiscalPrinter.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ synchronized(FiscalPrinter.this.errorListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < errorListeners.size(); x++)
+ {
+ ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e);
+ }
+ }
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ synchronized(FiscalPrinter.this.outputCompleteListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < outputCompleteListeners.size(); x++)
+ {
+ ((OutputCompleteListener)outputCompleteListeners.elementAt(x)).outputCompleteOccurred(e);
+ }
+ }
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(FiscalPrinter.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinter.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinter.manifest.stub
new file mode 100644
index 0000000..bffefde
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinter.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/FiscalPrinter.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterBeanInfo.java
new file mode 100644
index 0000000..4ae157f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterBeanInfo.java
@@ -0,0 +1,192 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// FiscalPrinterBeanInfo.java - Bean information for the JavaPOS FiscalPrinter
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class FiscalPrinterBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.FiscalPrinter.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.FiscalPrinter.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapAdditionalLines"),
+ makeProperty("CapAmountAdjustment"),
+ makeProperty("CapAmountNotPaid"),
+ makeProperty("CapCheckTotal"),
+ makeProperty("CapCoverSensor"),
+ makeProperty("CapDoubleWidth"),
+ makeProperty("CapDuplicateReceipt"),
+ makeProperty("CapFixedOutput"),
+ makeProperty("CapHasVatTable"),
+ makeProperty("CapIndependentHeader"),
+ makeProperty("CapItemList"),
+ makeProperty("CapJrnEmptySensor"),
+ makeProperty("CapJrnNearEndSensor"),
+ makeProperty("CapJrnPresent"),
+ makeProperty("CapNonFiscalMode"),
+ makeProperty("CapOrderAdjustmentFirst"),
+ makeProperty("CapPercentAdjustment"),
+ makeProperty("CapPositiveAdjustment"),
+ makeProperty("CapPowerLossReport"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapPredefinedPaymentLines"),
+ makeProperty("CapReceiptNotPaid"),
+ makeProperty("CapRecEmptySensor"),
+ makeProperty("CapRecNearEndSensor"),
+ makeProperty("CapRecPresent"),
+ makeProperty("CapRemainingFiscalMemory"),
+ makeProperty("CapReservedWord"),
+ makeProperty("CapSetHeader"),
+ makeProperty("CapSetPOSID"),
+ makeProperty("CapSetStoreFiscalID"),
+ makeProperty("CapSetTrailer"),
+ makeProperty("CapSetVatTable"),
+ makeProperty("CapSlpEmptySensor"),
+ makeProperty("CapSlpFiscalDocument"),
+ makeProperty("CapSlpFullSlip"),
+ makeProperty("CapSlpNearEndSensor"),
+ makeProperty("CapSlpPresent"),
+ makeProperty("CapSlpValidation"),
+ makeProperty("CapSubAmountAdjustment"),
+ makeProperty("CapSubPercentAdjustment"),
+ makeProperty("CapSubtotal"),
+ makeProperty("CapTrainingMode"),
+ makeProperty("CapValidateJournal"),
+ makeProperty("CapXReport"),
+ makeProperty("CapAdditionalHeader"),
+ makeProperty("CapAdditionalTrailer"),
+ makeProperty("CapChangeDue"),
+ makeProperty("CapEmptyReceiptIsVoidable"),
+ makeProperty("CapFiscalReceiptStation"),
+ makeProperty("CapFiscalReceiptType"),
+ makeProperty("CapMultiContractor"),
+ makeProperty("CapOnlyVoidLastItem"),
+ makeProperty("CapPackageAdjustment"),
+ makeProperty("CapPostPreLine"),
+ makeProperty("CapSetCurrency"),
+ makeProperty("CapTotalizerType"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapUpdateFirmware"),
+ makeProperty("CapPositiveSubtotalAdjustment"),
+
+ // Properties
+ makeProperty("AmountDecimalPlace"),
+ makeProperty("AsyncMode"),
+ makeProperty("CheckTotal"),
+ makeProperty("CountryCode"),
+ makeProperty("CoverOpen"),
+ makeProperty("DayOpened"),
+ makeProperty("DescriptionLength"),
+ makeProperty("DuplicateReceipt"),
+ makeProperty("ErrorLevel"),
+ makeProperty("ErrorOutID"),
+ makeProperty("ErrorState"),
+ makeProperty("ErrorStation"),
+ makeProperty("ErrorString"),
+ makeProperty("FlagWhenIdle"),
+ makeProperty("JrnEmpty"),
+ makeProperty("JrnNearEnd"),
+ makeProperty("MessageLength"),
+ makeProperty("NumHeaderLines"),
+ makeProperty("NumTrailerLines"),
+ makeProperty("NumVatRates"),
+ makeProperty("OutputID"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("PredefinedPaymentLines"),
+ makeProperty("PrinterState"),
+ makeProperty("QuantityDecimalPlaces"),
+ makeProperty("QuantityLength"),
+ makeProperty("RecEmpty"),
+ makeProperty("RecNearEnd"),
+ makeProperty("RemainingFiscalMemory"),
+ makeProperty("ReservedWord"),
+ makeProperty("SlpEmpty"),
+ makeProperty("SlpNearEnd"),
+ makeProperty("SlipSelection"),
+ makeProperty("TrainingModeActive"),
+ makeProperty("ActualCurrency"),
+ makeProperty("AdditionalHeader"),
+ makeProperty("AdditionalTrailer"),
+ makeProperty("ChangeDue"),
+ makeProperty("ContractorId"),
+ makeProperty("DateType"),
+ makeProperty("FiscalReceiptStation"),
+ makeProperty("FiscalReceiptType"),
+ makeProperty("MessageType"),
+ makeProperty("PostLine"),
+ makeProperty("PreLine"),
+ makeProperty("TotalizerType"),
+ makeProperty("AmountDecimalPlaces")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.FiscalPrinter.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("DirectIO"),
+ makeEvent("Error"),
+ makeEvent("OutputComplete"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterConst.java
new file mode 100644
index 0000000..607f593
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterConst.java
@@ -0,0 +1,455 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterConst
+//
+// Fiscal Printer constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+// 16-Apr-2003 Release 1.7.2: Added the missing constant BS
+// FPTR_SC_EURO.
+// 03-Jun-2003 JavaPOS Release 1.8 BS
+// Added new StatusUpdateEvent constants.
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+// Added new ActualCurrency constants:
+// FPTR_AC_CZK
+// FPTR_AC_UAH
+// FPTR_AC_OTHER
+// Added new CountryCode constants:
+// FPTR_CC_CZECH_REPUBLIC
+// FPTR_CC_UKRAINE
+// FPTR_CC_OTHER
+// Added new DateType constant:
+// FPTR_DT_START
+// Added new FiscalReceiptType constant:
+// FPTR_RT_REFUND
+// Added new AdjustmentType constants:
+// FPTR_AT_COUPON_AMOUNT_DISCOUNT
+// FPTR_AT_COUPON_PERCENTAGE_DISCOUNT
+// Added new ReportType constant:
+// FPTR_RT_EOD_ORDINAL
+// Added new ErrorCodeExtended constant:
+// JPOS_EFPTR_DAY_END_REQUIRED
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface FiscalPrinterConst
+{
+ /////////////////////////////////////////////////////////////////////
+ // Fiscal Printer Station Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int FPTR_S_JOURNAL = 1;
+ public static final int FPTR_S_RECEIPT = 2;
+ public static final int FPTR_S_SLIP = 4;
+
+ public static final int FPTR_S_JOURNAL_RECEIPT = FPTR_S_JOURNAL | FPTR_S_RECEIPT;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ActualCurrency" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int FPTR_AC_BRC = 1;
+ public static final int FPTR_AC_BGL = 2;
+ public static final int FPTR_AC_EUR = 3;
+ public static final int FPTR_AC_GRD = 4;
+ public static final int FPTR_AC_HUF = 5;
+ public static final int FPTR_AC_ITL = 6;
+ public static final int FPTR_AC_PLZ = 7;
+ public static final int FPTR_AC_ROL = 8;
+ public static final int FPTR_AC_RUR = 9;
+ public static final int FPTR_AC_TRL = 10;
+ public static final int FPTR_AC_CZK = 11; // 1.11
+ public static final int FPTR_AC_UAH = 12; // 1.11
+ public static final int FPTR_AC_OTHER = 200; // 1.11
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ContractorId" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int FPTR_CID_FIRST = 1;
+ public static final int FPTR_CID_SECOND = 2;
+ public static final int FPTR_CID_SINGLE = 3;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CountryCode" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int FPTR_CC_BRAZIL = 0x00000001;
+ public static final int FPTR_CC_GREECE = 0x00000002;
+ public static final int FPTR_CC_HUNGARY = 0x00000004;
+ public static final int FPTR_CC_ITALY = 0x00000008;
+ public static final int FPTR_CC_POLAND = 0x00000010;
+ public static final int FPTR_CC_TURKEY = 0x00000020;
+ public static final int FPTR_CC_RUSSIA = 0x00000040;
+ public static final int FPTR_CC_BULGARIA = 0x00000080;
+ public static final int FPTR_CC_ROMANIA = 0x00000100;
+ public static final int FPTR_CC_CZECH_REPUBLIC = 0x00000200; // 1.11
+ public static final int FPTR_CC_UKRAINE = 0x00000400; // 1.11
+ public static final int FPTR_CC_OTHER = 0x40000000; // 1.11
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "DateType" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int FPTR_DT_CONF = 1;
+ public static final int FPTR_DT_EOD = 2;
+ public static final int FPTR_DT_RESET = 3;
+ public static final int FPTR_DT_RTC = 4;
+ public static final int FPTR_DT_VAT = 5;
+ public static final int FPTR_DT_START = 6; // 1.11
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ErrorLevel" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int FPTR_EL_NONE = 1;
+ public static final int FPTR_EL_RECOVERABLE = 2;
+ public static final int FPTR_EL_FATAL = 3;
+ public static final int FPTR_EL_BLOCKED = 4;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ErrorState", "PrinterState" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int FPTR_PS_MONITOR = 1;
+ public static final int FPTR_PS_FISCAL_RECEIPT = 2;
+ public static final int FPTR_PS_FISCAL_RECEIPT_TOTAL = 3;
+ public static final int FPTR_PS_FISCAL_RECEIPT_ENDING = 4;
+ public static final int FPTR_PS_FISCAL_DOCUMENT = 5;
+ public static final int FPTR_PS_FIXED_OUTPUT = 6;
+ public static final int FPTR_PS_ITEM_LIST = 7;
+ public static final int FPTR_PS_LOCKED = 8;
+ public static final int FPTR_PS_NONFISCAL = 9;
+ public static final int FPTR_PS_REPORT = 10;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "FiscalReceiptStation" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int FPTR_RS_RECEIPT = 1;
+ public static final int FPTR_RS_SLIP = 2;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "FiscalReceiptType" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int FPTR_RT_CASH_IN = 1;
+ public static final int FPTR_RT_CASH_OUT = 2;
+ public static final int FPTR_RT_GENERIC = 3;
+ public static final int FPTR_RT_SALES = 4;
+ public static final int FPTR_RT_SERVICE = 5;
+ public static final int FPTR_RT_SIMPLE_INVOICE = 6;
+ public static final int FPTR_RT_REFUND = 7; // 1.11
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "MessageType" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int FPTR_MT_ADVANCE = 1;
+ public static final int FPTR_MT_ADVANCE_PAID = 2;
+ public static final int FPTR_MT_AMOUNT_TO_BE_PAID = 3;
+ public static final int FPTR_MT_AMOUNT_TO_BE_PAID_BACK = 4;
+ public static final int FPTR_MT_CARD = 5;
+ public static final int FPTR_MT_CARD_NUMBER = 6;
+ public static final int FPTR_MT_CARD_TYPE = 7;
+ public static final int FPTR_MT_CASH = 8;
+ public static final int FPTR_MT_CASHIER = 9;
+ public static final int FPTR_MT_CASH_REGISTER_NUMBER = 10;
+ public static final int FPTR_MT_CHANGE = 11;
+ public static final int FPTR_MT_CHEQUE = 12;
+ public static final int FPTR_MT_CLIENT_NUMBER = 13;
+ public static final int FPTR_MT_CLIENT_SIGNATURE = 14;
+ public static final int FPTR_MT_COUNTER_STATE = 15;
+ public static final int FPTR_MT_CREDIT_CARD = 16;
+ public static final int FPTR_MT_CURRENCY = 17;
+ public static final int FPTR_MT_CURRENCY_VALUE = 18;
+ public static final int FPTR_MT_DEPOSIT = 19;
+ public static final int FPTR_MT_DEPOSIT_RETURNED = 20;
+ public static final int FPTR_MT_DOT_LINE = 21;
+ public static final int FPTR_MT_DRIVER_NUMB = 22;
+ public static final int FPTR_MT_EMPTY_LINE = 23;
+ public static final int FPTR_MT_FREE_TEXT = 24;
+ public static final int FPTR_MT_FREE_TEXT_WITH_DAY_LIMIT = 25;
+ public static final int FPTR_MT_GIVEN_DISCOUNT = 26;
+ public static final int FPTR_MT_LOCAL_CREDIT = 27;
+ public static final int FPTR_MT_MILEAGE_KM = 28;
+ public static final int FPTR_MT_NOTE = 29;
+ public static final int FPTR_MT_PAID = 30;
+ public static final int FPTR_MT_PAY_IN = 31;
+ public static final int FPTR_MT_POINT_GRANTED = 32;
+ public static final int FPTR_MT_POINTS_BONUS = 33;
+ public static final int FPTR_MT_POINTS_RECEIPT = 34;
+ public static final int FPTR_MT_POINTS_TOTAL = 35;
+ public static final int FPTR_MT_PROFITED = 36;
+ public static final int FPTR_MT_RATE = 37;
+ public static final int FPTR_MT_REGISTER_NUMB = 38;
+ public static final int FPTR_MT_SHIFT_NUMBER = 39;
+ public static final int FPTR_MT_STATE_OF_AN_ACCOUNT = 40;
+ public static final int FPTR_MT_SUBSCRIPTION = 41;
+ public static final int FPTR_MT_TABLE = 42;
+ public static final int FPTR_MT_THANK_YOU_FOR_LOYALTY = 43;
+ public static final int FPTR_MT_TRANSACTION_NUMB = 44;
+ public static final int FPTR_MT_VALID_TO = 45;
+ public static final int FPTR_MT_VOUCHER = 46;
+ public static final int FPTR_MT_VOUCHER_PAID = 47;
+ public static final int FPTR_MT_VOUCHER_VALUE = 48;
+ public static final int FPTR_MT_WITH_DISCOUNT = 49;
+ public static final int FPTR_MT_WITHOUT_UPLIFT = 50;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "SlipSelection" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int FPTR_SS_FULL_LENGTH = 1;
+ public static final int FPTR_SS_VALIDATION = 2;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "TotalizerType" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int FPTR_TT_DOCUMENT = 1;
+ public static final int FPTR_TT_DAY = 2;
+ public static final int FPTR_TT_RECEIPT = 3;
+ public static final int FPTR_TT_GRAND = 4;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "GetData" Method Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int FPTR_GD_CURRENT_TOTAL = 1;
+ public static final int FPTR_GD_DAILY_TOTAL = 2;
+ public static final int FPTR_GD_RECEIPT_NUMBER = 3;
+ public static final int FPTR_GD_REFUND = 4;
+ public static final int FPTR_GD_NOT_PAID = 5;
+ public static final int FPTR_GD_MID_VOID = 6;
+ public static final int FPTR_GD_Z_REPORT = 7;
+ public static final int FPTR_GD_GRAND_TOTAL = 8;
+ public static final int FPTR_GD_PRINTER_ID = 9;
+ public static final int FPTR_GD_FIRMWARE = 10;
+ public static final int FPTR_GD_RESTART = 11;
+ public static final int FPTR_GD_REFUND_VOID = 12;
+ public static final int FPTR_GD_NUMB_CONFIG_BLOCK = 13;
+ public static final int FPTR_GD_NUMB_CURRENCY_BLOCK = 14;
+ public static final int FPTR_GD_NUMB_HDR_BLOCK = 15;
+ public static final int FPTR_GD_NUMB_RESET_BLOCK = 16;
+ public static final int FPTR_GD_NUMB_VAT_BLOCK = 17;
+ public static final int FPTR_GD_FISCAL_DOC = 18;
+ public static final int FPTR_GD_FISCAL_DOC_VOID = 19;
+ public static final int FPTR_GD_FISCAL_REC = 20;
+ public static final int FPTR_GD_FISCAL_REC_VOID = 21;
+ public static final int FPTR_GD_NONFISCAL_DOC = 22;
+ public static final int FPTR_GD_NONFISCAL_DOC_VOID = 23;
+ public static final int FPTR_GD_NONFISCAL_REC = 24;
+ public static final int FPTR_GD_SIMP_INVOICE = 25;
+ public static final int FPTR_GD_TENDER = 26;
+ public static final int FPTR_GD_LINECOUNT = 27;
+ public static final int FPTR_GD_DESCRIPTION_LENGTH = 28;
+
+ public static final int FPTR_PDL_CASH = 1;
+ public static final int FPTR_PDL_CHEQUE = 2;
+ public static final int FPTR_PDL_CHITTY = 3;
+ public static final int FPTR_PDL_COUPON = 4;
+ public static final int FPTR_PDL_CURRENCY = 5;
+ public static final int FPTR_PDL_DRIVEN_OFF = 6;
+ public static final int FPTR_PDL_EFT_IMPRINTER = 7;
+ public static final int FPTR_PDL_EFT_TERMINAL = 8;
+ public static final int FPTR_PDL_TERMINAL_IMPRINTER = 9;
+ public static final int FPTR_PDL_FREE_GIFT = 10;
+ public static final int FPTR_PDL_GIRO = 11;
+ public static final int FPTR_PDL_HOME = 12;
+ public static final int FPTR_PDL_IMPRINTER_WITH_ISSUER = 13;
+ public static final int FPTR_PDL_LOCAL_ACCOUNT = 14;
+ public static final int FPTR_PDL_LOCAL_ACCOUNT_CARD = 15;
+ public static final int FPTR_PDL_PAY_CARD = 16;
+ public static final int FPTR_PDL_PAY_CARD_MANUAL = 17;
+ public static final int FPTR_PDL_PREPAY = 18;
+ public static final int FPTR_PDL_PUMP_TEST = 19;
+ public static final int FPTR_PDL_SHORT_CREDIT = 20;
+ public static final int FPTR_PDL_STAFF = 21;
+ public static final int FPTR_PDL_VOUCHER = 22;
+
+ public static final int FPTR_LC_ITEM = 1;
+ public static final int FPTR_LC_ITEM_VOID = 2;
+ public static final int FPTR_LC_DISCOUNT = 3;
+ public static final int FPTR_LC_DISCOUNT_VOID = 4;
+ public static final int FPTR_LC_SURCHARGE = 5;
+ public static final int FPTR_LC_SURCHARGE_VOID = 6;
+ public static final int FPTR_LC_REFUND = 7;
+ public static final int FPTR_LC_REFUND_VOID = 8;
+ public static final int FPTR_LC_SUBTOTAL_DISCOUNT = 9;
+ public static final int FPTR_LC_SUBTOTAL_DISCOUNT_VOID = 10;
+ public static final int FPTR_LC_SUBTOTAL_SURCHARGE = 11;
+ public static final int FPTR_LC_SUBTOTAL_SURCHARGE_VOID = 12;
+ public static final int FPTR_LC_COMMENT = 13;
+ public static final int FPTR_LC_SUBTOTAL = 14;
+ public static final int FPTR_LC_TOTAL = 15;
+
+ public static final int FPTR_DL_ITEM = 1;
+ public static final int FPTR_DL_ITEM_ADJUSTMENT = 2;
+ public static final int FPTR_DL_ITEM_FUEL = 3;
+ public static final int FPTR_DL_ITEM_FUEL_VOID = 4;
+ public static final int FPTR_DL_NOT_PAID = 5;
+ public static final int FPTR_DL_PACKAGE_ADJUSTMENT = 6;
+ public static final int FPTR_DL_REFUND = 7;
+ public static final int FPTR_DL_REFUND_VOID = 8;
+ public static final int FPTR_DL_SUBTOTAL_ADJUSTMENT = 9;
+ public static final int FPTR_DL_TOTAL = 10;
+ public static final int FPTR_DL_VOID = 11;
+ public static final int FPTR_DL_VOID_ITEM = 12;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "GetTotalizer" Method Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int FPTR_GT_GROSS = 1;
+ public static final int FPTR_GT_NET = 2;
+ public static final int FPTR_GT_DISCOUNT = 3;
+ public static final int FPTR_GT_DISCOUNT_VOID = 4;
+ public static final int FPTR_GT_ITEM = 5;
+ public static final int FPTR_GT_ITEM_VOID = 6;
+ public static final int FPTR_GT_NOT_PAID = 7;
+ public static final int FPTR_GT_REFUND = 8;
+ public static final int FPTR_GT_REFUND_VOID = 9;
+ public static final int FPTR_GT_SUBTOTAL_DISCOUNT = 10;
+ public static final int FPTR_GT_SUBTOTAL_DISCOUNT_VOID = 11;
+ public static final int FPTR_GT_SUBTOTAL_SURCHARGES = 12;
+ public static final int FPTR_GT_SUBTOTAL_SURCHARGES_VOID = 13;
+ public static final int FPTR_GT_SURCHARGE = 14;
+ public static final int FPTR_GT_SURCHARGE_VOID = 15;
+ public static final int FPTR_GT_VAT = 16;
+ public static final int FPTR_GT_VAT_CATEGORY = 17;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "AdjustmentType" arguments in diverse methods
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int FPTR_AT_AMOUNT_DISCOUNT = 1;
+ public static final int FPTR_AT_AMOUNT_SURCHARGE = 2;
+ public static final int FPTR_AT_PERCENTAGE_DISCOUNT = 3;
+ public static final int FPTR_AT_PERCENTAGE_SURCHARGE = 4;
+ public static final int FPTR_AT_COUPON_AMOUNT_DISCOUNT = 5; // 1.11
+ public static final int FPTR_AT_COUPON_PERCENTAGE_DISCOUNT = 6; // 1.11
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ReportType" argument in "PrintReport" method
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int FPTR_RT_ORDINAL = 1;
+ public static final int FPTR_RT_DATE = 2;
+ public static final int FPTR_RT_EOD_ORDINAL = 3; // 1.11
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "NewCurrency" argument in "SetCurrency" method
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int FPTR_SC_EURO = 1;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "StatusUpdateEvent" Event: "Data" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int FPTR_SUE_COVER_OPEN = 11;
+ public static final int FPTR_SUE_COVER_OK = 12;
+
+ public static final int FPTR_SUE_JRN_EMPTY = 21;
+ public static final int FPTR_SUE_JRN_NEAREMPTY = 22;
+ public static final int FPTR_SUE_JRN_PAPEROK = 23;
+
+ public static final int FPTR_SUE_REC_EMPTY = 24;
+ public static final int FPTR_SUE_REC_NEAREMPTY = 25;
+ public static final int FPTR_SUE_REC_PAPEROK = 26;
+
+ public static final int FPTR_SUE_SLP_EMPTY = 27;
+ public static final int FPTR_SUE_SLP_NEAREMPTY = 28;
+ public static final int FPTR_SUE_SLP_PAPEROK = 29;
+
+ public static final int FPTR_SUE_IDLE =1001;
+
+ // Added in Release 1.8
+ public static final int FPTR_SUE_JRN_COVER_OPEN = 60;
+ public static final int FPTR_SUE_JRN_COVER_OK = 61;
+ public static final int FPTR_SUE_REC_COVER_OPEN = 62;
+ public static final int FPTR_SUE_REC_COVER_OK = 63;
+ public static final int FPTR_SUE_SLP_COVER_OPEN = 64;
+ public static final int FPTR_SUE_SLP_COVER_OK = 65;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ErrorCodeExtended" Property Constants for Fiscal Printer
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_EFPTR_COVER_OPEN = 1 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_JRN_EMPTY = 2 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_REC_EMPTY = 3 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_SLP_EMPTY = 4 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_SLP_FORM = 5 + JposConst.JPOSERREXT; // EndRemoval
+ public static final int JPOS_EFPTR_MISSING_DEVICES =
+ 6 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_WRONG_STATE =
+ 7 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_TECHNICAL_ASSISTANCE =
+ 8 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_CLOCK_ERROR =
+ 9 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_FISCAL_MEMORY_FULL =
+ 10 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_FISCAL_MEMORY_DISCONNECTED =
+ 11 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_FISCAL_TOTALS_ERROR =
+ 12 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_BAD_ITEM_QUANTITY =
+ 13 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_BAD_ITEM_AMOUNT =
+ 14 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_BAD_ITEM_DESCRIPTION =
+ 15 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_RECEIPT_TOTAL_OVERFLOW =
+ 16 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_BAD_VAT =
+ 17 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_BAD_PRICE =
+ 18 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_BAD_DATE =
+ 19 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_NEGATIVE_TOTAL =
+ 20 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_WORD_NOT_ALLOWED =
+ 21 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_BAD_LENGTH =
+ 22 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_MISSING_SET_CURRENCY =
+ 23 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EFPTR_DAY_END_REQUIRED =
+ 24 + JposConst.JPOSERREXT; // (Several) // 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl110.java
new file mode 100644
index 0000000..fb69e55
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl110.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface FiscalPrinterControl110 extends FiscalPrinterControl19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl111.java
new file mode 100644
index 0000000..04e0213
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl111.java
@@ -0,0 +1,46 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface FiscalPrinterControl111 extends FiscalPrinterControl110
+{
+ // Capabilities
+ public boolean getCapPositiveSubtotalAdjustment() throws JposException;
+
+ // Methods
+ public void printRecItemVoid(String description,
+ long price,
+ int quantity,
+ int vatInfo,
+ long unitPrice,
+ String unitName)
+ throws JposException;
+ public void printRecItemAdjustmentVoid(int adjustmentType,
+ String description,
+ long amount,
+ int vatInfo)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl112.java
new file mode 100644
index 0000000..f763d41
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl112.java
@@ -0,0 +1,45 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface FiscalPrinterControl112 extends FiscalPrinterControl111
+{
+ // Methods
+ public void printRecItemRefund(String description,
+ long amount,
+ int quantity,
+ int vatInfo,
+ long unitAmount,
+ String unitName)
+ throws JposException;
+ public void printRecItemRefundVoid(String description,
+ long amount,
+ int quantity,
+ int vatInfo,
+ long unitAmount,
+ String unitName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl113.java
new file mode 100644
index 0000000..ce17daf
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface FiscalPrinterControl113 extends FiscalPrinterControl112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl114.java
new file mode 100644
index 0000000..9d69303
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Fiscal Printer for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface FiscalPrinterControl114 extends FiscalPrinterControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl13.java b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl13.java
new file mode 100644
index 0000000..6f89d87
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl13.java
@@ -0,0 +1,204 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterControl13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface FiscalPrinterControl13 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapAdditionalLines() throws JposException;
+ public boolean getCapAmountAdjustment() throws JposException;
+ public boolean getCapAmountNotPaid() throws JposException;
+ public boolean getCapCheckTotal() throws JposException;
+ public boolean getCapCoverSensor() throws JposException;
+ public boolean getCapDoubleWidth() throws JposException;
+ public boolean getCapDuplicateReceipt() throws JposException;
+ public boolean getCapFixedOutput() throws JposException;
+ public boolean getCapHasVatTable() throws JposException;
+ public boolean getCapIndependentHeader() throws JposException;
+ public boolean getCapItemList() throws JposException;
+ public boolean getCapJrnEmptySensor() throws JposException;
+ public boolean getCapJrnNearEndSensor() throws JposException;
+ public boolean getCapJrnPresent() throws JposException;
+ public boolean getCapNonFiscalMode() throws JposException;
+ public boolean getCapOrderAdjustmentFirst() throws JposException;
+ public boolean getCapPercentAdjustment() throws JposException;
+ public boolean getCapPositiveAdjustment() throws JposException;
+ public boolean getCapPowerLossReport() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapPredefinedPaymentLines() throws JposException;
+ public boolean getCapReceiptNotPaid() throws JposException;
+ public boolean getCapRecEmptySensor() throws JposException;
+ public boolean getCapRecNearEndSensor() throws JposException;
+ public boolean getCapRecPresent() throws JposException;
+ public boolean getCapRemainingFiscalMemory() throws JposException;
+ public boolean getCapReservedWord() throws JposException;
+ public boolean getCapSetHeader() throws JposException;
+ public boolean getCapSetPOSID() throws JposException;
+ public boolean getCapSetStoreFiscalID() throws JposException;
+ public boolean getCapSetTrailer() throws JposException;
+ public boolean getCapSetVatTable() throws JposException;
+ public boolean getCapSlpEmptySensor() throws JposException;
+ public boolean getCapSlpFiscalDocument() throws JposException;
+ public boolean getCapSlpFullSlip() throws JposException;
+ public boolean getCapSlpNearEndSensor() throws JposException;
+ public boolean getCapSlpPresent() throws JposException;
+ public boolean getCapSlpValidation() throws JposException;
+ public boolean getCapSubAmountAdjustment() throws JposException;
+ public boolean getCapSubPercentAdjustment() throws JposException;
+ public boolean getCapSubtotal() throws JposException;
+ public boolean getCapTrainingMode() throws JposException;
+ public boolean getCapValidateJournal() throws JposException;
+ public boolean getCapXReport() throws JposException;
+
+ // Properties
+ public int getAmountDecimalPlace() throws JposException;
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public boolean getCheckTotal() throws JposException;
+ public void setCheckTotal(boolean checkTotal) throws JposException;
+ public int getCountryCode() throws JposException;
+ public boolean getCoverOpen() throws JposException;
+ public boolean getDayOpened() throws JposException;
+ public int getDescriptionLength() throws JposException;
+ public boolean getDuplicateReceipt() throws JposException;
+ public void setDuplicateReceipt(boolean duplicateReceipt) throws JposException;
+ public int getErrorLevel() throws JposException;
+ public int getErrorOutID() throws JposException;
+ public int getErrorState() throws JposException;
+ public int getErrorStation() throws JposException;
+ public String getErrorString() throws JposException;
+ public boolean getFlagWhenIdle() throws JposException;
+ public void setFlagWhenIdle(boolean flagWhenIdle) throws JposException;
+ public boolean getJrnEmpty() throws JposException;
+ public boolean getJrnNearEnd() throws JposException;
+ public int getMessageLength() throws JposException;
+ public int getNumHeaderLines() throws JposException;
+ public int getNumTrailerLines() throws JposException;
+ public int getNumVatRates() throws JposException;
+ public int getOutputID() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public String getPredefinedPaymentLines() throws JposException;
+ public int getPrinterState() throws JposException;
+ public int getQuantityDecimalPlaces() throws JposException;
+ public int getQuantityLength() throws JposException;
+ public boolean getRecEmpty() throws JposException;
+ public boolean getRecNearEnd() throws JposException;
+ public int getRemainingFiscalMemory() throws JposException;
+ public String getReservedWord() throws JposException;
+ public boolean getSlpEmpty() throws JposException;
+ public boolean getSlpNearEnd() throws JposException;
+ public int getSlipSelection() throws JposException;
+ public void setSlipSelection(int slipSelection) throws JposException;
+ public boolean getTrainingModeActive() throws JposException;
+
+ // Methods
+ public void beginFiscalDocument(int documentAmount)
+ throws JposException;
+ public void beginFiscalReceipt(boolean printHeader)
+ throws JposException;
+ public void beginFixedOutput(int station, int documentType)
+ throws JposException;
+ public void beginInsertion(int timeout) throws JposException;
+ public void beginItemList(int vatID) throws JposException;
+ public void beginNonFiscal() throws JposException;
+ public void beginRemoval(int timeout) throws JposException;
+ public void beginTraining() throws JposException;
+ public void clearError() throws JposException;
+ public void clearOutput() throws JposException;
+ public void endFiscalDocument() throws JposException;
+ public void endFiscalReceipt(boolean printHeader) throws JposException;
+ public void endFixedOutput() throws JposException;
+ public void endInsertion() throws JposException;
+ public void endItemList() throws JposException;
+ public void endNonFiscal() throws JposException;
+ public void endRemoval() throws JposException;
+ public void endTraining() throws JposException;
+ public void getData(int dataItem, int[] optArgs, String[] data)
+ throws JposException;
+ public void getDate(String[] Date) throws JposException;
+ public void getTotalizer(int vatID, int optArgs, String[] data)
+ throws JposException;
+ public void getVatEntry(int vatID, int optArgs, int[] vatRate)
+ throws JposException;
+ public void printDuplicateReceipt() throws JposException;
+ public void printFiscalDocumentLine(String documentLine)
+ throws JposException;
+ public void printFixedOutput(int documentType, int lineNumber,
+ String data) throws JposException;
+ public void printNormal(int station, String data) throws JposException;
+ public void printPeriodicTotalsReport(String date1, String date2)
+ throws JposException;
+ public void printPowerLossReport() throws JposException;
+ public void printRecItem(String description, long price, int quantity,
+ int vatInfo, long unitPrice, String unitName)
+ throws JposException;
+ public void printRecItemAdjustment(int adjustmentType,
+ String description, long amount, int vatInfo)
+ throws JposException;
+ public void printRecMessage(String message) throws JposException;
+ public void printRecNotPaid(String description, long amount)
+ throws JposException;
+ public void printRecRefund(String description, long amount, int vatInfo)
+ throws JposException;
+ public void printRecSubtotal(long amount) throws JposException;
+ public void printRecSubtotalAdjustment(int adjustmentType,
+ String description, long amount) throws JposException;
+ public void printRecTotal(long total, long payment, String description)
+ throws JposException;
+ public void printRecVoid(String description) throws JposException;
+ public void printRecVoidItem(String description, long amount,
+ int quantity, int adjustmentType, long adjustment,
+ int vatInfo) throws JposException;
+ public void printReport(int reportType, String startNum, String endNum)
+ throws JposException;
+ public void printXReport() throws JposException;
+ public void printZReport() throws JposException;
+ public void resetPrinter() throws JposException;
+ public void setDate(String date) throws JposException;
+ public void setHeaderLine(int lineNumber, String text,
+ boolean doubleWidth) throws JposException;
+ public void setPOSID(String POSID, String cashierID)
+ throws JposException;
+ public void setStoreFiscalID(String ID) throws JposException;
+ public void setTrailerLine(int lineNumber, String text,
+ boolean doubleWidth) throws JposException;
+ public void setVatTable() throws JposException;
+ public void setVatValue(int vatID, String vatValue)
+ throws JposException;
+ public void verifyItem(String itemName, int vatID) throws JposException;
+
+ // Event listener methods
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addErrorListener(ErrorListener l);
+ public void removeErrorListener(ErrorListener l);
+ public void addOutputCompleteListener(OutputCompleteListener l);
+ public void removeOutputCompleteListener(OutputCompleteListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl14.java b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl14.java
new file mode 100644
index 0000000..a4c78d3
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterControl14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface FiscalPrinterControl14 extends FiscalPrinterControl13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl15.java b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl15.java
new file mode 100644
index 0000000..c5e43f4
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl15.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterControl15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 00-04-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface FiscalPrinterControl15 extends FiscalPrinterControl14
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl16.java b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl16.java
new file mode 100644
index 0000000..11c9452
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl16.java
@@ -0,0 +1,92 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterControl16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-04-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface FiscalPrinterControl16 extends FiscalPrinterControl15
+{
+ // Capabilities
+ public boolean getCapAdditionalHeader() throws JposException;
+ public boolean getCapAdditionalTrailer() throws JposException;
+ public boolean getCapChangeDue() throws JposException;
+ public boolean getCapEmptyReceiptIsVoidable() throws JposException;
+ public boolean getCapFiscalReceiptStation() throws JposException;
+ public boolean getCapFiscalReceiptType() throws JposException;
+ public boolean getCapMultiContractor() throws JposException;
+ public boolean getCapOnlyVoidLastItem() throws JposException;
+ public boolean getCapPackageAdjustment() throws JposException;
+ public boolean getCapPostPreLine() throws JposException;
+ public boolean getCapSetCurrency() throws JposException;
+ public boolean getCapTotalizerType() throws JposException;
+
+ // Properties
+ public int getActualCurrency() throws JposException;
+ public String getAdditionalHeader() throws JposException;
+ public void setAdditionalHeader(String additionalHeader)
+ throws JposException;
+ public String getAdditionalTrailer() throws JposException;
+ public void setAdditionalTrailer(String additionalTrailer)
+ throws JposException;
+ public String getChangeDue() throws JposException;
+ public void setChangeDue(String changeDue) throws JposException;
+ public int getContractorId() throws JposException;
+ public void setContractorId(int contractorId) throws JposException;
+ public int getDateType() throws JposException;
+ public void setDateType(int dateType) throws JposException;
+ public int getFiscalReceiptStation() throws JposException;
+ public void setFiscalReceiptStation(int fiscalReceiptStation)
+ throws JposException;
+ public int getFiscalReceiptType() throws JposException;
+ public void setFiscalReceiptType(int fiscalReceiptType)
+ throws JposException;
+ public int getMessageType() throws JposException;
+ public void setMessageType(int messageType) throws JposException;
+ public String getPostLine() throws JposException;
+ public void setPostLine(String postLine) throws JposException;
+ public String getPreLine() throws JposException;
+ public void setPreLine(String preLine) throws JposException;
+ public int getTotalizerType() throws JposException;
+ public void setTotalizerType(int totalizerType) throws JposException;
+
+ // Methods
+ public void setCurrency(int newCurrency) throws JposException;
+ public void printRecCash(long amount) throws JposException;
+ public void printRecItemFuel(String description, long price,
+ int quantity, int vatInfo, long unitPrice,
+ String unitName, long specialTax, String specialTaxName)
+ throws JposException;
+ public void printRecItemFuelVoid(String description, long price,
+ int vatInfo, long specialTax) throws JposException;
+ public void printRecPackageAdjustment(int adjustmentType,
+ String description, String vatAdjustment)
+ throws JposException;
+ public void printRecPackageAdjustVoid(int adjustmentType,
+ String vatAdjustment) throws JposException;
+ public void printRecRefundVoid(String description, long amount,
+ int vatInfo) throws JposException;
+ public void printRecSubtotalAdjustVoid(int adjustmentType, long amount)
+ throws JposException;
+ public void printRecTaxID(String taxID) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl17.java
new file mode 100644
index 0000000..bcd77b9
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl17.java
@@ -0,0 +1,42 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterControl17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+// 16-Apr-2003 Release 1.7.2: Added getAmountDecimalPlaces to BS
+// correct a spelling error present since release
+// 1.3.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface FiscalPrinterControl17 extends FiscalPrinterControl16
+{
+ // The AmountDecimalPlaces property was incorrectly spelled
+ // AmountDecimalPlace since version 1.3. In version 1.7.2 and later,
+ // the correct spelling is supported. The old version is left for
+ // Application and Device Service compatibility. The implementations
+ // of getAmountDecimalPlaces and getAmountDecimalPlace should be
+ // identical.
+
+ // Properties
+ public int getAmountDecimalPlaces() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl18.java
new file mode 100644
index 0000000..4312838
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl18.java
@@ -0,0 +1,44 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+// 16-Apr-2003 Release 1.8.2: Added getAmountDecimalPlaces to BS
+// correct a spelling error present since release
+// 1.3.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface FiscalPrinterControl18 extends FiscalPrinterControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl19.java
new file mode 100644
index 0000000..9948cb2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/FiscalPrinterControl19.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface FiscalPrinterControl19 extends FiscalPrinterControl18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/Gate.java b/org.eclipse.osbp.fork.jpos/src/jpos/Gate.java
new file mode 100644
index 0000000..5703982
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/Gate.java
@@ -0,0 +1,681 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// Gate.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class Gate
+ extends BaseJposControl
+ implements GateControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected GateService112 service112;
+ protected GateService113 service113;
+ protected GateService114 service114;
+ protected Vector directIOListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public Gate()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS Gate Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ directIOListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapGateStatus()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapGateStatus();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRealTimeData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapRealTimeData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public int getGetStatus()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getGetStatus();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void openGate()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.openGate();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void waitForGateClose(int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.waitForGateClose(timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new GateCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (GateService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement GateService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (GateService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement GateService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (GateService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement GateService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class GateCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)Gate.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(Gate.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(Gate.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/Gate.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/Gate.manifest.stub
new file mode 100644
index 0000000..d82a34d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/Gate.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/Gate.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/GateBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/GateBeanInfo.java
new file mode 100644
index 0000000..760d81f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/GateBeanInfo.java
@@ -0,0 +1,91 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// GateBeanInfo.java - Bean information for the JavaPOS Gate
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class GateBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.Gate.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.Gate.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapGateStatus"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapRealTimeData"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateFirmware"),
+ makeProperty("CapUpdateStatistics"),
+
+ // Properties
+ makeProperty("GetStatus"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.Gate.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("DirectIO"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/GateConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/GateConst.java
new file mode 100644
index 0000000..5a7c388
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/GateConst.java
@@ -0,0 +1,46 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// GateConst
+//
+// Gate constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface GateConst
+{
+ /////////////////////////////////////////////////////////////////////
+ // "GateStatus" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int GATE_GS_CLOSED = 1;
+ public static final int GATE_GS_OPEN = 2;
+ public static final int GATE_GS_BLOCKED = 3;
+ public static final int GATE_GS_MALFUNCTION = 4;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "StatusUpdateEvent" Event: "Data" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int GATE_SUE_CLOSED = 11;
+ public static final int GATE_SUE_OPEN = 12;
+ public static final int GATE_SUE_BLOCKED = 13;
+ public static final int GATE_SUE_MALFUNCTION = 14;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/GateControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/GateControl112.java
new file mode 100644
index 0000000..78540c3
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/GateControl112.java
@@ -0,0 +1,68 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// GateControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Gate for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface GateControl112 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapGateStatus() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapRealTimeData() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Properties
+ public int getGetStatus() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void openGate()
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+ public void waitForGateClose(int timeout)
+ throws JposException;
+
+ // Event listener methods
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/GateControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/GateControl113.java
new file mode 100644
index 0000000..2e7d069
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/GateControl113.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// GateControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Gate for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface GateControl113 extends GateControl112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/GateControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/GateControl114.java
new file mode 100644
index 0000000..e7356f0
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/GateControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// GateControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Gate for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface GateControl114 extends GateControl113
+{
+ // Nothing new added for release 1.14
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/HardTotals.java b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotals.java
new file mode 100644
index 0000000..03e7dac
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotals.java
@@ -0,0 +1,1367 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotals.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class HardTotals
+ extends BaseJposControl
+ implements HardTotalsControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected HardTotalsService12 service12;
+ protected HardTotalsService13 service13;
+ protected HardTotalsService14 service14;
+ protected HardTotalsService15 service15;
+ protected HardTotalsService16 service16;
+ protected HardTotalsService17 service17;
+ protected HardTotalsService18 service18;
+ protected HardTotalsService19 service19;
+ protected HardTotalsService110 service110;
+ protected HardTotalsService111 service111;
+ protected HardTotalsService112 service112;
+ protected HardTotalsService113 service113;
+ protected HardTotalsService114 service114;
+ protected Vector directIOListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public HardTotals()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS HardTotals Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service12 = null;
+ //service13 = null;
+ //service14 = null;
+ //service15 = null;
+ //service16 = null;
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ directIOListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapErrorDetection()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapErrorDetection();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSingleFile()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapSingleFile();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapTransactions()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapTransactions();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public int getFreeData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getFreeData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getNumberOfFiles()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getNumberOfFiles();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTotalsSize()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getTotalsSize();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getTransactionInProgress()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getTransactionInProgress();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void beginTrans()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.beginTrans();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void claimFile(int hTotalsFile, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.claimFile(hTotalsFile, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void commitTrans()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.commitTrans();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void create(String fileName, int[] hTotalsFile, int size, boolean errorDetection)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.create(fileName, hTotalsFile, size, errorDetection);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void delete(String fileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.delete(fileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void find(String fileName, int[] hTotalsFile, int[] size)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.find(fileName, hTotalsFile, size);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void findByIndex(int index, String[] fileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.findByIndex(index, fileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void read(int hTotalsFile, byte[] data, int offset, int count)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.read(hTotalsFile, data, offset, count);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void recalculateValidationData(int hTotalsFile)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.recalculateValidationData(hTotalsFile);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void releaseFile(int hTotalsFile)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.releaseFile(hTotalsFile);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void rename(int hTotalsFile, String fileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.rename(hTotalsFile, fileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void rollback()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.rollback();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAll(int hTotalsFile, byte value)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setAll(hTotalsFile, value);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void validateData(int hTotalsFile)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.validateData(hTotalsFile);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void write(int hTotalsFile, byte[] data, int offset, int count)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.write(hTotalsFile, data, offset, count);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new HardTotalsCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service12 = null;
+ service13 = null;
+ service14 = null;
+ service15 = null;
+ service16 = null;
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion12)
+ {
+ try
+ {
+ service12 = (HardTotalsService12)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement HardTotalsService12 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion13)
+ {
+ try
+ {
+ service13 = (HardTotalsService13)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement HardTotalsService13 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion14)
+ {
+ try
+ {
+ service14 = (HardTotalsService14)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement HardTotalsService14 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion15)
+ {
+ try
+ {
+ service15 = (HardTotalsService15)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement HardTotalsService15 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion16)
+ {
+ try
+ {
+ service16 = (HardTotalsService16)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement HardTotalsService16 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (HardTotalsService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement HardTotalsService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (HardTotalsService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement HardTotalsService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (HardTotalsService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement HardTotalsService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (HardTotalsService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement HardTotalsService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (HardTotalsService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement HardTotalsService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (HardTotalsService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement HardTotalsService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (HardTotalsService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement HardTotalsService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (HardTotalsService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement HardTotalsService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class HardTotalsCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)HardTotals.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(HardTotals.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(HardTotals.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/HardTotals.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotals.manifest.stub
new file mode 100644
index 0000000..912530f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotals.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/HardTotals.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsBeanInfo.java
new file mode 100644
index 0000000..af2e77b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsBeanInfo.java
@@ -0,0 +1,95 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// HardTotalsBeanInfo.java - Bean information for the JavaPOS HardTotals
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class HardTotalsBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.HardTotals.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.HardTotals.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapErrorDetection"),
+ makeProperty("CapSingleFile"),
+ makeProperty("CapTransactions"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapUpdateFirmware"),
+
+ // Properties
+ makeProperty("FreeData"),
+ makeProperty("NumberOfFiles"),
+ makeProperty("TotalsSize"),
+ makeProperty("TransactionInProgress"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.HardTotals.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("DirectIO"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsConst.java
new file mode 100644
index 0000000..02e05d0
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsConst.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsConst
+//
+// Hard Totals constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface HardTotalsConst
+{
+ //###################################################################
+ //#### Hard Totals Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // "ResultCodeExtended" Property Constants for Hard Totals
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_ETOT_NOROOM = 1 + JposConst.JPOSERREXT; // Create, Write
+ public static final int JPOS_ETOT_VALIDATION = 2 + JposConst.JPOSERREXT; // Read, Write
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl110.java
new file mode 100644
index 0000000..6408ab3
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl110.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface HardTotalsControl110 extends HardTotalsControl19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl111.java
new file mode 100644
index 0000000..9ce54ef
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface HardTotalsControl111 extends HardTotalsControl110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl112.java
new file mode 100644
index 0000000..8551bcb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface HardTotalsControl112 extends HardTotalsControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl113.java
new file mode 100644
index 0000000..e793589
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface HardTotalsControl113 extends HardTotalsControl112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl114.java
new file mode 100644
index 0000000..4f4dec4
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Hard Totals for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface HardTotalsControl114 extends HardTotalsControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl12.java b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl12.java
new file mode 100644
index 0000000..51a724a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl12.java
@@ -0,0 +1,69 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsControl12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to Hard Totals for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface HardTotalsControl12 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapErrorDetection() throws JposException;
+ public boolean getCapSingleFile() throws JposException;
+ public boolean getCapTransactions() throws JposException;
+
+ // Properties
+ public int getFreeData() throws JposException;
+ public int getNumberOfFiles() throws JposException;
+ public int getTotalsSize() throws JposException;
+ public boolean getTransactionInProgress() throws JposException;
+
+ // Methods
+ public void beginTrans() throws JposException;
+ public void claimFile(int hTotalsFile, int timeout)
+ throws JposException;
+ public void commitTrans() throws JposException;
+ public void create(String fileName, int[] hTotalsFile, int size,
+ boolean errorDetection) throws JposException;
+ public void delete(String fileName) throws JposException;
+ public void find(String fileName, int[] hTotalsFile, int[] size)
+ throws JposException;
+ public void findByIndex(int index, String[] fileName)
+ throws JposException;
+ public void read(int hTotalsFile, byte[] data, int offset,
+ int count) throws JposException;
+ public void recalculateValidationData(int hTotalsFile)
+ throws JposException;
+ public void releaseFile(int hTotalsFile) throws JposException;
+ public void rename(int hTotalsFile, String fileName)
+ throws JposException;
+ public void rollback() throws JposException;
+ public void setAll(int hTotalsFile, byte value) throws JposException;
+ public void validateData(int hTotalsFile) throws JposException;
+ public void write(int hTotalsFile, byte[] data, int offset, int count)
+ throws JposException;
+
+ // Event listener methods
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl13.java b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl13.java
new file mode 100644
index 0000000..1fc8755
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl13.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsControl13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface HardTotalsControl13 extends HardTotalsControl12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+
+ // Event listener methods
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl14.java b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl14.java
new file mode 100644
index 0000000..f0c2a65
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsControl14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface HardTotalsControl14 extends HardTotalsControl13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl15.java b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl15.java
new file mode 100644
index 0000000..ef8ab18
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl15.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsControl15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 00-04-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface HardTotalsControl15 extends HardTotalsControl14
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl16.java b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl16.java
new file mode 100644
index 0000000..92e9216
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl16.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsControl16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-04-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface HardTotalsControl16 extends HardTotalsControl15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl17.java
new file mode 100644
index 0000000..42536f6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl17.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsControl17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface HardTotalsControl17 extends HardTotalsControl16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl18.java
new file mode 100644
index 0000000..398a24b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl18.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface HardTotalsControl18 extends HardTotalsControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl19.java
new file mode 100644
index 0000000..b4f11af
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/HardTotalsControl19.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface HardTotalsControl19 extends HardTotalsControl18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ImageScanner.java b/org.eclipse.osbp.fork.jpos/src/jpos/ImageScanner.java
new file mode 100644
index 0000000..7ea6ae8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ImageScanner.java
@@ -0,0 +1,1500 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ImageScanner.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class ImageScanner
+ extends BaseJposControl
+ implements ImageScannerControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected ImageScannerService111 service111;
+ protected ImageScannerService112 service112;
+ protected ImageScannerService113 service113;
+ protected ImageScannerService114 service114;
+ protected Vector dataListeners;
+ protected Vector directIOListeners;
+ protected Vector errorListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public ImageScanner()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS ImageScanner Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ dataListeners = new Vector();
+ directIOListeners = new Vector();
+ errorListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapAim()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapAim();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapDecodeData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapDecodeData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapHostTriggered()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapHostTriggered();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapIlluminate()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapIlluminate();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapImageData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapImageData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapImageQuality()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapImageQuality();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapVideoData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapVideoData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public boolean getAimMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getAimMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAimMode(boolean aimMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setAimMode(aimMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getAutoDisable()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getAutoDisable();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAutoDisable(boolean autoDisable)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setAutoDisable(autoDisable);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getBitsPerPixel()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getBitsPerPixel();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDataEventEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getDataEventEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setDataEventEnabled(dataEventEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getFrameData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getFrameData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getFrameType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getFrameType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getIlluminateMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getIlluminateMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setIlluminateMode(boolean illuminateMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setIlluminateMode(illuminateMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getImageHeight()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getImageHeight();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getImageLength()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getImageLength();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getImageMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getImageMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setImageMode(int imageMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setImageMode(imageMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getImageQuality()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getImageQuality();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setImageQuality(int imageQuality)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setImageQuality(imageQuality);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getImageType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getImageType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getImageWidth()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getImageWidth();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getVideoCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getVideoCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setVideoCount(int videoCount)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setVideoCount(videoCount);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getVideoRate()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getVideoRate();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setVideoRate(int videoRate)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.setVideoRate(videoRate);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void clearInput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.clearInput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInputProperties()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.clearInputProperties();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void startSession()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.startSession();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void stopSession()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.stopSession();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service111.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new ImageScannerCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (ImageScannerService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ImageScannerService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (ImageScannerService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ImageScannerService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (ImageScannerService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ImageScannerService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (ImageScannerService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ImageScannerService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.addElement(l);
+ }
+ }
+
+ public void removeDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.removeElement(l);
+ }
+ }
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.addElement(l);
+ }
+ }
+
+ public void removeErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class ImageScannerCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)ImageScanner.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ synchronized(ImageScanner.this.dataListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < dataListeners.size(); x++)
+ {
+ ((DataListener)dataListeners.elementAt(x)).dataOccurred(e);
+ }
+ }
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(ImageScanner.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ synchronized(ImageScanner.this.errorListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < errorListeners.size(); x++)
+ {
+ ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e);
+ }
+ }
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(ImageScanner.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ImageScanner.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/ImageScanner.manifest.stub
new file mode 100644
index 0000000..8397d48
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ImageScanner.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/ImageScanner.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ImageScannerBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/ImageScannerBeanInfo.java
new file mode 100644
index 0000000..054b831
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ImageScannerBeanInfo.java
@@ -0,0 +1,114 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// ImageScannerBeanInfo.java - Bean information for the JavaPOS ImageScanner
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class ImageScannerBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.ImageScanner.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.ImageScanner.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapAim"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapDecodeData"),
+ makeProperty("CapHostTriggered"),
+ makeProperty("CapIlluminate"),
+ makeProperty("CapImageData"),
+ makeProperty("CapImageQuality"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateFirmware"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapVideoData"),
+
+ // Properties
+ makeProperty("AimMode"),
+ makeProperty("AutoDisable"),
+ makeProperty("BitsPerPixel"),
+ makeProperty("DataCount"),
+ makeProperty("DataEventEnabled"),
+ makeProperty("FrameData"),
+ makeProperty("FrameType"),
+ makeProperty("IlluminateMode"),
+ makeProperty("ImageHeight"),
+ makeProperty("ImageLength"),
+ makeProperty("ImageMode"),
+ makeProperty("ImageQuality"),
+ makeProperty("ImageType"),
+ makeProperty("ImageWidth"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("VideoCount"),
+ makeProperty("VideoRate"),
+
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.ImageScanner.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("Data"),
+ makeEvent("DirectIO"),
+ makeEvent("Error"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ImageScannerConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/ImageScannerConst.java
new file mode 100644
index 0000000..d598b33
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ImageScannerConst.java
@@ -0,0 +1,70 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ImageScannerConst
+//
+// ImageScanner constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface ImageScannerConst
+{
+ //###################################################################
+ //#### ImageScanner Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // "FrameType" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int IMG_FRAME_STILL = 1;
+ public static final int IMG_FRAME_VIDEO = 2;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ImageMode" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int IMG_ALL = 0xFF;
+ public static final int IMG_DECODE_ONLY = 0x01;
+ public static final int IMG_STILL_ONLY = 0x02;
+ public static final int IMG_STILL_DECODE = 0x03;
+ public static final int IMG_VIDEO_DECODE = 0x05;
+ public static final int IMG_VIDEO_STILL = 0x06;
+
+
+/////////////////////////////////////////////////////////////////////
+// "ImageQuality" Property Constants
+/////////////////////////////////////////////////////////////////////
+
+ public static final int IMG_QUAL_LOW = 0x01;
+ public static final int IMG_QUAL_MED = 0x02;
+ public static final int IMG_QUAL_HIGH = 0x03;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ImageType" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int IMG_TYP_BMP = 1;
+ public static final int IMG_TYP_JPEG = 2;
+ public static final int IMG_TYP_GIF = 3;
+ public static final int IMG_TYP_PNG = 4;
+ public static final int IMG_TYP_TIFF = 5;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ImageScannerControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/ImageScannerControl111.java
new file mode 100644
index 0000000..7b78282
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ImageScannerControl111.java
@@ -0,0 +1,106 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ImageScannerControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Image Scanner for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ImageScannerControl111 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapAim() throws JposException;
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapDecodeData() throws JposException;
+ public boolean getCapHostTriggered() throws JposException;
+ public boolean getCapIlluminate() throws JposException;
+ public boolean getCapImageData() throws JposException;
+ public boolean getCapImageQuality() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+ public boolean getCapVideoData() throws JposException;
+
+
+ // Properties
+ public boolean getAimMode() throws JposException;
+ public void setAimMode(boolean aimMode) throws JposException;
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public int getBitsPerPixel() throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public byte[] getFrameData() throws JposException;
+ public int getFrameType() throws JposException;
+ public boolean getIlluminateMode() throws JposException;
+ public void setIlluminateMode(boolean illuminateMode) throws JposException;
+ public int getImageHeight() throws JposException;
+ public int getImageLength() throws JposException;
+ public int getImageMode() throws JposException;
+ public void setImageMode(int imageMode) throws JposException;
+ public int getImageQuality() throws JposException;
+ public void setImageQuality(int imageQuality) throws JposException;
+ public int getImageType() throws JposException;
+ public int getImageWidth() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getVideoCount() throws JposException;
+ public void setVideoCount(int videoCount) throws JposException;
+ public int getVideoRate() throws JposException;
+ public void setVideoRate(int videoRate) throws JposException;
+
+ // Methods
+ public void clearInput()
+ throws JposException;
+ public void clearInputProperties()
+ throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void startSession()
+ throws JposException;
+ public void stopSession()
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+
+ // Event listener methods
+ public void addDataListener(DataListener l);
+ public void removeDataListener(DataListener l);
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addErrorListener(ErrorListener l);
+ public void removeErrorListener(ErrorListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ImageScannerControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/ImageScannerControl112.java
new file mode 100644
index 0000000..3e38118
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ImageScannerControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ImageScannerControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Image Scanner for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ImageScannerControl112 extends ImageScannerControl111
+{
+ // Nothing new added for release 1.12
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ImageScannerControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/ImageScannerControl113.java
new file mode 100644
index 0000000..963dfa9
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ImageScannerControl113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ImageScannerControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Image Scanner for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ImageScannerControl113 extends ImageScannerControl112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ImageScannerControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/ImageScannerControl114.java
new file mode 100644
index 0000000..06feba9
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ImageScannerControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ImageScannerControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Image Scanner for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ImageScannerControl114 extends ImageScannerControl113
+{
+ // Nothing new added for release 1.14
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ItemDispenser.java b/org.eclipse.osbp.fork.jpos/src/jpos/ItemDispenser.java
new file mode 100644
index 0000000..2fa4cba
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ItemDispenser.java
@@ -0,0 +1,781 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ItemDispenser.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class ItemDispenser
+ extends BaseJposControl
+ implements ItemDispenserControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected ItemDispenserService112 service112;
+ protected ItemDispenserService113 service113;
+ protected ItemDispenserService114 service114;
+ protected Vector directIOListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public ItemDispenser()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS ItemDispenser Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ directIOListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapEmptySensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapEmptySensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapIndividualSlotStatus()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapIndividualSlotStatus();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapJamSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapJamSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapNearEmptySensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapNearEmptySensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public int getDispenserStatus()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getDispenserStatus();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMaxSlots()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getMaxSlots();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void adjustItemCount(int itemCount, int slotNumber)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.adjustItemCount(itemCount, slotNumber);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void dispenseItem(int[] numItem, int slotNumber)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.dispenseItem(numItem, slotNumber);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void readItemCount(int[] itemCount, int slotNumber)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.readItemCount(itemCount, slotNumber);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new ItemDispenserCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (ItemDispenserService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ItemDispenserService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (ItemDispenserService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ItemDispenserService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (ItemDispenserService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ItemDispenserService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class ItemDispenserCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)ItemDispenser.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(ItemDispenser.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(ItemDispenser.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ItemDispenser.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/ItemDispenser.manifest.stub
new file mode 100644
index 0000000..b00bcd2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ItemDispenser.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/ItemDispenser.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ItemDispenserBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/ItemDispenserBeanInfo.java
new file mode 100644
index 0000000..5c4fbd9
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ItemDispenserBeanInfo.java
@@ -0,0 +1,94 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// ItemDispenserBeanInfo.java - Bean information for the JavaPOS ItemDispenser
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class ItemDispenserBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.ItemDispenser.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.ItemDispenser.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapEmptySensor"),
+ makeProperty("CapIndividualSlotStatus"),
+ makeProperty("CapJamSensor"),
+ makeProperty("CapNearEmptySensor"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateFirmware"),
+ makeProperty("CapUpdateStatistics"),
+
+ // Properties
+ makeProperty("DispenserStatus"),
+ makeProperty("MaxSlots"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.ItemDispenser.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("DirectIO"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ItemDispenserConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/ItemDispenserConst.java
new file mode 100644
index 0000000..bc0eb97
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ItemDispenserConst.java
@@ -0,0 +1,46 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ItemDispenserConst
+//
+// ItemDispenser constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface ItemDispenserConst
+{
+ /////////////////////////////////////////////////////////////////////
+ // "DispenserStatus" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int ITEM_DS_OK = 1;
+ public static final int ITEM_DS_EMPTY = 2;
+ public static final int ITEM_DS_NEAREMPTY = 3;
+ public static final int ITEM_DS_JAM = 4;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "StatusUpdateEvent" Event: "Data" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int ITEM_SUE_OK = 11;
+ public static final int ITEM_SUE_EMPTY = 12;
+ public static final int ITEM_SUE_NEAREMPTY = 13;
+ public static final int ITEM_SUE_JAM = 14;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ItemDispenserControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/ItemDispenserControl112.java
new file mode 100644
index 0000000..f09dc7e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ItemDispenserControl112.java
@@ -0,0 +1,77 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ItemDispenserControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Item Dispenser for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ItemDispenserControl112 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapEmptySensor() throws JposException;
+ public boolean getCapIndividualSlotStatus() throws JposException;
+ public boolean getCapJamSensor() throws JposException;
+ public boolean getCapNearEmptySensor() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Properties
+ public int getDispenserStatus() throws JposException;
+ public int getMaxSlots() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+
+ // Methods
+ public void adjustItemCount(int itemCount,
+ int slotNumber)
+ throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void dispenseItem(int[] numItem,
+ int slotNumber)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void readItemCount(int[] itemCount,
+ int slotNumber)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+
+
+ // Event listener methods
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ItemDispenserControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/ItemDispenserControl113.java
new file mode 100644
index 0000000..c4c4148
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ItemDispenserControl113.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ItemDispenserControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Item Dispenser for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ItemDispenserControl113 extends ItemDispenserControl112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ItemDispenserControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/ItemDispenserControl114.java
new file mode 100644
index 0000000..4c0708c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ItemDispenserControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ItemDispenserControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Item Dispenser for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ItemDispenserControl114 extends ItemDispenserControl113
+{
+ // Nothing new added for release 1.14
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/JposConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/JposConst.java
new file mode 100644
index 0000000..8fcd16d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/JposConst.java
@@ -0,0 +1,170 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// JposConst
+//
+// General constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 1998-Feb-18 JavaPOS Release 1.2 BS
+// 1998-Apr-20 JavaPOS Release 1.3 BS
+// Add CapPowerReporting, PowerState, and PowerNotify values.
+// Add power reporting values for StatusUpdateEvent.
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+// Added the JPOS_E_DEPRECATED ErrorCode value
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface JposConst
+{
+ //###################################################################
+ //#### General JavaPOS Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // "State" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_S_CLOSED = 1;
+ public static final int JPOS_S_IDLE = 2;
+ public static final int JPOS_S_BUSY = 3;
+ public static final int JPOS_S_ERROR = 4;
+
+ /////////////////////////////////////////////////////////////////////
+ // "ErrorCode" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOSERR = 100;
+ public static final int JPOSERREXT = 200;
+
+ public static final int JPOS_SUCCESS = 0;
+ public static final int JPOS_E_CLOSED = 1 + JPOSERR;
+ public static final int JPOS_E_CLAIMED = 2 + JPOSERR;
+ public static final int JPOS_E_NOTCLAIMED = 3 + JPOSERR;
+ public static final int JPOS_E_NOSERVICE = 4 + JPOSERR;
+ public static final int JPOS_E_DISABLED = 5 + JPOSERR;
+ public static final int JPOS_E_ILLEGAL = 6 + JPOSERR;
+ public static final int JPOS_E_NOHARDWARE = 7 + JPOSERR;
+ public static final int JPOS_E_OFFLINE = 8 + JPOSERR;
+ public static final int JPOS_E_NOEXIST = 9 + JPOSERR;
+ public static final int JPOS_E_EXISTS = 10 + JPOSERR;
+ public static final int JPOS_E_FAILURE = 11 + JPOSERR;
+ public static final int JPOS_E_TIMEOUT = 12 + JPOSERR;
+ public static final int JPOS_E_BUSY = 13 + JPOSERR;
+ public static final int JPOS_E_EXTENDED = 14 + JPOSERR;
+ public static final int JPOS_E_DEPRECATED = 15 + JPOSERR; // 1.11
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ErrorCodeExtended" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_ESTATS_ERROR = 80 + JPOSERREXT;
+ public static final int JPOS_EFIRMWARE_BAD_FILE = 81 + JPOSERREXT;
+ public static final int JPOS_ESTATS_DEPENDENCY = 82 + JPOSERREXT;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // OPOS "BinaryConversion" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_BC_NONE = 0;
+ public static final int JPOS_BC_NIBBLE = 1;
+ public static final int JPOS_BC_DECIMAL = 2;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CheckHealth" Method: "Level" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_CH_INTERNAL = 1;
+ public static final int JPOS_CH_EXTERNAL = 2;
+ public static final int JPOS_CH_INTERACTIVE = 3;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapPowerReporting", "PowerState", "PowerNotify" Property
+ // Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_PR_NONE = 0;
+ public static final int JPOS_PR_STANDARD = 1;
+ public static final int JPOS_PR_ADVANCED = 2;
+
+ public static final int JPOS_PN_DISABLED = 0;
+ public static final int JPOS_PN_ENABLED = 1;
+
+ public static final int JPOS_PS_UNKNOWN = 2000;
+ public static final int JPOS_PS_ONLINE = 2001;
+ public static final int JPOS_PS_OFF = 2002;
+ public static final int JPOS_PS_OFFLINE = 2003;
+ public static final int JPOS_PS_OFF_OFFLINE = 2004;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "compareFirmwareVersion" Method: "result" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_CFV_FIRMWARE_OLDER = 1;
+ public static final int JPOS_CFV_FIRMWARE_SAME = 2;
+ public static final int JPOS_CFV_FIRMWARE_NEWER = 3;
+ public static final int JPOS_CFV_FIRMWARE_DIFFERENT = 4;
+ public static final int JPOS_CFV_FIRMWARE_UNKNOWN = 5;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ErrorEvent" Event: "ErrorLocus" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_EL_OUTPUT = 1;
+ public static final int JPOS_EL_INPUT = 2;
+ public static final int JPOS_EL_INPUT_DATA = 3;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ErrorEvent" Event: "ErrorResponse" Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_ER_RETRY = 11;
+ public static final int JPOS_ER_CLEAR = 12;
+ public static final int JPOS_ER_CONTINUEINPUT= 13;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "StatusUpdateEvent" Event: Common "Status" Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_SUE_POWER_ONLINE = 2001;
+ public static final int JPOS_SUE_POWER_OFF = 2002;
+ public static final int JPOS_SUE_POWER_OFFLINE = 2003;
+ public static final int JPOS_SUE_POWER_OFF_OFFLINE = 2004;
+
+ public static final int JPOS_SUE_UF_PROGRESS = 2100;
+ public static final int JPOS_SUE_UF_COMPLETE = 2200; // JPOS_SUE_UF_PROGRESS + 100
+ public static final int JPOS_SUE_UF_FAILED_DEV_OK = 2201;
+ public static final int JPOS_SUE_UF_FAILED_DEV_UNRECOVERABLE = 2202;
+ public static final int JPOS_SUE_UF_FAILED_DEV_NEEDS_FIRMWARE = 2203;
+ public static final int JPOS_SUE_UF_FAILED_DEV_UNKNOWN = 2204;
+ public static final int JPOS_SUE_UF_COMPLETE_DEV_NOT_RESTORED = 2205;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // General Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_FOREVER = -1;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/JposException.java b/org.eclipse.osbp.fork.jpos/src/jpos/JposException.java
new file mode 100644
index 0000000..502f709
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/JposException.java
@@ -0,0 +1,82 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// JposException
+//
+// Exception class used to report all JavaPOS errors.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public class JposException extends java.lang.Exception
+{
+ public JposException(int errorCode)
+ {
+ this(errorCode, 0, "" + errorCode, null);
+ }
+
+ public JposException(int errorCode, int errorCodeExtended)
+ {
+ this(errorCode, errorCodeExtended,
+ "" + errorCode + ", " + errorCodeExtended, null);
+ }
+
+ public JposException(int errorCode, String description)
+ {
+ this(errorCode, 0, description, null);
+ }
+
+ public JposException(int errorCode, int errorCodeExtended,
+ String description)
+ {
+ this(errorCode, errorCodeExtended, description, null);
+ }
+
+ public JposException(int errorCode, String description,
+ Exception origException)
+ {
+ this(errorCode, 0, description, origException);
+ }
+
+ public JposException(int errorCode, int errorCodeExtended,
+ String description, Exception origException)
+ {
+ super(description);
+ this.errorCode = errorCode;
+ this.errorCodeExtended = errorCodeExtended;
+ this.origException = origException;
+ }
+
+ public int getErrorCode()
+ {
+ return errorCode;
+ }
+
+ public int getErrorCodeExtended()
+ {
+ return errorCodeExtended;
+ }
+
+ public Exception getOrigException()
+ {
+ return origException;
+ }
+
+ protected int errorCode;
+ protected int errorCodeExtended;
+ private Exception origException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/JposStatisticsConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/JposStatisticsConst.java
new file mode 100644
index 0000000..c7ebefd
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/JposStatisticsConst.java
@@ -0,0 +1,108 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// JposStatisticsConst
+//
+// Statistic name constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Jul-14 JavaPOS Release 1.8.1 BS
+// New file to define constants for Device Statistic names.
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+// Added constants for new device classes.
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// Added constants for statistics new to Release 1.12.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface JposStatisticsConst
+{
+ public static final String JPOS_STAT_HoursPoweredCount = "HoursPoweredCount";
+ public static final String JPOS_STAT_CommunicationErrorCount = "CommunicationErrorCount";
+ public static final String JPOS_STAT_SuccessfulMatchCount = "SuccessfulMatchCount";
+ public static final String JPOS_STAT_UnsuccessfulMatchCount = "UnsuccessfulMatchCount";
+ public static final String JPOS_STAT_AverageFAR = "AverageFAR";
+ public static final String JPOS_STAT_AverageFRR = "AverageFRR";
+ public static final String JPOS_STAT_BumpCount = "BumpCount";
+ public static final String JPOS_STAT_DrawerGoodOpenCount = "DrawerGoodOpenCount";
+ public static final String JPOS_STAT_DrawerFailedOpenCount = "DrawerFailedOpenCount";
+ public static final String JPOS_STAT_ChecksScannedCount = "ChecksScannedCount";
+ public static final String JPOS_STAT_WriteCount = "WriteCount";
+ public static final String JPOS_STAT_FailedWriteCount = "FailedWriteCount";
+ public static final String JPOS_STAT_EraseCount = "EraseCount";
+ public static final String JPOS_STAT_MediumRemovedCount = "MediumRemovedCount";
+ public static final String JPOS_STAT_MediumSize = "MediumSize";
+ public static final String JPOS_STAT_MediumFreeSpace = "MediumFreeSpace";
+ public static final String JPOS_STAT_BarcodePrintedCount = "BarcodePrintedCount";
+ public static final String JPOS_STAT_FormInsertionCount = "FormInsertionCount";
+ public static final String JPOS_STAT_HomeErrorCount = "HomeErrorCount";
+ public static final String JPOS_STAT_JournalCharacterPrintedCount = "JournalCharacterPrintedCount";
+ public static final String JPOS_STAT_JournalLinePrintedCount = "JournalLinePrintedCount";
+ public static final String JPOS_STAT_MaximumTempReachedCount = "MaximumTempReachedCount";
+ public static final String JPOS_STAT_NVRAMWriteCount = "NVRAMWriteCount";
+ public static final String JPOS_STAT_PaperCutCount = "PaperCutCount";
+ public static final String JPOS_STAT_FailedPaperCutCount = "FailedPaperCutCount";
+ public static final String JPOS_STAT_PrinterFaultCount = "PrinterFaultCount";
+ public static final String JPOS_STAT_PrintSideChangeCount = "PrintSideChangeCount";
+ public static final String JPOS_STAT_FailedPrintSideChangeCount = "FailedPrintSideChangeCount";
+ public static final String JPOS_STAT_ReceiptCharacterPrintedCount = "ReceiptCharacterPrintedCount";
+ public static final String JPOS_STAT_ReceiptCoverOpenCount = "ReceiptCoverOpenCount";
+ public static final String JPOS_STAT_ReceiptLineFeedCount = "ReceiptLineFeedCount";
+ public static final String JPOS_STAT_ReceiptLinePrintedCount = "ReceiptLinePrintedCount";
+ public static final String JPOS_STAT_SlipCharacterPrintedCount = "SlipCharacterPrintedCount";
+ public static final String JPOS_STAT_SlipCoverOpenCount = "SlipCoverOpenCount";
+ public static final String JPOS_STAT_SlipLineFeedCount = "SlipLineFeedCount";
+ public static final String JPOS_STAT_SlipLinePrintedCount = "SlipLinePrintedCount";
+ public static final String JPOS_STAT_StampFiredCount = "StampFiredCount";
+ public static final String JPOS_STAT_GoodReadCount = "GoodReadCount";
+ public static final String JPOS_STAT_NoReadCount = "NoReadCount";
+ public static final String JPOS_STAT_SessionCount = "SessionCount";
+ public static final String JPOS_STAT_LockPositionChangeCount = "LockPositionChangeCount";
+ public static final String JPOS_STAT_OnlineTransitionCount = "OnlineTransitionCount";
+ public static final String JPOS_STAT_FailedDataParseCount = "FailedDataParseCount";
+ public static final String JPOS_STAT_UnreadableCardCount = "UnreadableCardCount";
+ public static final String JPOS_STAT_GoodWriteCount = "GoodWriteCount";
+ public static final String JPOS_STAT_MissingStartSentinelTrack1Count = "MissingStartSentinelTrack1Count";
+ public static final String JPOS_STAT_ParityLRCErrorTrack1Count = "ParityLRCErrorTrack1Count";
+ public static final String JPOS_STAT_MissingStartSentinelTrack2Count = "MissingStartSentinelTrack2Count";
+ public static final String JPOS_STAT_ParityLRCErrorTrack2Count = "ParityLRCErrorTrack2Count";
+ public static final String JPOS_STAT_MissingStartSentinelTrack3Count = "MissingStartSentinelTrack3Count";
+ public static final String JPOS_STAT_ParityLRCErrorTrack3Count = "ParityLRCErrorTrack3Count";
+ public static final String JPOS_STAT_MissingStartSentinelTrack4Count = "MissingStartSentinelTrack4Count";
+ public static final String JPOS_STAT_ParityLRCErrorTrack4Count = "ParityLRCErrorTrack4Count";
+ public static final String JPOS_STAT_GoodCardAuthenticationDataCount = "GoodCardAuthenticationDataCount";
+ public static final String JPOS_STAT_FailedCardAuthenticationDataCount = "FailedCardAuthenticationDataCount";
+ public static final String JPOS_STAT_ChallengeRequestCount = "ChallengeRequestCount";
+ public static final String JPOS_STAT_GoodDeviceAuthenticationCount = "GoodDeviceAuthenticationCount";
+ public static final String JPOS_STAT_FailedDeviceAuthenticationCount = "FailedDeviceAuthenticationCount";
+ public static final String JPOS_STAT_FailedReadCount = "FailedReadCount";
+ public static final String JPOS_STAT_MotionEventCount = "MotionEventCount";
+ public static final String JPOS_STAT_ValidPINEntryCount = "ValidPINEntryCount";
+ public static final String JPOS_STAT_InvalidPINEntryCount = "InvalidPINEntryCount";
+ public static final String JPOS_STAT_KeyPressedCount = "KeyPressedCount";
+ public static final String JPOS_STAT_TagReadCount = "TagReadCount";
+ public static final String JPOS_STAT_GoodTagWriteCount = "GoodTagWriteCount";
+ public static final String JPOS_STAT_FailedTagWriteCount = "FailedTagWriteCount";
+ public static final String JPOS_STAT_GoodTagLockCount = "GoodTagLockCount";
+ public static final String JPOS_STAT_FailedTagLockCount = "FailedTagLockCount";
+ public static final String JPOS_STAT_GoodTagDisableCount = "GoodTagDisableCount";
+ public static final String JPOS_STAT_FailedTagDisableCount = "FailedTagDisableCount";
+ public static final String JPOS_STAT_GoodWeightReadCount = "GoodWeightReadCount";
+ public static final String JPOS_STAT_GoodScanCount = "GoodScanCount";
+ public static final String JPOS_STAT_GoodSignatureReadCount = "GoodSignatureReadCount";
+ public static final String JPOS_STAT_FailedSignatureReadCount = "FailedSignatureReadCount";
+ public static final String JPOS_STAT_ToneSoundedCount = "ToneSoundedCount";
+}
+
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/Keylock.java b/org.eclipse.osbp.fork.jpos/src/jpos/Keylock.java
new file mode 100644
index 0000000..56918da
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/Keylock.java
@@ -0,0 +1,956 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// Keylock.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class Keylock
+ extends BaseJposControl
+ implements KeylockControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected KeylockService12 service12;
+ protected KeylockService13 service13;
+ protected KeylockService14 service14;
+ protected KeylockService15 service15;
+ protected KeylockService16 service16;
+ protected KeylockService17 service17;
+ protected KeylockService18 service18;
+ protected KeylockService19 service19;
+ protected KeylockService110 service110;
+ protected KeylockService111 service111;
+ protected KeylockService112 service112;
+ protected KeylockService113 service113;
+ protected KeylockService114 service114;
+ protected Vector directIOListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public Keylock()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS Keylock Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service12 = null;
+ //service13 = null;
+ //service14 = null;
+ //service15 = null;
+ //service16 = null;
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ directIOListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapKeylockType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.11.0
+ if(serviceVersion < deviceVersion111)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.11.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getCapKeylockType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public int getKeyPosition()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getKeyPosition();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPositionCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getPositionCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getElectronicKeyValue()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.11.0
+ if(serviceVersion < deviceVersion111)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.11.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service111.getElectronicKeyValue();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void waitForKeylockChange(int keyPosition, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.waitForKeylockChange(keyPosition, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new KeylockCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service12 = null;
+ service13 = null;
+ service14 = null;
+ service15 = null;
+ service16 = null;
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion12)
+ {
+ try
+ {
+ service12 = (KeylockService12)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement KeylockService12 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion13)
+ {
+ try
+ {
+ service13 = (KeylockService13)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement KeylockService13 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion14)
+ {
+ try
+ {
+ service14 = (KeylockService14)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement KeylockService14 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion15)
+ {
+ try
+ {
+ service15 = (KeylockService15)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement KeylockService15 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion16)
+ {
+ try
+ {
+ service16 = (KeylockService16)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement KeylockService16 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (KeylockService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement KeylockService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (KeylockService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement KeylockService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (KeylockService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement KeylockService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (KeylockService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement KeylockService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (KeylockService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement KeylockService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (KeylockService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement KeylockService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (KeylockService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement KeylockService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (KeylockService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement KeylockService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class KeylockCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)Keylock.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(Keylock.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(Keylock.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/Keylock.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/Keylock.manifest.stub
new file mode 100644
index 0000000..37f0f48
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/Keylock.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/Keylock.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/KeylockBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockBeanInfo.java
new file mode 100644
index 0000000..9fe1099
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockBeanInfo.java
@@ -0,0 +1,92 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// KeylockBeanInfo.java - Bean information for the JavaPOS Keylock
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class KeylockBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.Keylock.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.Keylock.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapUpdateFirmware"),
+ makeProperty("CapKeylockType"),
+
+ // Properties
+ makeProperty("KeyPosition"),
+ makeProperty("PositionCount"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("ElectronicKeyValue")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.Keylock.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("DirectIO"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/KeylockConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockConst.java
new file mode 100644
index 0000000..a56fbbf
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockConst.java
@@ -0,0 +1,56 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockConst
+//
+// Keylock constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 1998-Feb-18 JavaPOS Release 1.2 BS
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+// Added new StatusUpdateEvent constant:
+// LOCK_KP_ELECTRONIC
+// Added new CapKeylockType constants:
+// LOCK_KT_STANDARD
+// LOCK_KT_ELECTRONIC
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface KeylockConst
+{
+ //###################################################################
+ //#### Keylock Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // "KeyPosition" Property Constants
+ // "WaitForKeylockChange" Method: "KeyPosition" Parameter
+ // "StatusUpdateEvent" Event: "status" Parameter
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int LOCK_KP_ANY = 0; // WaitForKeylockChange Only
+ public static final int LOCK_KP_ELECTRONIC = 0; // StatusUpdateEvent Only (1.11)
+ public static final int LOCK_KP_LOCK = 1;
+ public static final int LOCK_KP_NORM = 2;
+ public static final int LOCK_KP_SUPR = 3;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapKeylockType" Property Constants Added in 1.11
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int LOCK_KT_STANDARD = 1; // 1.11
+ public static final int LOCK_KT_ELECTRONIC = 2; // 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl110.java
new file mode 100644
index 0000000..d658f67
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl110.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface KeylockControl110 extends KeylockControl19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl111.java
new file mode 100644
index 0000000..1468872
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl111.java
@@ -0,0 +1,35 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface KeylockControl111 extends KeylockControl110
+{
+ // Capabilities
+ public int getCapKeylockType() throws JposException;
+
+ // Properties
+ public byte[] getElectronicKeyValue() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl112.java
new file mode 100644
index 0000000..a9df1a2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface KeylockControl112 extends KeylockControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl113.java
new file mode 100644
index 0000000..98d2173
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface KeylockControl113 extends KeylockControl112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl114.java
new file mode 100644
index 0000000..f84d8dd
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Keylock for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface KeylockControl114 extends KeylockControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl12.java b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl12.java
new file mode 100644
index 0000000..f24025e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl12.java
@@ -0,0 +1,43 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockControl12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to Keylock for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface KeylockControl12 extends BaseControl
+{
+ // Properties
+ public int getKeyPosition() throws JposException;
+ public int getPositionCount() throws JposException;
+
+ // Methods
+ public void waitForKeylockChange(int keyPosition, int timeout)
+ throws JposException;
+
+ // Event listener methods
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl13.java b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl13.java
new file mode 100644
index 0000000..4426ebf
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl13.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockControl13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface KeylockControl13 extends KeylockControl12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl14.java b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl14.java
new file mode 100644
index 0000000..9226d13
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockControl14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface KeylockControl14 extends KeylockControl13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl15.java b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl15.java
new file mode 100644
index 0000000..85433a6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl15.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockControl15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 00-04-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface KeylockControl15 extends KeylockControl14
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl16.java b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl16.java
new file mode 100644
index 0000000..c241a40
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl16.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockControl16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-04-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface KeylockControl16 extends KeylockControl15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl17.java
new file mode 100644
index 0000000..2193917
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl17.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockControl17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface KeylockControl17 extends KeylockControl16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl18.java
new file mode 100644
index 0000000..4144ee8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl18.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface KeylockControl18 extends KeylockControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl19.java
new file mode 100644
index 0000000..420668f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/KeylockControl19.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface KeylockControl19 extends KeylockControl18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/Lights.java b/org.eclipse.osbp.fork.jpos/src/jpos/Lights.java
new file mode 100644
index 0000000..d4c42bc
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/Lights.java
@@ -0,0 +1,706 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// Lights.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class Lights
+ extends BaseJposControl
+ implements LightsControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected LightsService112 service112;
+ protected LightsService113 service113;
+ protected LightsService114 service114;
+ protected Vector directIOListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public Lights()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS Lights Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ directIOListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public int getCapAlarm()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapAlarm();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapBlink()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapBlink();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapColor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapColor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public int getMaxLights()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getMaxLights();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void switchOff(int lightNumber)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.switchOff(lightNumber);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void switchOn(int lightNumber, int blinkOnCycle, int blinkOffCycle, int color, int alarm)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.switchOn(lightNumber, blinkOnCycle, blinkOffCycle, color, alarm);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new LightsCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (LightsService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement LightsService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (LightsService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement LightsService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (LightsService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement LightsService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class LightsCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)Lights.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(Lights.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(Lights.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/Lights.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/Lights.manifest.stub
new file mode 100644
index 0000000..92744ee
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/Lights.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/Lights.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LightsBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/LightsBeanInfo.java
new file mode 100644
index 0000000..20f7695
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LightsBeanInfo.java
@@ -0,0 +1,92 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// LightsBeanInfo.java - Bean information for the JavaPOS Lights
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class LightsBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.Lights.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.Lights.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapAlarm"),
+ makeProperty("CapBlink"),
+ makeProperty("CapColor"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateFirmware"),
+ makeProperty("CapUpdateStatistics"),
+
+ // Properties
+ makeProperty("MaxLights"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.Lights.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("DirectIO"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LightsConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/LightsConst.java
new file mode 100644
index 0000000..47a8b1e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LightsConst.java
@@ -0,0 +1,50 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LightsConst
+//
+// Lights constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface LightsConst
+{
+ /////////////////////////////////////////////////////////////////////
+ // "CapAlarm" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int LGT_ALARM_NOALARM = 0x00000001;
+ public static final int LGT_ALARM_SLOW = 0x00000010;
+ public static final int LGT_ALARM_MEDIUM = 0x00000020;
+ public static final int LGT_ALARM_FAST = 0x00000040;
+ public static final int LGT_ALARM_CUSTOM1 = 0x00010000;
+ public static final int LGT_ALARM_CUSTOM2 = 0x00020000;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapColor" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int LGT_COLOR_PRIMARY = 0x00000001;
+ public static final int LGT_COLOR_CUSTOM1 = 0x00010000;
+ public static final int LGT_COLOR_CUSTOM2 = 0x00020000;
+ public static final int LGT_COLOR_CUSTOM3 = 0x00040000;
+ public static final int LGT_COLOR_CUSTOM4 = 0x00080000;
+ public static final int LGT_COLOR_CUSTOM5 = 0x00100000;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LightsControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/LightsControl112.java
new file mode 100644
index 0000000..349c91f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LightsControl112.java
@@ -0,0 +1,73 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LightsControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Lights for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface LightsControl112 extends BaseControl
+{
+ // Capabilities
+ public int getCapAlarm() throws JposException;
+ public boolean getCapBlink() throws JposException;
+ public int getCapColor() throws JposException;
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Properties
+ public int getMaxLights() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void switchOff(int lightNumber)
+ throws JposException;
+ public void switchOn(int lightNumber,
+ int blinkOnCycle,
+ int blinkOffCycle,
+ int color,
+ int alarm)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+
+ // Event listener methods
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LightsControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/LightsControl113.java
new file mode 100644
index 0000000..4e9d003
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LightsControl113.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LightsControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Lights for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface LightsControl113 extends LightsControl112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LightsControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/LightsControl114.java
new file mode 100644
index 0000000..f360976
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LightsControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LightsControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Lights for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface LightsControl114 extends LightsControl113
+{
+ // Nothing new added for release 1.14
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplay.java b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplay.java
new file mode 100644
index 0000000..652db22
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplay.java
@@ -0,0 +1,2774 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplay.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class LineDisplay
+ extends BaseJposControl
+ implements LineDisplayControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected LineDisplayService12 service12;
+ protected LineDisplayService13 service13;
+ protected LineDisplayService14 service14;
+ protected LineDisplayService15 service15;
+ protected LineDisplayService16 service16;
+ protected LineDisplayService17 service17;
+ protected LineDisplayService18 service18;
+ protected LineDisplayService19 service19;
+ protected LineDisplayService110 service110;
+ protected LineDisplayService111 service111;
+ protected LineDisplayService112 service112;
+ protected LineDisplayService113 service113;
+ protected LineDisplayService114 service114;
+ protected Vector directIOListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public LineDisplay()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS LineDisplay Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service12 = null;
+ //service13 = null;
+ //service14 = null;
+ //service15 = null;
+ //service16 = null;
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ directIOListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public int getCapBlink()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapBlink();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapBrightness()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapBrightness();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapCharacterSet()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapCharacterSet();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapDescriptors()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapDescriptors();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapHMarquee()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapHMarquee();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapICharWait()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapICharWait();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapVMarquee()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapVMarquee();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapBlinkRate()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getCapBlinkRate();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapCursorType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getCapCursorType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCustomGlyph()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getCapCustomGlyph();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapReadBack()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getCapReadBack();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapReverse()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getCapReverse();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapBitmap()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getCapBitmap();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapMapCharacterSet()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getCapMapCharacterSet();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapScreenMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getCapScreenMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public int getCharacterSet()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCharacterSet();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCharacterSet(int characterSet)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setCharacterSet(characterSet);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getCharacterSetList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCharacterSetList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getColumns()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getColumns();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCurrentWindow()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCurrentWindow();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCurrentWindow(int currentWindow)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setCurrentWindow(currentWindow);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCursorColumn()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCursorColumn();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCursorColumn(int cursorColumn)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setCursorColumn(cursorColumn);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCursorRow()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCursorRow();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCursorRow(int cursorRow)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setCursorRow(cursorRow);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCursorUpdate()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCursorUpdate();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCursorUpdate(boolean cursorUpdate)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setCursorUpdate(cursorUpdate);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDeviceBrightness()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getDeviceBrightness();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDeviceBrightness(int deviceBrightness)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setDeviceBrightness(deviceBrightness);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDeviceColumns()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getDeviceColumns();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDeviceDescriptors()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getDeviceDescriptors();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDeviceRows()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getDeviceRows();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDeviceWindows()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getDeviceWindows();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getInterCharacterWait()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getInterCharacterWait();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setInterCharacterWait(int interCharacterWait)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setInterCharacterWait(interCharacterWait);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMarqueeFormat()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getMarqueeFormat();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setMarqueeFormat(int marqueeFormat)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setMarqueeFormat(marqueeFormat);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMarqueeRepeatWait()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getMarqueeRepeatWait();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setMarqueeRepeatWait(int marqueeRepeatWait)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setMarqueeRepeatWait(marqueeRepeatWait);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMarqueeType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getMarqueeType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setMarqueeType(int marqueeType)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setMarqueeType(marqueeType);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMarqueeUnitWait()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getMarqueeUnitWait();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setMarqueeUnitWait(int marqueeUnitWait)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setMarqueeUnitWait(marqueeUnitWait);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getRows()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getRows();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getBlinkRate()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getBlinkRate();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setBlinkRate(int blinkRate)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.setBlinkRate(blinkRate);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCursorType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getCursorType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCursorType(int cursorType)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.setCursorType(cursorType);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getCustomGlyphList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getCustomGlyphList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getGlyphHeight()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getGlyphHeight();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getGlyphWidth()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service16.getGlyphWidth();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getMapCharacterSet()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getMapCharacterSet();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setMapCharacterSet(boolean mapCharacterSet)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.setMapCharacterSet(mapCharacterSet);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMaximumX()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getMaximumX();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMaximumY()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getMaximumY();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getScreenMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getScreenMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setScreenMode(int screenMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.setScreenMode(screenMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getScreenModeList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getScreenModeList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void clearDescriptors()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.clearDescriptors();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearText()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.clearText();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void createWindow(int viewportRow, int viewportColumn, int viewportHeight, int viewportWidth, int windowHeight, int windowWidth)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.createWindow(viewportRow, viewportColumn, viewportHeight, viewportWidth, windowHeight, windowWidth);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void destroyWindow()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.destroyWindow();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void displayText(String data, int attribute)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.displayText(data, attribute);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void displayTextAt(int row, int column, String data, int attribute)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.displayTextAt(row, column, data, attribute);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void refreshWindow(int window)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.refreshWindow(window);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void scrollText(int direction, int units)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.scrollText(direction, units);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDescriptor(int descriptor, int attribute)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setDescriptor(descriptor, attribute);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void defineGlyph(int glyphCode, byte[] glyph)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.defineGlyph(glyphCode, glyph);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void readCharacterAtCursor(int[] aChar)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.6.0
+ if(serviceVersion < deviceVersion16)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.6.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service16.readCharacterAtCursor(aChar);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void displayBitmap(String fileName, int width, int alignmentX, int alignmentY)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.displayBitmap(fileName, width, alignmentX, alignmentY);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setBitmap(int bitmapNumber, String fileName, int width, int alignmentX, int alignmentY)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.setBitmap(bitmapNumber, fileName, width, alignmentX, alignmentY);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new LineDisplayCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service12 = null;
+ service13 = null;
+ service14 = null;
+ service15 = null;
+ service16 = null;
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion12)
+ {
+ try
+ {
+ service12 = (LineDisplayService12)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement LineDisplayService12 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion13)
+ {
+ try
+ {
+ service13 = (LineDisplayService13)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement LineDisplayService13 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion14)
+ {
+ try
+ {
+ service14 = (LineDisplayService14)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement LineDisplayService14 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion15)
+ {
+ try
+ {
+ service15 = (LineDisplayService15)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement LineDisplayService15 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion16)
+ {
+ try
+ {
+ service16 = (LineDisplayService16)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement LineDisplayService16 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (LineDisplayService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement LineDisplayService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (LineDisplayService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement LineDisplayService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (LineDisplayService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement LineDisplayService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (LineDisplayService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement LineDisplayService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (LineDisplayService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement LineDisplayService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (LineDisplayService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement LineDisplayService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (LineDisplayService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement LineDisplayService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (LineDisplayService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement LineDisplayService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class LineDisplayCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)LineDisplay.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(LineDisplay.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(LineDisplay.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplay.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplay.manifest.stub
new file mode 100644
index 0000000..75c250b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplay.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/LineDisplay.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayBeanInfo.java
new file mode 100644
index 0000000..1e83c57
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayBeanInfo.java
@@ -0,0 +1,131 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// LineDisplayBeanInfo.java - Bean information for the JavaPOS LineDisplay
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class LineDisplayBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.LineDisplay.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.LineDisplay.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapBlink"),
+ makeProperty("CapBrightness"),
+ makeProperty("CapCharacterSet"),
+ makeProperty("CapDescriptors"),
+ makeProperty("CapHMarquee"),
+ makeProperty("CapICharWait"),
+ makeProperty("CapVMarquee"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapBlinkRate"),
+ makeProperty("CapCursorType"),
+ makeProperty("CapCustomGlyph"),
+ makeProperty("CapReadBack"),
+ makeProperty("CapReverse"),
+ makeProperty("CapBitmap"),
+ makeProperty("CapMapCharacterSet"),
+ makeProperty("CapScreenMode"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapUpdateFirmware"),
+
+ // Properties
+ makeProperty("CharacterSet"),
+ makeProperty("CharacterSetList"),
+ makeProperty("Columns"),
+ makeProperty("CurrentWindow"),
+ makeProperty("CursorColumn"),
+ makeProperty("CursorRow"),
+ makeProperty("CursorUpdate"),
+ makeProperty("DeviceBrightness"),
+ makeProperty("DeviceColumns"),
+ makeProperty("DeviceDescriptors"),
+ makeProperty("DeviceRows"),
+ makeProperty("DeviceWindows"),
+ makeProperty("InterCharacterWait"),
+ makeProperty("MarqueeFormat"),
+ makeProperty("MarqueeRepeatWait"),
+ makeProperty("MarqueeType"),
+ makeProperty("MarqueeUnitWait"),
+ makeProperty("Rows"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("BlinkRate"),
+ makeProperty("CursorType"),
+ makeProperty("CustomGlyphList"),
+ makeProperty("GlyphHeight"),
+ makeProperty("GlyphWidth"),
+ makeProperty("MapCharacterSet"),
+ makeProperty("MaximumX"),
+ makeProperty("MaximumY"),
+ makeProperty("ScreenMode"),
+ makeProperty("ScreenModeList")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.LineDisplay.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("DirectIO"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayConst.java
new file mode 100644
index 0000000..a913b0b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayConst.java
@@ -0,0 +1,205 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayConst
+//
+// Line Display constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+// 16-Apr-2003 Release 1.7.2: Added the missing constant BS
+// DISP_CCT_NONE.
+// 03-Jun-2003 JavaPOS Release 1.8 BS
+// Added constants DISP_CCT_BLINK and DISP_CT_BLINK
+// 15-Sep-2004 JavaPOS Release 1.8.2 BS
+// Added missing constants EDISP_TOOBIG and EDISP_BADFORMAT.
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface LineDisplayConst
+{
+ //###################################################################
+ //#### Line Display Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapBlink" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int DISP_CB_NOBLINK = 0;
+ public static final int DISP_CB_BLINKALL = 1;
+ public static final int DISP_CB_BLINKEACH = 2;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapCharacterSet" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int DISP_CCS_NUMERIC = 0;
+ public static final int DISP_CCS_ALPHA = 1;
+ public static final int DISP_CCS_ASCII = 998;
+ public static final int DISP_CCS_KANA = 10;
+ public static final int DISP_CCS_KANJI = 11;
+ public static final int DISP_CCS_UNICODE = 997;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapCursorType" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int DISP_CCT_NONE = 0x00000000;
+ public static final int DISP_CCT_FIXED = 0x00000001;
+ public static final int DISP_CCT_BLOCK = 0x00000002;
+ public static final int DISP_CCT_HALFBLOCK = 0x00000004;
+ public static final int DISP_CCT_UNDERLINE = 0x00000008;
+ public static final int DISP_CCT_REVERSE = 0x00000010;
+ public static final int DISP_CCT_OTHER = 0x00000020;
+
+ // Added in Release 1.8
+ public static final int DISP_CCT_BLINK = 0x00000040;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapReadBack" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int DISP_CRB_NONE = 0x00000000;
+ public static final int DISP_CRB_SINGLE = 0x00000001;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapReverse" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int DISP_CR_NONE = 0x00000000;
+ public static final int DISP_CR_REVERSEALL = 0x00000001;
+ public static final int DISP_CR_REVERSEEACH = 0x00000002;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CharacterSet" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int DISP_CS_UNICODE = 997;
+ public static final int DISP_CS_ASCII = 998;
+ public static final int DISP_CS_ANSI = 999;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CursorType" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int DISP_CT_NONE = 0;
+ public static final int DISP_CT_FIXED = 1;
+ public static final int DISP_CT_BLOCK = 2;
+ public static final int DISP_CT_HALFBLOCK = 3;
+ public static final int DISP_CT_UNDERLINE = 4;
+ public static final int DISP_CT_REVERSE = 5;
+ public static final int DISP_CT_OTHER = 6;
+
+ // Added in Release 1.8
+ public static final int DISP_CT_BLINK = 0x10000000;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "MarqueeType" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int DISP_MT_NONE = 0;
+ public static final int DISP_MT_UP = 1;
+ public static final int DISP_MT_DOWN = 2;
+ public static final int DISP_MT_LEFT = 3;
+ public static final int DISP_MT_RIGHT = 4;
+ public static final int DISP_MT_INIT = 5;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "MarqueeFormat" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int DISP_MF_WALK = 0;
+ public static final int DISP_MF_PLACE = 1;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "DefineGlyph" Method: "GlyphType" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int DISP_GT_SINGLE = 1;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "DisplayText" Method: "Attribute" Property Constants
+ // "DisplayTextAt" Method: "Attribute" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int DISP_DT_NORMAL = 0;
+ public static final int DISP_DT_BLINK = 1;
+ public static final int DISP_DT_REVERSE = 2;
+ public static final int DISP_DT_BLINK_REVERSE = 3;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ScrollText" Method: "Direction" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int DISP_ST_UP = 1;
+ public static final int DISP_ST_DOWN = 2;
+ public static final int DISP_ST_LEFT = 3;
+ public static final int DISP_ST_RIGHT = 4;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "SetDescriptor" Method: "Attribute" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int DISP_SD_OFF = 0;
+ public static final int DISP_SD_ON = 1;
+ public static final int DISP_SD_BLINK = 2;
+
+
+ /////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////
+ // The following were added in Release 1.7
+ /////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////
+
+ /////////////////////////////////////////////////////////////////////
+ // "displayBitmap" and "setBitmap" Method Constants:
+ /////////////////////////////////////////////////////////////////////
+
+ // "Width" Parameter
+
+ public static final int DISP_BM_ASIS = -11;
+
+ // "AlignmentX" Parameter
+
+ public static final int DISP_BM_LEFT = -1;
+ public static final int DISP_BM_CENTER = -2;
+ public static final int DISP_BM_RIGHT = -3;
+
+ // "AlignmentY" Parameter
+
+ public static final int DISP_BM_TOP = -1;
+ //public static final int DISP_BM_CENTER = -2;
+ public static final int DISP_BM_BOTTOM = -3;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ErrorCodeExtended" Property Constants for Line Display
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_EDISP_TOOBIG = 1 + JposConst.JPOSERREXT; // DisplayBitmap
+ public static final int JPOS_EDISP_BADFORMAT = 2 + JposConst.JPOSERREXT; // DisplayBitmap
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl110.java
new file mode 100644
index 0000000..86ef406
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl110.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface LineDisplayControl110 extends LineDisplayControl19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl111.java
new file mode 100644
index 0000000..189aad3
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface LineDisplayControl111 extends LineDisplayControl110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl112.java
new file mode 100644
index 0000000..f0b9acb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface LineDisplayControl112 extends LineDisplayControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl113.java
new file mode 100644
index 0000000..0f88a36
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface LineDisplayControl113 extends LineDisplayControl112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl114.java
new file mode 100644
index 0000000..f13d2da
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Line Display for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface LineDisplayControl114 extends LineDisplayControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl12.java b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl12.java
new file mode 100644
index 0000000..7038a92
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl12.java
@@ -0,0 +1,93 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayControl12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to Line Display for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface LineDisplayControl12 extends BaseControl
+{
+ // Capabilities
+ public int getCapBlink() throws JposException;
+ public boolean getCapBrightness() throws JposException;
+ public int getCapCharacterSet() throws JposException;
+ public boolean getCapDescriptors() throws JposException;
+ public boolean getCapHMarquee() throws JposException;
+ public boolean getCapICharWait() throws JposException;
+ public boolean getCapVMarquee() throws JposException;
+
+ // Properties
+ public int getCharacterSet() throws JposException;
+ public void setCharacterSet(int characterSet) throws JposException;
+ public String getCharacterSetList() throws JposException;
+ public int getColumns() throws JposException;
+ public int getCurrentWindow() throws JposException;
+ public void setCurrentWindow(int currentWindow) throws JposException;
+ public int getCursorColumn() throws JposException;
+ public void setCursorColumn(int cursorColumn) throws JposException;
+ public int getCursorRow() throws JposException;
+ public void setCursorRow(int cursorRow) throws JposException;
+ public boolean getCursorUpdate() throws JposException;
+ public void setCursorUpdate(boolean cursorUpdate) throws JposException;
+ public int getDeviceBrightness() throws JposException;
+ public void setDeviceBrightness(int deviceBrightness)
+ throws JposException;
+ public int getDeviceColumns() throws JposException;
+ public int getDeviceDescriptors() throws JposException;
+ public int getDeviceRows() throws JposException;
+ public int getDeviceWindows() throws JposException;
+ public int getInterCharacterWait() throws JposException;
+ public void setInterCharacterWait(int interCharacterWait)
+ throws JposException;
+ public int getMarqueeFormat() throws JposException;
+ public void setMarqueeFormat(int marqueeFormat) throws JposException;
+ public int getMarqueeRepeatWait() throws JposException;
+ public void setMarqueeRepeatWait(int marqueeRepeatWait)
+ throws JposException;
+ public int getMarqueeType() throws JposException;
+ public void setMarqueeType(int marqueeType) throws JposException;
+ public int getMarqueeUnitWait() throws JposException;
+ public void setMarqueeUnitWait(int marqueeUnitWait)
+ throws JposException;
+ public int getRows() throws JposException;
+
+ // Methods
+ public void clearDescriptors() throws JposException;
+ public void clearText() throws JposException;
+ public void createWindow(int viewportRow, int viewportColumn,
+ int viewportHeight, int viewportWidth, int windowHeight,
+ int windowWidth) throws JposException;
+ public void destroyWindow() throws JposException;
+ public void displayText(String data, int attribute)
+ throws JposException;
+ public void displayTextAt(int row, int column, String data,
+ int attribute) throws JposException;
+ public void refreshWindow(int window) throws JposException;
+ public void scrollText(int direction, int units) throws JposException;
+ public void setDescriptor(int descriptor, int attribute)
+ throws JposException;
+
+ // Event listener methods
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl13.java b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl13.java
new file mode 100644
index 0000000..f454314
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl13.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayControl13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface LineDisplayControl13 extends LineDisplayControl12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+
+ // Event listener methods
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl14.java b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl14.java
new file mode 100644
index 0000000..f757910
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayControl14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface LineDisplayControl14 extends LineDisplayControl13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl15.java b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl15.java
new file mode 100644
index 0000000..658799e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl15.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayControl15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 00-04-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface LineDisplayControl15 extends LineDisplayControl14
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl16.java b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl16.java
new file mode 100644
index 0000000..d838bdd
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl16.java
@@ -0,0 +1,50 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayControl16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-04-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface LineDisplayControl16 extends LineDisplayControl15
+{
+ // Capabilities
+ public boolean getCapBlinkRate() throws JposException;
+ public int getCapCursorType() throws JposException;
+ public boolean getCapCustomGlyph() throws JposException;
+ public int getCapReadBack() throws JposException;
+ public int getCapReverse() throws JposException;
+
+ // Properties
+ public int getBlinkRate() throws JposException;
+ public void setBlinkRate(int blinkRate) throws JposException;
+ public int getCursorType() throws JposException;
+ public void setCursorType(int cursorType) throws JposException;
+ public String getCustomGlyphList() throws JposException;
+ public int getGlyphHeight() throws JposException;
+ public int getGlyphWidth() throws JposException;
+
+ // Methods
+ public void defineGlyph(int glyphCode, byte[] glyph)
+ throws JposException;
+ public void readCharacterAtCursor(int[] aChar) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl17.java
new file mode 100644
index 0000000..5198239
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl17.java
@@ -0,0 +1,50 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayControl17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface LineDisplayControl17 extends LineDisplayControl16
+{
+ // Capabilities
+ public boolean getCapBitmap() throws JposException;
+ public boolean getCapMapCharacterSet() throws JposException;
+ public boolean getCapScreenMode() throws JposException;
+
+ // Properties
+ public boolean getMapCharacterSet() throws JposException;
+ public void setMapCharacterSet(boolean mapCharacterSet)
+ throws JposException;
+ public int getMaximumX() throws JposException;
+ public int getMaximumY() throws JposException;
+ public int getScreenMode() throws JposException;
+ public void setScreenMode(int screenMode) throws JposException;
+ public String getScreenModeList() throws JposException;
+
+ // Methods
+ public void displayBitmap(String fileName, int width, int alignmentX,
+ int alignmentY) throws JposException;
+ public void setBitmap(int bitmapNumber, String fileName, int width,
+ int alignmentX, int alignmentY) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl18.java
new file mode 100644
index 0000000..e7f0d51
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl18.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface LineDisplayControl18 extends LineDisplayControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl19.java
new file mode 100644
index 0000000..9decc98
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/LineDisplayControl19.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface LineDisplayControl19 extends LineDisplayControl18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MICR.java b/org.eclipse.osbp.fork.jpos/src/jpos/MICR.java
new file mode 100644
index 0000000..878bc2d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MICR.java
@@ -0,0 +1,1401 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICR.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class MICR
+ extends BaseJposControl
+ implements MICRControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected MICRService12 service12;
+ protected MICRService13 service13;
+ protected MICRService14 service14;
+ protected MICRService15 service15;
+ protected MICRService16 service16;
+ protected MICRService17 service17;
+ protected MICRService18 service18;
+ protected MICRService19 service19;
+ protected MICRService110 service110;
+ protected MICRService111 service111;
+ protected MICRService112 service112;
+ protected MICRService113 service113;
+ protected MICRService114 service114;
+ protected Vector dataListeners;
+ protected Vector directIOListeners;
+ protected Vector errorListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public MICR()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS MICR Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service12 = null;
+ //service13 = null;
+ //service14 = null;
+ //service15 = null;
+ //service16 = null;
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ dataListeners = new Vector();
+ directIOListeners = new Vector();
+ errorListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapValidationDevice()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapValidationDevice();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public boolean getAutoDisable()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getAutoDisable();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAutoDisable(boolean autoDisable)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setAutoDisable(autoDisable);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getAccountNumber()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getAccountNumber();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getAmount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getAmount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getBankNumber()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getBankNumber();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCheckType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCheckType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCountryCode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCountryCode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDataEventEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getDataEventEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setDataEventEnabled(dataEventEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getEPC()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getEPC();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getRawData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getRawData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getSerialNumber()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getSerialNumber();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getTransitNumber()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getTransitNumber();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void beginInsertion(int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.beginInsertion(timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void beginRemoval(int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.beginRemoval(timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.clearInput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endInsertion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.endInsertion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endRemoval()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.endRemoval();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInputProperties()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.10.0
+ if(serviceVersion < deviceVersion110)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.10.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.clearInputProperties();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new MICRCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service12 = null;
+ service13 = null;
+ service14 = null;
+ service15 = null;
+ service16 = null;
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion12)
+ {
+ try
+ {
+ service12 = (MICRService12)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MICRService12 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion13)
+ {
+ try
+ {
+ service13 = (MICRService13)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MICRService13 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion14)
+ {
+ try
+ {
+ service14 = (MICRService14)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MICRService14 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion15)
+ {
+ try
+ {
+ service15 = (MICRService15)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MICRService15 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion16)
+ {
+ try
+ {
+ service16 = (MICRService16)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MICRService16 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (MICRService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MICRService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (MICRService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MICRService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (MICRService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MICRService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (MICRService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MICRService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (MICRService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MICRService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (MICRService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MICRService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (MICRService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MICRService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (MICRService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MICRService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.addElement(l);
+ }
+ }
+
+ public void removeDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.removeElement(l);
+ }
+ }
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.addElement(l);
+ }
+ }
+
+ public void removeErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class MICRCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)MICR.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ synchronized(MICR.this.dataListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < dataListeners.size(); x++)
+ {
+ ((DataListener)dataListeners.elementAt(x)).dataOccurred(e);
+ }
+ }
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(MICR.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ synchronized(MICR.this.errorListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < errorListeners.size(); x++)
+ {
+ ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e);
+ }
+ }
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(MICR.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MICR.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/MICR.manifest.stub
new file mode 100644
index 0000000..1aa3278
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MICR.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/MICR.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MICRBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/MICRBeanInfo.java
new file mode 100644
index 0000000..bc7af16
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MICRBeanInfo.java
@@ -0,0 +1,103 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// MICRBeanInfo.java - Bean information for the JavaPOS MICR
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class MICRBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.MICR.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.MICR.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapValidationDevice"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapUpdateFirmware"),
+
+ // Properties
+ makeProperty("AutoDisable"),
+ makeProperty("AccountNumber"),
+ makeProperty("Amount"),
+ makeProperty("BankNumber"),
+ makeProperty("CheckType"),
+ makeProperty("CountryCode"),
+ makeProperty("DataCount"),
+ makeProperty("DataEventEnabled"),
+ makeProperty("EPC"),
+ makeProperty("RawData"),
+ makeProperty("SerialNumber"),
+ makeProperty("TransitNumber"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.MICR.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("Data"),
+ makeEvent("DirectIO"),
+ makeEvent("Error"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MICRConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/MICRConst.java
new file mode 100644
index 0000000..3c72bd8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MICRConst.java
@@ -0,0 +1,73 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRConst
+//
+// MICR constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+// Added "CountryCode"constants:
+// MICR_CC_CMC7
+// MICR_CC_OTHER
+// 2009-Oct-06 JavaPOS Release 1.13.1 BS
+// Corrected value of "CountryCode"constant MICR_CC_OTHER.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface MICRConst
+{
+ //###################################################################
+ //#### MICR Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // "CheckType" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int MICR_CT_PERSONAL = 1;
+ public static final int MICR_CT_BUSINESS = 2;
+ public static final int MICR_CT_UNKNOWN = 99;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CountryCode" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int MICR_CC_USA = 1;
+ public static final int MICR_CC_CANADA = 2;
+ public static final int MICR_CC_MEXICO = 3;
+ public static final int MICR_CC_CMC7 = 4; // Added in 1.13
+ public static final int MICR_CC_OTHER = 5; // Added in 1.13
+ public static final int MICR_CC_UNKNOWN = 99;
+
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ResultCodeExtended" Property Constants for MICR
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_EMICR_NOCHECK = 1 + JposConst.JPOSERREXT; // EndInsertion
+ public static final int JPOS_EMICR_CHECK = 2 + JposConst.JPOSERREXT; // EndRemoval
+
+ // The following were added in Release 1.7
+ public static final int JPOS_EMICR_BADDATA = 3 + JposConst.JPOSERREXT;
+ public static final int JPOS_EMICR_NODATA = 4 + JposConst.JPOSERREXT;
+ public static final int JPOS_EMICR_BADSIZE = 5 + JposConst.JPOSERREXT;
+ public static final int JPOS_EMICR_JAM = 6 + JposConst.JPOSERREXT;
+ public static final int JPOS_EMICR_CHECKDIGIT = 7 + JposConst.JPOSERREXT;
+ public static final int JPOS_EMICR_COVEROPEN = 8 + JposConst.JPOSERREXT;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl110.java
new file mode 100644
index 0000000..ce30de9
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl110.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MICRControl110 extends MICRControl19
+{
+ // Methods
+ public void clearInputProperties()
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl111.java
new file mode 100644
index 0000000..531e0db
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MICRControl111 extends MICRControl110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl112.java
new file mode 100644
index 0000000..b32f741
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MICRControl112 extends MICRControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl113.java
new file mode 100644
index 0000000..049545a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MICRControl113 extends MICRControl112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl114.java
new file mode 100644
index 0000000..98e7178
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to MICR for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MICRControl114 extends MICRControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl12.java b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl12.java
new file mode 100644
index 0000000..330dd76
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl12.java
@@ -0,0 +1,64 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRControl12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to MICR for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MICRControl12 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapValidationDevice() throws JposException;
+
+ // Properties
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public String getAccountNumber() throws JposException;
+ public String getAmount() throws JposException;
+ public String getBankNumber() throws JposException;
+ public int getCheckType() throws JposException;
+ public int getCountryCode() throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public String getEPC() throws JposException;
+ public String getRawData() throws JposException;
+ public String getSerialNumber() throws JposException;
+ public String getTransitNumber() throws JposException;
+
+ // Methods
+ public void beginInsertion(int timeout) throws JposException;
+ public void beginRemoval(int timeout) throws JposException;
+ public void clearInput() throws JposException;
+ public void endInsertion() throws JposException;
+ public void endRemoval() throws JposException;
+
+ // Event listener methods
+ public void addDataListener(DataListener l);
+ public void removeDataListener(DataListener l);
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addErrorListener(ErrorListener l);
+ public void removeErrorListener(ErrorListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl13.java b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl13.java
new file mode 100644
index 0000000..eefcd89
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl13.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRControl13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MICRControl13 extends MICRControl12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+
+ // Event listener methods
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl14.java b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl14.java
new file mode 100644
index 0000000..9606d9b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRControl14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MICRControl14 extends MICRControl13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl15.java b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl15.java
new file mode 100644
index 0000000..90b9dca
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl15.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRControl15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 00-04-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MICRControl15 extends MICRControl14
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl16.java b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl16.java
new file mode 100644
index 0000000..665c072
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl16.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRControl16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-04-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MICRControl16 extends MICRControl15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl17.java
new file mode 100644
index 0000000..10ef907
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl17.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRControl17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MICRControl17 extends MICRControl16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl18.java
new file mode 100644
index 0000000..a908fe8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl18.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MICRControl18 extends MICRControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl19.java
new file mode 100644
index 0000000..3296363
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MICRControl19.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MICRControl19 extends MICRControl18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MSR.java b/org.eclipse.osbp.fork.jpos/src/jpos/MSR.java
new file mode 100644
index 0000000..9fa3a87
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MSR.java
@@ -0,0 +1,2899 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSR.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class MSR
+ extends BaseJposControl
+ implements MSRControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected MSRService12 service12;
+ protected MSRService13 service13;
+ protected MSRService14 service14;
+ protected MSRService15 service15;
+ protected MSRService16 service16;
+ protected MSRService17 service17;
+ protected MSRService18 service18;
+ protected MSRService19 service19;
+ protected MSRService110 service110;
+ protected MSRService111 service111;
+ protected MSRService112 service112;
+ protected MSRService113 service113;
+ protected MSRService114 service114;
+ protected Vector dataListeners;
+ protected Vector directIOListeners;
+ protected Vector errorListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public MSR()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS MSR Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service12 = null;
+ //service13 = null;
+ //service14 = null;
+ //service15 = null;
+ //service16 = null;
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ dataListeners = new Vector();
+ directIOListeners = new Vector();
+ errorListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapISO()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapISO();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapJISOne()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapJISOne();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapJISTwo()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapJISTwo();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapTransmitSentinels()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapTransmitSentinels();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapWritableTracks()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.10.0
+ if(serviceVersion < deviceVersion110)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.10.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getCapWritableTracks();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getCapCardAuthentication()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapCardAuthentication();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapDataEncryption()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapDataEncryption();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapDeviceAuthentication()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapDeviceAuthentication();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapTrackDataMasking()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapTrackDataMasking();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public String getAccountNumber()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getAccountNumber();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getAutoDisable()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getAutoDisable();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAutoDisable(boolean autoDisable)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setAutoDisable(autoDisable);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDataEventEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getDataEventEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setDataEventEnabled(dataEventEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDecodeData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getDecodeData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDecodeData(boolean decodeData)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setDecodeData(decodeData);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getErrorReportingType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getErrorReportingType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setErrorReportingType(int errorReportingType)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setErrorReportingType(errorReportingType);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getExpirationDate()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getExpirationDate();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getFirstName()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getFirstName();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getMiddleInitial()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getMiddleInitial();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getParseDecodeData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getParseDecodeData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setParseDecodeData(boolean parseDecodeData)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setParseDecodeData(parseDecodeData);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getServiceCode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getServiceCode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getSuffix()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getSuffix();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getSurname()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getSurname();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getTitle()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getTitle();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getTrack1Data()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getTrack1Data();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getTrack1DiscretionaryData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getTrack1DiscretionaryData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getTrack2Data()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getTrack2Data();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getTrack2DiscretionaryData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getTrack2DiscretionaryData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getTrack3Data()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getTrack3Data();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTracksToRead()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getTracksToRead();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTracksToRead(int tracksToRead)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setTracksToRead(tracksToRead);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getTrack4Data()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getTrack4Data();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getTransmitSentinels()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getTransmitSentinels();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTransmitSentinels(boolean transmitSentinels)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setTransmitSentinels(transmitSentinels);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getEncodingMaxLength()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.10.0
+ if(serviceVersion < deviceVersion110)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.10.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getEncodingMaxLength();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTracksToWrite()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.10.0
+ if(serviceVersion < deviceVersion110)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.10.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service110.getTracksToWrite();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTracksToWrite(int tracks)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.10.0
+ if(serviceVersion < deviceVersion110)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.10.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.setTracksToWrite(tracks);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getAdditionalSecurityInformation()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getAdditionalSecurityInformation();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getCardAuthenticationData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCardAuthenticationData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCardAuthenticationDataLength()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCardAuthenticationDataLength();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getCardPropertyList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCardPropertyList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getCardType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCardType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getCardTypeList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCardTypeList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDataEncryptionAlgorithm()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getDataEncryptionAlgorithm();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDataEncryptionAlgorithm(int encryptAlgorithm)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setDataEncryptionAlgorithm(encryptAlgorithm);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDeviceAuthenticated()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getDeviceAuthenticated();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDeviceAuthenticationProtocol()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getDeviceAuthenticationProtocol();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getTrack1EncryptedData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getTrack1EncryptedData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTrack1EncryptedDataLength()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getTrack1EncryptedDataLength();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getTrack2EncryptedData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getTrack2EncryptedData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTrack2EncryptedDataLength()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getTrack2EncryptedDataLength();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getTrack3EncryptedData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getTrack3EncryptedData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTrack3EncryptedDataLength()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getTrack3EncryptedDataLength();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getTrack4EncryptedData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getTrack4EncryptedData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTrack4EncryptedDataLength()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getTrack4EncryptedDataLength();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getWriteCardType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getWriteCardType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setWriteCardType(String cardType)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setWriteCardType(cardType);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void clearInput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.clearInput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInputProperties()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.10.0
+ if(serviceVersion < deviceVersion110)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.10.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.clearInputProperties();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void writeTracks(byte[][] data, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.10.0
+ if(serviceVersion < deviceVersion110)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.10.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.writeTracks(data, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void authenticateDevice(byte[] response)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.authenticateDevice(response);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void deauthenticateDevice(byte[] response)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.deauthenticateDevice(response);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveCardProperty(String name, String[] value)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.retrieveCardProperty(name, value);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveDeviceAuthenticationData(byte[] challenge)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.retrieveDeviceAuthenticationData(challenge);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateKey(String key, String keyName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.12.0
+ if(serviceVersion < deviceVersion112)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.12.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.updateKey(key, keyName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveDeviceAuthenticationData(byte[][] challenge)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.13.0
+ if(serviceVersion < deviceVersion113)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.13.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service113.retrieveDeviceAuthenticationData(challenge);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new MSRCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service12 = null;
+ service13 = null;
+ service14 = null;
+ service15 = null;
+ service16 = null;
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion12)
+ {
+ try
+ {
+ service12 = (MSRService12)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MSRService12 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion13)
+ {
+ try
+ {
+ service13 = (MSRService13)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MSRService13 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion14)
+ {
+ try
+ {
+ service14 = (MSRService14)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MSRService14 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion15)
+ {
+ try
+ {
+ service15 = (MSRService15)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MSRService15 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion16)
+ {
+ try
+ {
+ service16 = (MSRService16)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MSRService16 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (MSRService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MSRService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (MSRService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MSRService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (MSRService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MSRService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (MSRService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MSRService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (MSRService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MSRService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (MSRService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MSRService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (MSRService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MSRService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (MSRService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MSRService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.addElement(l);
+ }
+ }
+
+ public void removeDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.removeElement(l);
+ }
+ }
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.addElement(l);
+ }
+ }
+
+ public void removeErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class MSRCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)MSR.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ synchronized(MSR.this.dataListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < dataListeners.size(); x++)
+ {
+ ((DataListener)dataListeners.elementAt(x)).dataOccurred(e);
+ }
+ }
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(MSR.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ synchronized(MSR.this.errorListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < errorListeners.size(); x++)
+ {
+ ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e);
+ }
+ }
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(MSR.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MSR.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/MSR.manifest.stub
new file mode 100644
index 0000000..e03b4c9
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MSR.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/MSR.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MSRBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/MSRBeanInfo.java
new file mode 100644
index 0000000..19b3139
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MSRBeanInfo.java
@@ -0,0 +1,142 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// MSRBeanInfo.java - Bean information for the JavaPOS MSR
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class MSRBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.MSR.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.MSR.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapISO"),
+ makeProperty("CapJISOne"),
+ makeProperty("CapJISTwo"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapTransmitSentinels"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapUpdateFirmware"),
+ makeProperty("CapWritableTracks"),
+ makeProperty("CapCardAuthentication"),
+ makeProperty("CapDataEncryption"),
+ makeProperty("CapDeviceAuthentication"),
+ makeProperty("CapTrackDataMasking"),
+
+ // Properties
+ makeProperty("AccountNumber"),
+ makeProperty("AutoDisable"),
+ makeProperty("DataCount"),
+ makeProperty("DataEventEnabled"),
+ makeProperty("DecodeData"),
+ makeProperty("ErrorReportingType"),
+ makeProperty("ExpirationDate"),
+ makeProperty("FirstName"),
+ makeProperty("MiddleInitial"),
+ makeProperty("ParseDecodeData"),
+ makeProperty("ServiceCode"),
+ makeProperty("Suffix"),
+ makeProperty("Surname"),
+ makeProperty("Title"),
+ makeProperty("Track1Data"),
+ makeProperty("Track1DiscretionaryData"),
+ makeProperty("Track2Data"),
+ makeProperty("Track2DiscretionaryData"),
+ makeProperty("Track3Data"),
+ makeProperty("TracksToRead"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("Track4Data"),
+ makeProperty("TransmitSentinels"),
+ makeProperty("EncodingMaxLength"),
+ makeProperty("TracksToWrite"),
+ makeProperty("AdditionalSecurityInformation"),
+ makeProperty("CardAuthenticationData"),
+ makeProperty("CardAuthenticationDataLength"),
+ makeProperty("CardPropertyList"),
+ makeProperty("CardType"),
+ makeProperty("CardTypeList"),
+ makeProperty("DataEncryptionAlgorithm"),
+ makeProperty("DeviceAuthenticated"),
+ makeProperty("DeviceAuthenticationProtocol"),
+ makeProperty("Track1EncryptedData"),
+ makeProperty("Track1EncryptedDataLength"),
+ makeProperty("Track2EncryptedData"),
+ makeProperty("Track2EncryptedDataLength"),
+ makeProperty("Track3EncryptedData"),
+ makeProperty("Track3EncryptedDataLength"),
+ makeProperty("Track4EncryptedData"),
+ makeProperty("Track4EncryptedDataLength"),
+ makeProperty("WriteCardType"),
+
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.MSR.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("Data"),
+ makeEvent("DirectIO"),
+ makeEvent("Error"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MSRConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/MSRConst.java
new file mode 100644
index 0000000..b369eb0
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MSRConst.java
@@ -0,0 +1,163 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRConst
+//
+// MSR constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 1998-Feb-18 JavaPOS Release 1.2 BS
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// Added Property values:
+// MSR_DE_NONE
+// MSR_DE_3DEA_DUKPT
+// MSR_DA_NOT_SUPPORTED
+// MSR_DA_OPTIONAL
+// MSR_DA_REQUIRED
+// MSR_AP_NONE
+// MSR_AP_CHALLENGERESPONSE
+// Added Extended Error values:
+// MSR_SUE_DEVICE_AUTHENTICATED
+// MSR_SUE_DEVICE_DEAUTHENTICATED
+// Added Status Update Event values:
+// JPOS_EMSR_DEVICE_AUTHENTICATION_FAILED
+// JPOS_EMSR_DEVICE_DEAUTHENTICATION_FAILED
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface MSRConst
+{
+ //###################################################################
+ //#### MSR Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // "TracksToRead" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int MSR_TR_NONE = 0;
+
+ public static final int MSR_TR_1 = 1;
+ public static final int MSR_TR_2 = 2;
+ public static final int MSR_TR_3 = 4;
+ public static final int MSR_TR_4 = 8;
+
+ public static final int MSR_TR_1_2 = MSR_TR_1 | MSR_TR_2;
+ public static final int MSR_TR_1_3 = MSR_TR_1 | MSR_TR_3;
+ public static final int MSR_TR_1_4 = MSR_TR_1 | MSR_TR_4;
+ public static final int MSR_TR_2_3 = MSR_TR_2 | MSR_TR_3;
+ public static final int MSR_TR_2_4 = MSR_TR_2 | MSR_TR_4;
+ public static final int MSR_TR_3_4 = MSR_TR_3 | MSR_TR_4;
+
+ public static final int MSR_TR_1_2_3 = MSR_TR_1 | MSR_TR_2 | MSR_TR_3;
+ public static final int MSR_TR_1_2_4 = MSR_TR_1 | MSR_TR_2 | MSR_TR_4;
+ public static final int MSR_TR_1_3_4 = MSR_TR_1 | MSR_TR_3 | MSR_TR_4;
+ public static final int MSR_TR_2_3_4 = MSR_TR_2 | MSR_TR_3 | MSR_TR_4;
+
+ public static final int MSR_TR_1_2_3_4 = MSR_TR_1 | MSR_TR_2 |
+ MSR_TR_3 | MSR_TR_4;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ErrorReportingType" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int MSR_ERT_CARD = 0;
+ public static final int MSR_ERT_TRACK = 1;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapDataEncryption", "DataEncryptionAlgorithm" Property Constants
+ // (added in 1.12)
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int MSR_DE_NONE = 0x00000001;
+ public static final int MSR_DE_3DEA_DUKPT = 0x00000002;
+ // Note: Service-specific values begin at 0x01000000.
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapDeviceAuthentication" Property Constants (added in 1.12)
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int MSR_DA_NOT_SUPPORTED = 0;
+ public static final int MSR_DA_OPTIONAL = 1;
+ public static final int MSR_DA_REQUIRED = 2;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "DeviceAuthenticationProtocol" Property Constants (added in 1.12)
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int MSR_AP_NONE = 0;
+ public static final int MSR_AP_CHALLENGERESPONSE = 1;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CardType" Property Constants (added in 1.12)
+ /////////////////////////////////////////////////////////////////////
+
+ public static final String MSR_CT_AAMVA = "AAMVA";
+ public static final String MSR_CT_BANK = "BANK";
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "retrieveCardProperty" Parameter Constants (added in 1.12)
+ /////////////////////////////////////////////////////////////////////
+
+ public static final String MSR_RCP_AccountNumber = "AccountNumber";
+ public static final String MSR_RCP_Address = "Address";
+ public static final String MSR_RCP_BirthDate = "BirthDate";
+ public static final String MSR_RCP_City = "City";
+ public static final String MSR_RCP_Class = "Class";
+ public static final String MSR_RCP_Endorsements = "Endorsements";
+ public static final String MSR_RCP_ExpirationDate = "ExpirationDate";
+ public static final String MSR_RCP_EyeColor = "EyeColor";
+ public static final String MSR_RCP_FirstName = "FirstName";
+ public static final String MSR_RCP_Gender = "Gender";
+ public static final String MSR_RCP_HairColor = "HairColor";
+ public static final String MSR_RCP_Height = "Height";
+ public static final String MSR_RCP_LicenseNumber = "LicenseNumber";
+ public static final String MSR_RCP_MiddleInitial = "MiddleInitial";
+ public static final String MSR_RCP_PostalCode = "PostalCode";
+ public static final String MSR_RCP_Restrictions = "Restrictions";
+ public static final String MSR_RCP_ServiceCode = "ServiceCode";
+ public static final String MSR_RCP_State = "State";
+ public static final String MSR_RCP_Suffix = "Suffix";
+ public static final String MSR_RCP_Surname = "Surname";
+ public static final String MSR_RCP_Title = "Title";
+ public static final String MSR_RCP_Weight = "Weight";
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "StatusUpdateEvent" Event: "Data" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int MSR_SUE_DEVICE_AUTHENTICATED = 11; // 1.12
+ public static final int MSR_SUE_DEVICE_DEAUTHENTICATED = 12; // 1.12
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ErrorEvent" Event: "ResultCodeExtended" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_EMSR_START = 1 + JposConst.JPOSERREXT;
+ public static final int JPOS_EMSR_END = 2 + JposConst.JPOSERREXT;
+ public static final int JPOS_EMSR_PARITY = 3 + JposConst.JPOSERREXT;
+ public static final int JPOS_EMSR_LRC = 4 + JposConst.JPOSERREXT;
+ public static final int JPOS_EMSR_DEVICE_AUTHENTICATION_FAILED = 5 + JposConst.JPOSERREXT; // 1.12
+ public static final int JPOS_EMSR_DEVICE_DEAUTHENTICATION_FAILED = 6 + JposConst.JPOSERREXT; // 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl110.java
new file mode 100644
index 0000000..aa92801
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl110.java
@@ -0,0 +1,51 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-08 JavaPOS Release 1.10 BS
+// 2006-Oct-23 JavaPOS 1.10.2 Update BS
+// Fixed type of writeTracks data parameter to be byte[][] as
+// UnifiedPOS has corrected the type from "string" to
+// "array of binary".
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MSRControl110 extends MSRControl19
+{
+ // Capabilities
+ public int getCapWritableTracks()
+ throws JposException;
+
+ // Properties
+ public int getEncodingMaxLength()
+ throws JposException;
+ public int getTracksToWrite()
+ throws JposException;
+ public void setTracksToWrite(int tracks)
+ throws JposException;
+
+ // Methods
+ public void clearInputProperties()
+ throws JposException;
+ public void writeTracks(byte[][] data, int timeout)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl111.java
new file mode 100644
index 0000000..11b2425
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl111.java
@@ -0,0 +1,35 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-08 JavaPOS release 1.11 BS
+// 2006-Oct-23 JavaPOS 1.10.2 Update BS
+// Fixed type of writeTracks data parameter to be byte[][] as
+// UnifiedPOS has corrected the type from "string" to
+// "array of binary".
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MSRControl111 extends MSRControl110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl112.java
new file mode 100644
index 0000000..9d4962b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl112.java
@@ -0,0 +1,71 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MSRControl112 extends MSRControl111
+{
+ // Capabilities
+ public String getCapCardAuthentication() throws JposException;
+ public int getCapDataEncryption() throws JposException;
+ public int getCapDeviceAuthentication() throws JposException;
+ public boolean getCapTrackDataMasking() throws JposException;
+
+ // Properties
+ public byte[] getAdditionalSecurityInformation() throws JposException;
+ public byte[] getCardAuthenticationData() throws JposException;
+ public int getCardAuthenticationDataLength() throws JposException;
+ public String getCardPropertyList() throws JposException;
+ public String getCardType() throws JposException;
+ public String getCardTypeList() throws JposException;
+ public int getDataEncryptionAlgorithm() throws JposException;
+ public void setDataEncryptionAlgorithm(int encryptAlgorithm) throws JposException;
+ public boolean getDeviceAuthenticated() throws JposException;
+ public int getDeviceAuthenticationProtocol() throws JposException;
+ public byte[] getTrack1EncryptedData() throws JposException;
+ public int getTrack1EncryptedDataLength() throws JposException;
+ public byte[] getTrack2EncryptedData() throws JposException;
+ public int getTrack2EncryptedDataLength() throws JposException;
+ public byte[] getTrack3EncryptedData() throws JposException;
+ public int getTrack3EncryptedDataLength() throws JposException;
+ public byte[] getTrack4EncryptedData() throws JposException;
+ public int getTrack4EncryptedDataLength() throws JposException;
+ public String getWriteCardType() throws JposException;
+ public void setWriteCardType(String cardType) throws JposException;
+
+ // Methods
+ public void authenticateDevice(byte[] response)
+ throws JposException;
+ public void deauthenticateDevice(byte[] response)
+ throws JposException;
+ public void retrieveCardProperty(String name,
+ String[] value)
+ throws JposException;
+ public void retrieveDeviceAuthenticationData(byte[] challenge)
+ throws JposException;
+ public void updateKey(String key,
+ String keyName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl113.java
new file mode 100644
index 0000000..e3bf247
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl113.java
@@ -0,0 +1,43 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+// 2011-Nov-15 JavaPOS Release 1.13.3 BS
+// Added new retrieveDeviceAuthenticationData with correct
+// parameter type. Old method left in place for compatibility.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MSRControl113 extends MSRControl112
+{
+ // The retrieveDeviceAuthenticationData method's challenge parameter
+ // was incorrectly typed as byte[] in version 1.12. Since the parameter
+ // is an in/out parameter, the type should be byte[][].
+ //
+ // The old version is left for Application and Device Service
+ // compatibility.
+
+ // Methods
+ public void retrieveDeviceAuthenticationData(byte[][] challenge)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl114.java
new file mode 100644
index 0000000..9b69d94
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to MSR for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MSRControl114 extends MSRControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl12.java b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl12.java
new file mode 100644
index 0000000..7773df9
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl12.java
@@ -0,0 +1,76 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRControl12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to MSR for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MSRControl12 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapISO() throws JposException;
+ public boolean getCapJISOne() throws JposException;
+ public boolean getCapJISTwo() throws JposException;
+
+ // Properties
+ public String getAccountNumber() throws JposException;
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public boolean getDecodeData() throws JposException;
+ public void setDecodeData(boolean decodeData) throws JposException;
+ public int getErrorReportingType() throws JposException;
+ public void setErrorReportingType(int errorReportingType)
+ throws JposException;
+ public String getExpirationDate() throws JposException;
+ public String getFirstName() throws JposException;
+ public String getMiddleInitial() throws JposException;
+ public boolean getParseDecodeData() throws JposException;
+ public void setParseDecodeData(boolean parseDecodeData)
+ throws JposException;
+ public String getServiceCode() throws JposException;
+ public String getSuffix() throws JposException;
+ public String getSurname() throws JposException;
+ public String getTitle() throws JposException;
+ public byte[] getTrack1Data() throws JposException;
+ public byte[] getTrack1DiscretionaryData() throws JposException;
+ public byte[] getTrack2Data() throws JposException;
+ public byte[] getTrack2DiscretionaryData() throws JposException;
+ public byte[] getTrack3Data() throws JposException;
+ public int getTracksToRead() throws JposException;
+ public void setTracksToRead(int tracksToRead) throws JposException;
+
+ // Methods
+ public void clearInput() throws JposException;
+
+ // Event listener methods
+ public void addDataListener(DataListener l);
+ public void removeDataListener(DataListener l);
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addErrorListener(ErrorListener l);
+ public void removeErrorListener(ErrorListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl13.java b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl13.java
new file mode 100644
index 0000000..f8bc0d8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl13.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRControl13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MSRControl13 extends MSRControl12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+
+ // Event listener methods
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl14.java b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl14.java
new file mode 100644
index 0000000..505578c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRControl14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MSRControl14 extends MSRControl13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl15.java b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl15.java
new file mode 100644
index 0000000..586c074
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl15.java
@@ -0,0 +1,38 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRControl15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 00-04-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MSRControl15 extends MSRControl14
+{
+ // Capabilities
+ public boolean getCapTransmitSentinels() throws JposException;
+
+ // Properties
+ public byte[] getTrack4Data() throws JposException;
+ public boolean getTransmitSentinels() throws JposException;
+ public void setTransmitSentinels(boolean transmitSentinels)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl16.java b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl16.java
new file mode 100644
index 0000000..0dca6db
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl16.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRControl16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-04-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MSRControl16 extends MSRControl15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl17.java
new file mode 100644
index 0000000..96b49a3
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl17.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRControl17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MSRControl17 extends MSRControl16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl18.java
new file mode 100644
index 0000000..ff84d10
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl18.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MSRControl18 extends MSRControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl19.java
new file mode 100644
index 0000000..bc642b3
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MSRControl19.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MSRControl19 extends MSRControl18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensor.java b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensor.java
new file mode 100644
index 0000000..d32e4a6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensor.java
@@ -0,0 +1,804 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MotionSensor.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class MotionSensor
+ extends BaseJposControl
+ implements MotionSensorControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected MotionSensorService17 service17;
+ protected MotionSensorService18 service18;
+ protected MotionSensorService19 service19;
+ protected MotionSensorService110 service110;
+ protected MotionSensorService111 service111;
+ protected MotionSensorService112 service112;
+ protected MotionSensorService113 service113;
+ protected MotionSensorService114 service114;
+ protected Vector directIOListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public MotionSensor()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS MotionSensor Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ directIOListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public boolean getMotion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getMotion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTimeout()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getTimeout();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTimeout(int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.setTimeout(timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void waitForMotion(int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.waitForMotion(timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new MotionSensorCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (MotionSensorService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MotionSensorService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (MotionSensorService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MotionSensorService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (MotionSensorService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MotionSensorService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (MotionSensorService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MotionSensorService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (MotionSensorService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MotionSensorService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (MotionSensorService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MotionSensorService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (MotionSensorService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MotionSensorService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (MotionSensorService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement MotionSensorService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class MotionSensorCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)MotionSensor.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(MotionSensor.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(MotionSensor.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensor.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensor.manifest.stub
new file mode 100644
index 0000000..84279c2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensor.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/MotionSensor.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorBeanInfo.java
new file mode 100644
index 0000000..596aa07
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorBeanInfo.java
@@ -0,0 +1,91 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// MotionSensorBeanInfo.java - Bean information for the JavaPOS MotionSensor
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class MotionSensorBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.MotionSensor.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.MotionSensor.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapUpdateFirmware"),
+
+ // Properties
+ makeProperty("Motion"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("Timeout"),
+
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.MotionSensor.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("DirectIO"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorConst.java
new file mode 100644
index 0000000..ca1b626
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorConst.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MotionSensorConst
+//
+// Motion Sensor constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface MotionSensorConst
+{
+ //###################################################################
+ //#### Motion Sensor Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // Status Update Event "Status" Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int MOTION_M_PRESENT = 1;
+ public static final int MOTION_M_ABSENT = 2;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl110.java
new file mode 100644
index 0000000..7f16191
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl110.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MotionSensorControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Motion Sensor for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MotionSensorControl110 extends MotionSensorControl19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl111.java
new file mode 100644
index 0000000..06a96ad
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MotionSensorControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Motion Sensor for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MotionSensorControl111 extends MotionSensorControl110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl112.java
new file mode 100644
index 0000000..9970ba2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MotionSensorControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Motion Sensor for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MotionSensorControl112 extends MotionSensorControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl113.java
new file mode 100644
index 0000000..9333a1c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MotionSensorControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Motion Sensor for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MotionSensorControl113 extends MotionSensorControl112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl114.java
new file mode 100644
index 0000000..844f4f2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MotionSensorControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Motion Sensor for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MotionSensorControl114 extends MotionSensorControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl17.java
new file mode 100644
index 0000000..16959e8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl17.java
@@ -0,0 +1,49 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MotionSensorControl17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Motion Sensor for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MotionSensorControl17 extends BaseControl
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public boolean getMotion() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getTimeout() throws JposException;
+ public void setTimeout(int timeout) throws JposException;
+
+ // Methods
+ public void waitForMotion(int timeout) throws JposException;
+
+ // Event listener methods
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl18.java
new file mode 100644
index 0000000..3ac3348
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl18.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MotionSensorControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Motion Sensor for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MotionSensorControl18 extends MotionSensorControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl19.java
new file mode 100644
index 0000000..4680a22
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/MotionSensorControl19.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MotionSensorControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Motion Sensor for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface MotionSensorControl19 extends MotionSensorControl18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PINPad.java b/org.eclipse.osbp.fork.jpos/src/jpos/PINPad.java
new file mode 100644
index 0000000..d22220e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PINPad.java
@@ -0,0 +1,2020 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPad.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class PINPad
+ extends BaseJposControl
+ implements PINPadControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected PINPadService13 service13;
+ protected PINPadService14 service14;
+ protected PINPadService15 service15;
+ protected PINPadService16 service16;
+ protected PINPadService17 service17;
+ protected PINPadService18 service18;
+ protected PINPadService19 service19;
+ protected PINPadService110 service110;
+ protected PINPadService111 service111;
+ protected PINPadService112 service112;
+ protected PINPadService113 service113;
+ protected PINPadService114 service114;
+ protected Vector dataListeners;
+ protected Vector directIOListeners;
+ protected Vector errorListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public PINPad()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS PINPad Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service13 = null;
+ //service14 = null;
+ //service15 = null;
+ //service16 = null;
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ dataListeners = new Vector();
+ directIOListeners = new Vector();
+ errorListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public int getCapDisplay()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapDisplay();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapLanguage()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapLanguage();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapKeyboard()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapKeyboard();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapMACCalculation()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapMACCalculation();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapTone()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapTone();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public String getAccountNumber()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getAccountNumber();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAccountNumber(String accountNumber)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setAccountNumber(accountNumber);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getAdditionalSecurityInformation()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getAdditionalSecurityInformation();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public long getAmount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getAmount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAmount(long amount)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setAmount(amount);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getAvailableLanguagesList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getAvailableLanguagesList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getAvailablePromptsList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getAvailablePromptsList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDataEventEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getDataEventEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setDataEventEnabled(dataEventEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getEncryptedPIN()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getEncryptedPIN();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMaximumPINLength()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getMaximumPINLength();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setMaximumPINLength(int maximumPINLength)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setMaximumPINLength(maximumPINLength);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getMerchantID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getMerchantID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setMerchantID(String merchantID)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setMerchantID(merchantID);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMinimumPINLength()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getMinimumPINLength();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setMinimumPINLength(int minimumPINLength)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setMinimumPINLength(minimumPINLength);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getPINEntryEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPINEntryEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPrompt()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPrompt();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPrompt(int propmpt)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setPrompt(propmpt);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getPromptLanguage()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPromptLanguage();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPromptLanguage(String promptLanguage)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setPromptLanguage(promptLanguage);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getTerminalID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getTerminalID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTerminalID(String terminalID)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setTerminalID(terminalID);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getTrack1Data()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getTrack1Data();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTrack1Data(byte[] track1Data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setTrack1Data(track1Data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getTrack2Data()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getTrack2Data();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTrack2Data(byte[] track2Data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setTrack2Data(track2Data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getTrack3Data()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getTrack3Data();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTrack3Data(byte[] track3Data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setTrack3Data(track3Data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTransactionType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getTransactionType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTransactionType(int transactionType)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setTransactionType(transactionType);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getTrack4Data()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getTrack4Data();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTrack4Data(byte[] track4Data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setTrack4Data(track4Data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void beginEFTTransaction(String PINPadSystem, int transactionHost)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.beginEFTTransaction(PINPadSystem, transactionHost);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.clearInput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void computeMAC(String inMsg, String[] outMsg)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.computeMAC(inMsg, outMsg);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void enablePINEntry()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.enablePINEntry();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endEFTTransaction(int completionCode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.endEFTTransaction(completionCode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateKey(int keyNum, String key)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.updateKey(keyNum, key);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void verifyMAC(String message)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.verifyMAC(message);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInputProperties()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.10.0
+ if(serviceVersion < deviceVersion110)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.10.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.clearInputProperties();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new PINPadCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service13 = null;
+ service14 = null;
+ service15 = null;
+ service16 = null;
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion13)
+ {
+ try
+ {
+ service13 = (PINPadService13)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PINPadService13 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion14)
+ {
+ try
+ {
+ service14 = (PINPadService14)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PINPadService14 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion15)
+ {
+ try
+ {
+ service15 = (PINPadService15)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PINPadService15 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion16)
+ {
+ try
+ {
+ service16 = (PINPadService16)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PINPadService16 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (PINPadService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PINPadService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (PINPadService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PINPadService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (PINPadService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PINPadService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (PINPadService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PINPadService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (PINPadService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PINPadService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (PINPadService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PINPadService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (PINPadService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PINPadService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (PINPadService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PINPadService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.addElement(l);
+ }
+ }
+
+ public void removeDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.removeElement(l);
+ }
+ }
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.addElement(l);
+ }
+ }
+
+ public void removeErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class PINPadCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)PINPad.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ synchronized(PINPad.this.dataListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < dataListeners.size(); x++)
+ {
+ ((DataListener)dataListeners.elementAt(x)).dataOccurred(e);
+ }
+ }
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(PINPad.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ synchronized(PINPad.this.errorListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < errorListeners.size(); x++)
+ {
+ ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e);
+ }
+ }
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(PINPad.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PINPad.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/PINPad.manifest.stub
new file mode 100644
index 0000000..5edf1af
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PINPad.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/PINPad.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PINPadBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadBeanInfo.java
new file mode 100644
index 0000000..4241670
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadBeanInfo.java
@@ -0,0 +1,116 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// PINPadBeanInfo.java - Bean information for the JavaPOS PINPad
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class PINPadBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.PINPad.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.PINPad.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapDisplay"),
+ makeProperty("CapLanguage"),
+ makeProperty("CapKeyboard"),
+ makeProperty("CapMACCalculation"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapTone"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapUpdateFirmware"),
+
+ // Properties
+ makeProperty("AccountNumber"),
+ makeProperty("AdditionalSecurityInformation"),
+ makeProperty("Amount"),
+ makeProperty("AvailableLanguagesList"),
+ makeProperty("AvailablePromptsList"),
+ makeProperty("DataCount"),
+ makeProperty("DataEventEnabled"),
+ makeProperty("EncryptedPIN"),
+ makeProperty("MaximumPINLength"),
+ makeProperty("MerchantID"),
+ makeProperty("MinimumPINLength"),
+ makeProperty("PINEntryEnabled"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("Prompt"),
+ makeProperty("PromptLanguage"),
+ makeProperty("TerminalID"),
+ makeProperty("Track1Data"),
+ makeProperty("Track2Data"),
+ makeProperty("Track3Data"),
+ makeProperty("TransactionType"),
+ makeProperty("Track4Data"),
+
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.PINPad.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("Data"),
+ makeEvent("DirectIO"),
+ makeEvent("Error"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PINPadConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadConst.java
new file mode 100644
index 0000000..c7fbe88
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadConst.java
@@ -0,0 +1,97 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadConst
+//
+// PIN Pad constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface PINPadConst
+{
+ /////////////////////////////////////////////////////////////////////
+ // "CapDisplay" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PPAD_DISP_UNRESTRICTED = 1;
+ public static final int PPAD_DISP_PINRESTRICTED = 2;
+ public static final int PPAD_DISP_RESTRICTED_LIST = 3;
+ public static final int PPAD_DISP_RESTRICTED_ORDER = 4;
+ public static final int PPAD_DISP_NONE = 5;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "AvailablePromptsList" and "Prompt" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PPAD_MSG_ENTERPIN = 1;
+ public static final int PPAD_MSG_PLEASEWAIT = 2;
+ public static final int PPAD_MSG_ENTERVALIDPIN = 3;
+ public static final int PPAD_MSG_RETRIESEXCEEDED = 4;
+ public static final int PPAD_MSG_APPROVED = 5;
+ public static final int PPAD_MSG_DECLINED = 6;
+ public static final int PPAD_MSG_CANCELED = 7;
+ public static final int PPAD_MSG_AMOUNTOK = 8;
+ public static final int PPAD_MSG_NOTREADY = 9;
+ public static final int PPAD_MSG_IDLE = 10;
+ public static final int PPAD_MSG_SLIDE_CARD = 11;
+ public static final int PPAD_MSG_INSERTCARD = 12;
+ public static final int PPAD_MSG_SELECTCARDTYPE = 13;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapLanguage" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PPAD_LANG_NONE = 1;
+ public static final int PPAD_LANG_ONE = 2;
+ public static final int PPAD_LANG_PINRESTRICTED = 3;
+ public static final int PPAD_LANG_UNRESTRICTED = 4;
+
+ /////////////////////////////////////////////////////////////////////
+ // "TransactionType" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PPAD_TRANS_DEBIT = 1;
+ public static final int PPAD_TRANS_CREDIT = 2;
+ public static final int PPAD_TRANS_INQ = 3;
+ public static final int PPAD_TRANS_RECONCILE = 4;
+ public static final int PPAD_TRANS_ADMIN = 5;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "EndEFTTransaction" Method Completion Code Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PPAD_EFT_NORMAL = 1;
+ public static final int PPAD_EFT_ABNORMAL = 2;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "DataEvent" Event Status Constants
+ /////////////////////////////////////////////////////////////////////
+ public static final int PPAD_SUCCESS = 1;
+ public static final int PPAD_CANCEL = 2;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ErrorCodeExtended" Property Constants for PINPad
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_EPPAD_BAD_KEY = 1 + JposConst.JPOSERREXT;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl110.java
new file mode 100644
index 0000000..0cae6d1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl110.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PINPadControl110 extends PINPadControl19
+{
+ // Methods
+ public void clearInputProperties()
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl111.java
new file mode 100644
index 0000000..7a62cc8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PINPadControl111 extends PINPadControl110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl112.java
new file mode 100644
index 0000000..3dff6c8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PINPadControl112 extends PINPadControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl113.java
new file mode 100644
index 0000000..2244d1d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PINPadControl113 extends PINPadControl112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl114.java
new file mode 100644
index 0000000..c70708d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to PIN Pad for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PINPadControl114 extends PINPadControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl13.java b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl13.java
new file mode 100644
index 0000000..435c957
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl13.java
@@ -0,0 +1,96 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadControl13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PINPadControl13 extends BaseControl
+{
+ // Capabilities
+ public int getCapDisplay() throws JposException;
+ public int getCapLanguage() throws JposException;
+ public boolean getCapKeyboard() throws JposException;
+ public boolean getCapMACCalculation() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapTone() throws JposException;
+
+ // Properties
+ public String getAccountNumber() throws JposException;
+ public void setAccountNumber(String accountNumber) throws JposException;
+ public String getAdditionalSecurityInformation() throws JposException;
+ public long getAmount() throws JposException;
+ public void setAmount(long amount) throws JposException;
+ public String getAvailableLanguagesList() throws JposException;
+ public String getAvailablePromptsList() throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public String getEncryptedPIN() throws JposException;
+ public int getMaximumPINLength() throws JposException;
+ public void setMaximumPINLength(int maximumPINLength) throws JposException;
+ public String getMerchantID() throws JposException;
+ public void setMerchantID(String merchantID) throws JposException;
+ public int getMinimumPINLength() throws JposException;
+ public void setMinimumPINLength(int minimumPINLength) throws JposException;
+ public boolean getPINEntryEnabled() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getPrompt() throws JposException;
+ public void setPrompt(int propmpt) throws JposException;
+ public String getPromptLanguage() throws JposException;
+ public void setPromptLanguage(String promptLanguage) throws JposException;
+ public String getTerminalID() throws JposException;
+ public void setTerminalID(String terminalID) throws JposException;
+ public byte[] getTrack1Data() throws JposException;
+ public void setTrack1Data(byte[] track1Data) throws JposException;
+ public byte[] getTrack2Data() throws JposException;
+ public void setTrack2Data(byte[] track2Data) throws JposException;
+ public byte[] getTrack3Data() throws JposException;
+ public void setTrack3Data(byte[] track3Data) throws JposException;
+ public int getTransactionType() throws JposException;
+ public void setTransactionType(int transactionType) throws JposException;
+
+ // Methods
+ public void beginEFTTransaction(String PINPadSystem, int transactionHost)
+ throws JposException;
+ public void clearInput() throws JposException;
+ public void computeMAC(String inMsg, String[] outMsg)
+ throws JposException;
+ public void enablePINEntry() throws JposException;
+ public void endEFTTransaction(int completionCode) throws JposException;
+ public void updateKey(int keyNum, String key) throws JposException;
+ public void verifyMAC(String message) throws JposException;
+
+ // Event listener methods
+ public void addDataListener(DataListener l);
+ public void removeDataListener(DataListener l);
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addErrorListener(ErrorListener l);
+ public void removeErrorListener(ErrorListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl14.java b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl14.java
new file mode 100644
index 0000000..e27dc0c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadControl14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PINPadControl14 extends PINPadControl13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl15.java b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl15.java
new file mode 100644
index 0000000..ece289a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl15.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadControl15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 00-04-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PINPadControl15 extends PINPadControl14
+{
+ // Properties
+ public byte[] getTrack4Data() throws JposException;
+ public void setTrack4Data(byte[] track4Data) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl16.java b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl16.java
new file mode 100644
index 0000000..50f8ae8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl16.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadControl16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-04-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PINPadControl16 extends PINPadControl15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl17.java
new file mode 100644
index 0000000..d398883
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl17.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadControl17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PINPadControl17 extends PINPadControl16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl18.java
new file mode 100644
index 0000000..e8415d7
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl18.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PINPadControl18 extends PINPadControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl19.java
new file mode 100644
index 0000000..cf7a4d4
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PINPadControl19.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PINPadControl19 extends PINPadControl18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboard.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboard.java
new file mode 100644
index 0000000..527a43f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboard.java
@@ -0,0 +1,1144 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboard.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class POSKeyboard
+ extends BaseJposControl
+ implements POSKeyboardControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected POSKeyboardService12 service12;
+ protected POSKeyboardService13 service13;
+ protected POSKeyboardService14 service14;
+ protected POSKeyboardService15 service15;
+ protected POSKeyboardService16 service16;
+ protected POSKeyboardService17 service17;
+ protected POSKeyboardService18 service18;
+ protected POSKeyboardService19 service19;
+ protected POSKeyboardService110 service110;
+ protected POSKeyboardService111 service111;
+ protected POSKeyboardService112 service112;
+ protected POSKeyboardService113 service113;
+ protected POSKeyboardService114 service114;
+ protected Vector dataListeners;
+ protected Vector directIOListeners;
+ protected Vector errorListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public POSKeyboard()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS POSKeyboard Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service12 = null;
+ //service13 = null;
+ //service14 = null;
+ //service15 = null;
+ //service16 = null;
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ dataListeners = new Vector();
+ directIOListeners = new Vector();
+ errorListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapKeyUp()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapKeyUp();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public boolean getAutoDisable()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getAutoDisable();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAutoDisable(boolean autoDisable)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setAutoDisable(autoDisable);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDataEventEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getDataEventEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setDataEventEnabled(dataEventEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getEventTypes()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getEventTypes();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setEventTypes(int eventTypes)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setEventTypes(eventTypes);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPOSKeyData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getPOSKeyData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPOSKeyEventType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getPOSKeyEventType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void clearInput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.clearInput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new POSKeyboardCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service12 = null;
+ service13 = null;
+ service14 = null;
+ service15 = null;
+ service16 = null;
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion12)
+ {
+ try
+ {
+ service12 = (POSKeyboardService12)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSKeyboardService12 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion13)
+ {
+ try
+ {
+ service13 = (POSKeyboardService13)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSKeyboardService13 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion14)
+ {
+ try
+ {
+ service14 = (POSKeyboardService14)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSKeyboardService14 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion15)
+ {
+ try
+ {
+ service15 = (POSKeyboardService15)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSKeyboardService15 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion16)
+ {
+ try
+ {
+ service16 = (POSKeyboardService16)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSKeyboardService16 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (POSKeyboardService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSKeyboardService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (POSKeyboardService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSKeyboardService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (POSKeyboardService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSKeyboardService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (POSKeyboardService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSKeyboardService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (POSKeyboardService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSKeyboardService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (POSKeyboardService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSKeyboardService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (POSKeyboardService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSKeyboardService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (POSKeyboardService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSKeyboardService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.addElement(l);
+ }
+ }
+
+ public void removeDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.removeElement(l);
+ }
+ }
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.addElement(l);
+ }
+ }
+
+ public void removeErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class POSKeyboardCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)POSKeyboard.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ synchronized(POSKeyboard.this.dataListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < dataListeners.size(); x++)
+ {
+ ((DataListener)dataListeners.elementAt(x)).dataOccurred(e);
+ }
+ }
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(POSKeyboard.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ synchronized(POSKeyboard.this.errorListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < errorListeners.size(); x++)
+ {
+ ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e);
+ }
+ }
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(POSKeyboard.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboard.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboard.manifest.stub
new file mode 100644
index 0000000..b580a49
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboard.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/POSKeyboard.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardBeanInfo.java
new file mode 100644
index 0000000..dbb351b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardBeanInfo.java
@@ -0,0 +1,97 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// POSKeyboardBeanInfo.java - Bean information for the JavaPOS POSKeyboard
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class POSKeyboardBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.POSKeyboard.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.POSKeyboard.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapKeyUp"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapUpdateFirmware"),
+
+ // Properties
+ makeProperty("AutoDisable"),
+ makeProperty("DataCount"),
+ makeProperty("DataEventEnabled"),
+ makeProperty("EventTypes"),
+ makeProperty("POSKeyData"),
+ makeProperty("POSKeyEventType"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.POSKeyboard.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("Data"),
+ makeEvent("DirectIO"),
+ makeEvent("Error"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardConst.java
new file mode 100644
index 0000000..3623cc8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardConst.java
@@ -0,0 +1,45 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardConst
+//
+// POS Keyboard constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface POSKeyboardConst
+{
+ //###################################################################
+ //#### POS Keyboard Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // "EventTypes" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int KBD_ET_DOWN = 1;
+ public static final int KBD_ET_DOWN_UP = 2;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "POSKeyEventType" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int KBD_KET_KEYDOWN = 1;
+ public static final int KBD_KET_KEYUP = 2;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl110.java
new file mode 100644
index 0000000..6170710
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl110.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSKeyboardControl110 extends POSKeyboardControl19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl111.java
new file mode 100644
index 0000000..d5bf42a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSKeyboardControl111 extends POSKeyboardControl110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl112.java
new file mode 100644
index 0000000..9a9f5bd
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSKeyboardControl112 extends POSKeyboardControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl113.java
new file mode 100644
index 0000000..ea7ed73
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSKeyboardControl113 extends POSKeyboardControl112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl114.java
new file mode 100644
index 0000000..126ea47
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to POS Keyboard for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSKeyboardControl114 extends POSKeyboardControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl12.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl12.java
new file mode 100644
index 0000000..62ced0a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl12.java
@@ -0,0 +1,55 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardControl12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to POS Keyboard for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSKeyboardControl12 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapKeyUp() throws JposException;
+
+ // Properties
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public int getEventTypes() throws JposException;
+ public void setEventTypes(int eventTypes) throws JposException;
+ public int getPOSKeyData() throws JposException;
+ public int getPOSKeyEventType() throws JposException;
+
+ // Methods
+ public void clearInput() throws JposException;
+
+ // Event listener methods
+ public void addDataListener(DataListener l);
+ public void removeDataListener(DataListener l);
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addErrorListener(ErrorListener l);
+ public void removeErrorListener(ErrorListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl13.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl13.java
new file mode 100644
index 0000000..1be5932
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl13.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardControl13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSKeyboardControl13 extends POSKeyboardControl12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+
+ // Event listener methods
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl14.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl14.java
new file mode 100644
index 0000000..d83272c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardControl14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSKeyboardControl14 extends POSKeyboardControl13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl15.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl15.java
new file mode 100644
index 0000000..2b661b3
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl15.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardControl15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 00-04-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSKeyboardControl15 extends POSKeyboardControl14
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl16.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl16.java
new file mode 100644
index 0000000..84a552a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl16.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardControl16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-04-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSKeyboardControl16 extends POSKeyboardControl15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl17.java
new file mode 100644
index 0000000..749856f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl17.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardControl17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSKeyboardControl17 extends POSKeyboardControl16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl18.java
new file mode 100644
index 0000000..fc91ae0
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl18.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSKeyboardControl18 extends POSKeyboardControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl19.java
new file mode 100644
index 0000000..f98335c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSKeyboardControl19.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSKeyboardControl19 extends POSKeyboardControl18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPower.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPower.java
new file mode 100644
index 0000000..c428fa8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPower.java
@@ -0,0 +1,1518 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPower.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class POSPower
+ extends BaseJposControl
+ implements POSPowerControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected POSPowerService15 service15;
+ protected POSPowerService16 service16;
+ protected POSPowerService17 service17;
+ protected POSPowerService18 service18;
+ protected POSPowerService19 service19;
+ protected POSPowerService110 service110;
+ protected POSPowerService111 service111;
+ protected POSPowerService112 service112;
+ protected POSPowerService113 service113;
+ protected POSPowerService114 service114;
+ protected Vector directIOListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public POSPower()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS POSPower Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service15 = null;
+ //service16 = null;
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ directIOListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapFanAlarm()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapFanAlarm();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapHeatAlarm()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapHeatAlarm();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapQuickCharge()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapQuickCharge();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapShutdownPOS()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapShutdownPOS();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapUPSChargeState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapUPSChargeState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapBatteryCapacityRemaining()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapBatteryCapacityRemaining();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRestartPOS()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapRestartPOS();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStandbyPOS()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapStandbyPOS();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSuspendPOS()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapSuspendPOS();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapVariableBatteryCriticallyLowThreshold()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapVariableBatteryCriticallyLowThreshold();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapVariableBatteryLowThreshold()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapVariableBatteryLowThreshold();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public int getEnforcedShutdownDelayTime()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getEnforcedShutdownDelayTime();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setEnforcedShutdownDelayTime(int delay)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setEnforcedShutdownDelayTime(delay);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerFailDelayTime()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getPowerFailDelayTime();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getQuickChargeMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getQuickChargeMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getQuickChargeTime()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getQuickChargeTime();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getUPSChargeState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getUPSChargeState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getBatteryCapacityRemaining()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getBatteryCapacityRemaining();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getBatteryCriticallyLowThreshold()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getBatteryCriticallyLowThreshold();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setBatteryCriticallyLowThreshold(int threshold)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.setBatteryCriticallyLowThreshold(threshold);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getBatteryLowThreshold()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getBatteryLowThreshold();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setBatteryLowThreshold(int threshold)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.setBatteryLowThreshold(threshold);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerSource()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getPowerSource();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void shutdownPOS()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.shutdownPOS();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void restartPOS()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.restartPOS();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void standbyPOS(int reason)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.standbyPOS(reason);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void suspendPOS(int reason)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.suspendPOS(reason);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new POSPowerCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service15 = null;
+ service16 = null;
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion15)
+ {
+ try
+ {
+ service15 = (POSPowerService15)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPowerService15 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion16)
+ {
+ try
+ {
+ service16 = (POSPowerService16)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPowerService16 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (POSPowerService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPowerService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (POSPowerService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPowerService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (POSPowerService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPowerService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (POSPowerService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPowerService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (POSPowerService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPowerService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (POSPowerService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPowerService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (POSPowerService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPowerService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (POSPowerService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPowerService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class POSPowerCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)POSPower.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(POSPower.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(POSPower.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPower.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/POSPower.manifest.stub
new file mode 100644
index 0000000..1b8ac0f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPower.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/POSPower.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerBeanInfo.java
new file mode 100644
index 0000000..466dba1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerBeanInfo.java
@@ -0,0 +1,108 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// POSPowerBeanInfo.java - Bean information for the JavaPOS POSPower
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class POSPowerBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.POSPower.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.POSPower.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapFanAlarm"),
+ makeProperty("CapHeatAlarm"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapQuickCharge"),
+ makeProperty("CapShutdownPOS"),
+ makeProperty("CapUPSChargeState"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapBatteryCapacityRemaining"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapRestartPOS"),
+ makeProperty("CapStandbyPOS"),
+ makeProperty("CapSuspendPOS"),
+ makeProperty("CapUpdateFirmware"),
+ makeProperty("CapVariableBatteryCriticallyLowThreshold"),
+ makeProperty("CapVariableBatteryLowThreshold"),
+
+ // Properties
+ makeProperty("EnforcedShutdownDelayTime"),
+ makeProperty("PowerFailDelayTime"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("QuickChargeMode"),
+ makeProperty("QuickChargeTime"),
+ makeProperty("UPSChargeState"),
+ makeProperty("BatteryCapacityRemaining"),
+ makeProperty("BatteryCriticallyLowThreshold"),
+ makeProperty("BatteryLowThreshold"),
+ makeProperty("PowerSource")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.POSPower.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("DirectIO"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerConst.java
new file mode 100644
index 0000000..d20f14e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerConst.java
@@ -0,0 +1,97 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPowerConst
+//
+// POSPower constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-18 JavaPOS Release 1.5 BS
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+// Added the following constants:
+// PWR_SOURCE_NA
+// PWR_SOURCE_AC
+// PWR_SOURCE_BATTERY
+// PWR_SOURCE_BACKUP
+// PWR_REASON_REQUEST
+// PWR_REASON_ALLOW
+// PWR_REASON_DENY
+// PWR_SUE_BAT_LOW
+// PWR_SUE_BAT_CRITICAL
+// PWR_SUE_BAT_CAPACITY_REMAINING
+// PWR_SUE_RESTART
+// PWR_SUE_STANDBY
+// PWR_SUE_USER_STANDBY
+// PWR_SUE_SUSPEND
+// PWR_SUE_USER_SUSPEND
+// PWR_SUE_PWR_SOURCE
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface POSPowerConst
+{
+ /////////////////////////////////////////////////////////////////////
+ // "CapUPSChargeState" Capability and "UPSChargeState" Property
+ // Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PWR_UPS_FULL = 0x00000001;
+ public static final int PWR_UPS_WARNING = 0x00000002;
+ public static final int PWR_UPS_LOW = 0x00000004;
+ public static final int PWR_UPS_CRITICAL = 0x00000008;
+
+ /////////////////////////////////////////////////////////////////////
+ // "PowerSource" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PWR_SOURCE_NA = 1;
+ public static final int PWR_SOURCE_AC = 2;
+ public static final int PWR_SOURCE_BATTERY = 3;
+ public static final int PWR_SOURCE_BACKUP = 4;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "restartPOS", "standbyPOS", "suspendPOS" Methods:
+ // "reason" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PWR_REASON_REQUEST = 1;
+ public static final int PWR_REASON_ALLOW = 2;
+ public static final int PWR_REASON_DENY = 3;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // Status Update Event: "Status" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PWR_SUE_UPS_FULL = 11;
+ public static final int PWR_SUE_UPS_WARNING = 12;
+ public static final int PWR_SUE_UPS_LOW = 13;
+ public static final int PWR_SUE_UPS_CRITICAL = 14;
+ public static final int PWR_SUE_FAN_STOPPED = 15;
+ public static final int PWR_SUE_FAN_RUNNING = 16;
+ public static final int PWR_SUE_TEMPERATURE_HIGH = 17;
+ public static final int PWR_SUE_TEMPERATURE_OK = 18;
+ public static final int PWR_SUE_SHUTDOWN = 19;
+ public static final int PWR_SUE_BAT_LOW = 20;
+ public static final int PWR_SUE_BAT_CRITICAL = 21;
+ public static final int PWR_SUE_BAT_CAPACITY_REMAINING = 22;
+ public static final int PWR_SUE_RESTART = 23;
+ public static final int PWR_SUE_STANDBY = 24;
+ public static final int PWR_SUE_USER_STANDBY = 25;
+ public static final int PWR_SUE_SUSPEND = 26;
+ public static final int PWR_SUE_USER_SUSPEND = 27;
+ public static final int PWR_SUE_PWR_SOURCE = 28;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl110.java
new file mode 100644
index 0000000..51e085f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl110.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPowerControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POSPower for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPowerControl110 extends POSPowerControl19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl111.java
new file mode 100644
index 0000000..87c39da
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPowerControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POSPower for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPowerControl111 extends POSPowerControl110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl112.java
new file mode 100644
index 0000000..7b25649
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPowerControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POSPower for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPowerControl112 extends POSPowerControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl113.java
new file mode 100644
index 0000000..33251ed
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPowerControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POSPower for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPowerControl113 extends POSPowerControl112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl114.java
new file mode 100644
index 0000000..d86c2ee
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPowerControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to POSPower for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPowerControl114 extends POSPowerControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl15.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl15.java
new file mode 100644
index 0000000..ff70c54
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl15.java
@@ -0,0 +1,58 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPowerControl15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POSPower for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-18 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPowerControl15 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapFanAlarm() throws JposException;
+ public boolean getCapHeatAlarm() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapQuickCharge() throws JposException;
+ public boolean getCapShutdownPOS() throws JposException;
+ public int getCapUPSChargeState() throws JposException;
+
+ // Properties
+ public int getEnforcedShutdownDelayTime() throws JposException;
+ public void setEnforcedShutdownDelayTime(int delay)
+ throws JposException;
+ public int getPowerFailDelayTime() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public boolean getQuickChargeMode() throws JposException;
+ public int getQuickChargeTime() throws JposException;
+ public int getUPSChargeState() throws JposException;
+
+ // Methods
+ public void shutdownPOS() throws JposException;
+
+ // Event listener methods
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl16.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl16.java
new file mode 100644
index 0000000..ca76031
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl16.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPowerControl16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POSPower for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPowerControl16 extends POSPowerControl15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl17.java
new file mode 100644
index 0000000..dc7f161
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl17.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPowerControl17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POSPower for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPowerControl17 extends POSPowerControl16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl18.java
new file mode 100644
index 0000000..576acfc
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl18.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPowerControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POSPower for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPowerControl18 extends POSPowerControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl19.java
new file mode 100644
index 0000000..b42dc4d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPowerControl19.java
@@ -0,0 +1,59 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPowerControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POSPower for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPowerControl19 extends POSPowerControl18
+{
+ // Capabilities
+ public boolean getCapBatteryCapacityRemaining() throws JposException;
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapRestartPOS() throws JposException;
+ public boolean getCapStandbyPOS() throws JposException;
+ public boolean getCapSuspendPOS() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapVariableBatteryCriticallyLowThreshold() throws JposException;
+ public boolean getCapVariableBatteryLowThreshold() throws JposException;
+
+ // Properties
+ public int getBatteryCapacityRemaining() throws JposException;
+ public int getBatteryCriticallyLowThreshold() throws JposException;
+ public void setBatteryCriticallyLowThreshold(int threshold) throws JposException;
+ public int getBatteryLowThreshold() throws JposException;
+ public void setBatteryLowThreshold(int threshold) throws JposException;
+ public int getPowerSource() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void restartPOS()
+ throws JposException;
+ public void standbyPOS(int reason)
+ throws JposException;
+ public void suspendPOS(int reason)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinter.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinter.java
new file mode 100644
index 0000000..4fbbc2b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinter.java
@@ -0,0 +1,5580 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinter.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class POSPrinter
+ extends BaseJposControl
+ implements POSPrinterControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected POSPrinterService12 service12;
+ protected POSPrinterService13 service13;
+ protected POSPrinterService14 service14;
+ protected POSPrinterService15 service15;
+ protected POSPrinterService16 service16;
+ protected POSPrinterService17 service17;
+ protected POSPrinterService18 service18;
+ protected POSPrinterService19 service19;
+ protected POSPrinterService110 service110;
+ protected POSPrinterService111 service111;
+ protected POSPrinterService112 service112;
+ protected POSPrinterService113 service113;
+ protected POSPrinterService114 service114;
+ protected Vector directIOListeners;
+ protected Vector errorListeners;
+ protected Vector outputCompleteListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public POSPrinter()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS POSPrinter Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service12 = null;
+ //service13 = null;
+ //service14 = null;
+ //service15 = null;
+ //service16 = null;
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ directIOListeners = new Vector();
+ errorListeners = new Vector();
+ outputCompleteListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public int getCapCharacterSet()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapCharacterSet();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapConcurrentJrnRec()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapConcurrentJrnRec();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapConcurrentJrnSlp()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapConcurrentJrnSlp();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapConcurrentRecSlp()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapConcurrentRecSlp();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCoverSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapCoverSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapJrn2Color()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapJrn2Color();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapJrnBold()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapJrnBold();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapJrnDhigh()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapJrnDhigh();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapJrnDwide()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapJrnDwide();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapJrnDwideDhigh()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapJrnDwideDhigh();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapJrnEmptySensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapJrnEmptySensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapJrnItalic()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapJrnItalic();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapJrnNearEndSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapJrnNearEndSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapJrnPresent()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapJrnPresent();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapJrnUnderline()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapJrnUnderline();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRec2Color()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapRec2Color();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRecBarCode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapRecBarCode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRecBitmap()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapRecBitmap();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRecBold()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapRecBold();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRecDhigh()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapRecDhigh();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRecDwide()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapRecDwide();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRecDwideDhigh()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapRecDwideDhigh();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRecEmptySensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapRecEmptySensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRecItalic()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapRecItalic();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRecLeft90()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapRecLeft90();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRecNearEndSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapRecNearEndSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRecPapercut()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapRecPapercut();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRecPresent()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapRecPresent();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRecRight90()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapRecRight90();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRecRotate180()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapRecRotate180();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRecStamp()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapRecStamp();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRecUnderline()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapRecUnderline();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlp2Color()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapSlp2Color();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpBarCode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapSlpBarCode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpBitmap()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapSlpBitmap();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpBold()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapSlpBold();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpDhigh()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapSlpDhigh();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpDwide()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapSlpDwide();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpDwideDhigh()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapSlpDwideDhigh();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpEmptySensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapSlpEmptySensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpFullslip()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapSlpFullslip();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpItalic()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapSlpItalic();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpLeft90()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapSlpLeft90();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpNearEndSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapSlpNearEndSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpPresent()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapSlpPresent();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpRight90()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapSlpRight90();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpRotate180()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapSlpRotate180();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpUnderline()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapSlpUnderline();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapTransaction()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapTransaction();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapJrnCartridgeSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapJrnCartridgeSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapJrnColor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapJrnColor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapRecCartridgeSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapRecCartridgeSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapRecColor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapRecColor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapRecMarkFeed()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapRecMarkFeed();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpBothSidesPrint()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapSlpBothSidesPrint();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapSlpCartridgeSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapSlpCartridgeSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapSlpColor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapSlpColor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapMapCharacterSet()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getCapMapCharacterSet();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapConcurrentPageMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapConcurrentPageMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRecPageMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapRecPageMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSlpPageMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapSlpPageMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapRecRuledLine()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.13.0
+ if(serviceVersion < deviceVersion113)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.13.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service113.getCapRecRuledLine();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapSlpRuledLine()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.13.0
+ if(serviceVersion < deviceVersion113)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.13.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service113.getCapSlpRuledLine();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public boolean getAsyncMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getAsyncMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAsyncMode(boolean asyncMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setAsyncMode(asyncMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCharacterSet()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCharacterSet();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCharacterSet(int characterSet)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setCharacterSet(characterSet);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getCharacterSetList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCharacterSetList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCoverOpen()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCoverOpen();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getErrorLevel()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getErrorLevel();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getErrorStation()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getErrorStation();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getErrorString()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getErrorString();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getFlagWhenIdle()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getFlagWhenIdle();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setFlagWhenIdle(boolean flagWhenIdle)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setFlagWhenIdle(flagWhenIdle);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getFontTypefaceList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getFontTypefaceList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getJrnEmpty()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getJrnEmpty();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getJrnLetterQuality()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getJrnLetterQuality();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setJrnLetterQuality(boolean jrnLetterQuality)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setJrnLetterQuality(jrnLetterQuality);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getJrnLineChars()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getJrnLineChars();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setJrnLineChars(int jrnLineChars)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setJrnLineChars(jrnLineChars);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getJrnLineCharsList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getJrnLineCharsList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getJrnLineHeight()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getJrnLineHeight();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setJrnLineHeight(int jrnLineHeight)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setJrnLineHeight(jrnLineHeight);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getJrnLineSpacing()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getJrnLineSpacing();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setJrnLineSpacing(int jrnLineSpacing)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setJrnLineSpacing(jrnLineSpacing);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getJrnLineWidth()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getJrnLineWidth();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getJrnNearEnd()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getJrnNearEnd();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMapMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getMapMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setMapMode(int mapMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setMapMode(mapMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getOutputID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getOutputID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getRecBarCodeRotationList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getRecBarCodeRotationList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getRecEmpty()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getRecEmpty();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getRecLetterQuality()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getRecLetterQuality();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setRecLetterQuality(boolean recLetterQuality)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setRecLetterQuality(recLetterQuality);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getRecLineChars()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getRecLineChars();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setRecLineChars(int recLineChars)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setRecLineChars(recLineChars);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getRecLineCharsList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getRecLineCharsList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getRecLineHeight()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getRecLineHeight();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setRecLineHeight(int recLineHeight)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setRecLineHeight(recLineHeight);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getRecLineSpacing()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getRecLineSpacing();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setRecLineSpacing(int recLineSpacing)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setRecLineSpacing(recLineSpacing);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getRecLinesToPaperCut()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getRecLinesToPaperCut();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getRecLineWidth()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getRecLineWidth();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getRecNearEnd()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getRecNearEnd();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getRecSidewaysMaxChars()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getRecSidewaysMaxChars();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getRecSidewaysMaxLines()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getRecSidewaysMaxLines();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getRotateSpecial()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getRotateSpecial();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setRotateSpecial(int rotateSpecial)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setRotateSpecial(rotateSpecial);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getSlpBarCodeRotationList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getSlpBarCodeRotationList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getSlpEmpty()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getSlpEmpty();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getSlpLetterQuality()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getSlpLetterQuality();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setSlpLetterQuality(boolean recLetterQuality)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setSlpLetterQuality(recLetterQuality);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSlpLineChars()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getSlpLineChars();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setSlpLineChars(int recLineChars)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setSlpLineChars(recLineChars);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getSlpLineCharsList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getSlpLineCharsList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSlpLineHeight()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getSlpLineHeight();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setSlpLineHeight(int recLineHeight)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setSlpLineHeight(recLineHeight);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSlpLinesNearEndToEnd()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getSlpLinesNearEndToEnd();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSlpLineSpacing()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getSlpLineSpacing();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setSlpLineSpacing(int recLineSpacing)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setSlpLineSpacing(recLineSpacing);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSlpLineWidth()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getSlpLineWidth();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSlpMaxLines()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getSlpMaxLines();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getSlpNearEnd()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getSlpNearEnd();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSlpSidewaysMaxChars()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getSlpSidewaysMaxChars();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSlpSidewaysMaxLines()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getSlpSidewaysMaxLines();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCartridgeNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCartridgeNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCartridgeNotify(int notify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setCartridgeNotify(notify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getJrnCartridgeState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getJrnCartridgeState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getJrnCurrentCartridge()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getJrnCurrentCartridge();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setJrnCurrentCartridge(int cartridge)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setJrnCurrentCartridge(cartridge);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getRecCartridgeState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getRecCartridgeState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getRecCurrentCartridge()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getRecCurrentCartridge();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setRecCurrentCartridge(int cartridge)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setRecCurrentCartridge(cartridge);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSlpCartridgeState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getSlpCartridgeState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSlpCurrentCartridge()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getSlpCurrentCartridge();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setSlpCurrentCartridge(int cartridge)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setSlpCurrentCartridge(cartridge);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSlpPrintSide()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getSlpPrintSide();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getMapCharacterSet()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getMapCharacterSet();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setMapCharacterSet(boolean mapCharacterSet)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.setMapCharacterSet(mapCharacterSet);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getRecBitmapRotationList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getRecBitmapRotationList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getSlpBitmapRotationList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getSlpBitmapRotationList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getPageModeArea()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getPageModeArea();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPageModeDescriptor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getPageModeDescriptor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPageModeHorizontalPosition()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getPageModeHorizontalPosition();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPageModeHorizontalPosition(int position)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.setPageModeHorizontalPosition(position);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getPageModePrintArea()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getPageModePrintArea();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPageModePrintArea(String area)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.setPageModePrintArea(area);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPageModePrintDirection()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getPageModePrintDirection();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPageModePrintDirection(int direction)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.setPageModePrintDirection(direction);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPageModeStation()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getPageModeStation();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPageModeStation(int station)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.setPageModeStation(station);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPageModeVerticalPosition()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getPageModeVerticalPosition();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPageModeVerticalPosition(int position)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.setPageModeVerticalPosition(position);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void beginInsertion(int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.beginInsertion(timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void beginRemoval(int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.beginRemoval(timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearOutput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.clearOutput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void cutPaper(int percentage)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.cutPaper(percentage);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endInsertion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.endInsertion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endRemoval()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.endRemoval();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printBarCode(int station, String data, int symbology, int height, int width, int alignment, int textPosition)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.printBarCode(station, data, symbology, height, width, alignment, textPosition);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printBitmap(int station, String fileName, int width, int alignment)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.printBitmap(station, fileName, width, alignment);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printImmediate(int station, String data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.printImmediate(station, data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printNormal(int station, String data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.printNormal(station, data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printTwoNormal(int stations, String data1, String data2)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.printTwoNormal(stations, data1, data2);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void rotatePrint(int station, int rotation)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.rotatePrint(station, rotation);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setBitmap(int bitmapNumber, int station, String fileName, int width, int alignment)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setBitmap(bitmapNumber, station, fileName, width, alignment);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setLogo(int location, String data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setLogo(location, data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void transactionPrint(int station, int control)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.transactionPrint(station, control);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void validateData(int station, String data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.validateData(station, data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void changePrintSide(int side)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.changePrintSide(side);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void markFeed(int type)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.5.0
+ if(serviceVersion < deviceVersion15)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.5.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.markFeed(type);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearPrintArea()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.clearPrintArea();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void pageModePrint(int control)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.pageModePrint(control);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printMemoryBitmap(int station, byte[] data, int type, int width, int alignment)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.10.0
+ if(serviceVersion < deviceVersion110)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.10.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.printMemoryBitmap(station, data, type, width, alignment);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void drawRuledLine(int station, String positionList, int lineDirection, int lineWidth, int lineStyle, int lineColor)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.13.0
+ if(serviceVersion < deviceVersion113)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.13.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service113.drawRuledLine(station, positionList, lineDirection, lineWidth, lineStyle, lineColor);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new POSPrinterCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service12 = null;
+ service13 = null;
+ service14 = null;
+ service15 = null;
+ service16 = null;
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion12)
+ {
+ try
+ {
+ service12 = (POSPrinterService12)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPrinterService12 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion13)
+ {
+ try
+ {
+ service13 = (POSPrinterService13)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPrinterService13 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion14)
+ {
+ try
+ {
+ service14 = (POSPrinterService14)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPrinterService14 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion15)
+ {
+ try
+ {
+ service15 = (POSPrinterService15)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPrinterService15 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion16)
+ {
+ try
+ {
+ service16 = (POSPrinterService16)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPrinterService16 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (POSPrinterService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPrinterService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (POSPrinterService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPrinterService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (POSPrinterService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPrinterService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (POSPrinterService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPrinterService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (POSPrinterService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPrinterService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (POSPrinterService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPrinterService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (POSPrinterService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPrinterService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (POSPrinterService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement POSPrinterService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.addElement(l);
+ }
+ }
+
+ public void removeErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.removeElement(l);
+ }
+ }
+
+ public void addOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.addElement(l);
+ }
+ }
+
+ public void removeOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class POSPrinterCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)POSPrinter.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(POSPrinter.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ synchronized(POSPrinter.this.errorListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < errorListeners.size(); x++)
+ {
+ ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e);
+ }
+ }
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ synchronized(POSPrinter.this.outputCompleteListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < outputCompleteListeners.size(); x++)
+ {
+ ((OutputCompleteListener)outputCompleteListeners.elementAt(x)).outputCompleteOccurred(e);
+ }
+ }
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(POSPrinter.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinter.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinter.manifest.stub
new file mode 100644
index 0000000..16f78dd
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinter.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/POSPrinter.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterBeanInfo.java
new file mode 100644
index 0000000..36429f0
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterBeanInfo.java
@@ -0,0 +1,217 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// POSPrinterBeanInfo.java - Bean information for the JavaPOS POSPrinter
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class POSPrinterBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.POSPrinter.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.POSPrinter.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapCharacterSet"),
+ makeProperty("CapConcurrentJrnRec"),
+ makeProperty("CapConcurrentJrnSlp"),
+ makeProperty("CapConcurrentRecSlp"),
+ makeProperty("CapCoverSensor"),
+ makeProperty("CapJrn2Color"),
+ makeProperty("CapJrnBold"),
+ makeProperty("CapJrnDhigh"),
+ makeProperty("CapJrnDwide"),
+ makeProperty("CapJrnDwideDhigh"),
+ makeProperty("CapJrnEmptySensor"),
+ makeProperty("CapJrnItalic"),
+ makeProperty("CapJrnNearEndSensor"),
+ makeProperty("CapJrnPresent"),
+ makeProperty("CapJrnUnderline"),
+ makeProperty("CapRec2Color"),
+ makeProperty("CapRecBarCode"),
+ makeProperty("CapRecBitmap"),
+ makeProperty("CapRecBold"),
+ makeProperty("CapRecDhigh"),
+ makeProperty("CapRecDwide"),
+ makeProperty("CapRecDwideDhigh"),
+ makeProperty("CapRecEmptySensor"),
+ makeProperty("CapRecItalic"),
+ makeProperty("CapRecLeft90"),
+ makeProperty("CapRecNearEndSensor"),
+ makeProperty("CapRecPapercut"),
+ makeProperty("CapRecPresent"),
+ makeProperty("CapRecRight90"),
+ makeProperty("CapRecRotate180"),
+ makeProperty("CapRecStamp"),
+ makeProperty("CapRecUnderline"),
+ makeProperty("CapSlp2Color"),
+ makeProperty("CapSlpBarCode"),
+ makeProperty("CapSlpBitmap"),
+ makeProperty("CapSlpBold"),
+ makeProperty("CapSlpDhigh"),
+ makeProperty("CapSlpDwide"),
+ makeProperty("CapSlpDwideDhigh"),
+ makeProperty("CapSlpEmptySensor"),
+ makeProperty("CapSlpFullslip"),
+ makeProperty("CapSlpItalic"),
+ makeProperty("CapSlpLeft90"),
+ makeProperty("CapSlpNearEndSensor"),
+ makeProperty("CapSlpPresent"),
+ makeProperty("CapSlpRight90"),
+ makeProperty("CapSlpRotate180"),
+ makeProperty("CapSlpUnderline"),
+ makeProperty("CapTransaction"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapJrnCartridgeSensor"),
+ makeProperty("CapJrnColor"),
+ makeProperty("CapRecCartridgeSensor"),
+ makeProperty("CapRecColor"),
+ makeProperty("CapRecMarkFeed"),
+ makeProperty("CapSlpBothSidesPrint"),
+ makeProperty("CapSlpCartridgeSensor"),
+ makeProperty("CapSlpColor"),
+ makeProperty("CapMapCharacterSet"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapConcurrentPageMode"),
+ makeProperty("CapRecPageMode"),
+ makeProperty("CapSlpPageMode"),
+ makeProperty("CapUpdateFirmware"),
+ makeProperty("CapRecRuledLine"),
+ makeProperty("CapSlpRuledLine"),
+
+ // Properties
+ makeProperty("AsyncMode"),
+ makeProperty("CharacterSet"),
+ makeProperty("CharacterSetList"),
+ makeProperty("CoverOpen"),
+ makeProperty("ErrorLevel"),
+ makeProperty("ErrorStation"),
+ makeProperty("ErrorString"),
+ makeProperty("FlagWhenIdle"),
+ makeProperty("FontTypefaceList"),
+ makeProperty("JrnEmpty"),
+ makeProperty("JrnLetterQuality"),
+ makeProperty("JrnLineChars"),
+ makeProperty("JrnLineCharsList"),
+ makeProperty("JrnLineHeight"),
+ makeProperty("JrnLineSpacing"),
+ makeProperty("JrnLineWidth"),
+ makeProperty("JrnNearEnd"),
+ makeProperty("MapMode"),
+ makeProperty("OutputID"),
+ makeProperty("RecBarCodeRotationList"),
+ makeProperty("RecEmpty"),
+ makeProperty("RecLetterQuality"),
+ makeProperty("RecLineChars"),
+ makeProperty("RecLineCharsList"),
+ makeProperty("RecLineHeight"),
+ makeProperty("RecLineSpacing"),
+ makeProperty("RecLinesToPaperCut"),
+ makeProperty("RecLineWidth"),
+ makeProperty("RecNearEnd"),
+ makeProperty("RecSidewaysMaxChars"),
+ makeProperty("RecSidewaysMaxLines"),
+ makeProperty("RotateSpecial"),
+ makeProperty("SlpBarCodeRotationList"),
+ makeProperty("SlpEmpty"),
+ makeProperty("SlpLetterQuality"),
+ makeProperty("SlpLineChars"),
+ makeProperty("SlpLineCharsList"),
+ makeProperty("SlpLineHeight"),
+ makeProperty("SlpLinesNearEndToEnd"),
+ makeProperty("SlpLineSpacing"),
+ makeProperty("SlpLineWidth"),
+ makeProperty("SlpMaxLines"),
+ makeProperty("SlpNearEnd"),
+ makeProperty("SlpSidewaysMaxChars"),
+ makeProperty("SlpSidewaysMaxLines"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("CartridgeNotify"),
+ makeProperty("JrnCartridgeState"),
+ makeProperty("JrnCurrentCartridge"),
+ makeProperty("RecCartridgeState"),
+ makeProperty("RecCurrentCartridge"),
+ makeProperty("SlpCartridgeState"),
+ makeProperty("SlpCurrentCartridge"),
+ makeProperty("SlpPrintSide"),
+ makeProperty("MapCharacterSet"),
+ makeProperty("RecBitmapRotationList"),
+ makeProperty("SlpBitmapRotationList"),
+ makeProperty("PageModeArea"),
+ makeProperty("PageModeDescriptor"),
+ makeProperty("PageModeHorizontalPosition"),
+ makeProperty("PageModePrintArea"),
+ makeProperty("PageModePrintDirection"),
+ makeProperty("PageModeStation"),
+ makeProperty("PageModeVerticalPosition"),
+
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.POSPrinter.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("DirectIO"),
+ makeEvent("Error"),
+ makeEvent("OutputComplete"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterConst.java
new file mode 100644
index 0000000..26a6db7
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterConst.java
@@ -0,0 +1,462 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterConst
+//
+// POS Printer constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 1998-Feb-18 JavaPOS Release 1.2 BS
+// 1998-Apr-20 JavaPOS Release 1.3 BS
+// Add more PrintTwoNormal constants.
+// 2003-Jun-03 JavaPOS Release 1.8 BS
+// Added the following constants:
+// PTR_BCS_Code128_Parsed
+// PTR_BCS_GTIN
+// PTR_SUE_JRN_COVER_OPEN
+// PTR_SUE_JRN_COVER_OK
+// PTR_SUE_REC_COVER_OPEN
+// PTR_SUE_REC_COVER_OK
+// PTR_SUE_SLP_COVER_OPEN
+// PTR_SUE_SLP_COVER_OK
+// 2004-Feb-27 Added cartridge constants with corect spelling. BS
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+// Added the following constants:
+// PTR_PM_BITMAP
+// PTR_PM_BARCODE
+// PTR_PM_BM_ROTATE
+// PTR_PM_BC_ROTATE
+// PTR_PM_OPAQUE
+// PTR_PD_LEFT_TO_RIGHT
+// PTR_PD_BOTTOM_TO_TOP
+// PTR_PD_RIGHT_TO_LEFT
+// PTR_PD_TOP_TO_BOTTOM
+// PTR_PM_PAGE_MODE
+// PTR_PM_PRINT_SAVE
+// PTR_PM_NORMAL
+// PTR_PM_CANCEL
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+// Added the following constants:
+// PTR_BMT_BMP
+// PTR_BMT_JPEG
+// PTR_BMT_GIF
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// Added Bar Code Symbology values:
+// PTR_BCS_GS1DATABAR
+// PTR_BCS_GS1DATABAR_E
+// PTR_BCS_GS1DATABAR_S
+// PTR_BCS_GS1DATABAR_E_S
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+// Added Bar Code Symbology values:
+// PTR_BCS_DATAMATRIX
+// PTR_BCS_QRCODE
+// PTR_BCS_UQRCODE
+// PTR_BCS_AZTEC
+// PTR_BCS_UPDF417
+// Added "drawRuledLine" "lineDirection" constants:
+// PTR_RL_HORIZONTAL
+// PTR_RL_VERTICAL
+// Added "drawRuledLine" "lineStyle" constants:
+// PTR_LS_SINGLE_SOLID_LINE
+// PTR_LS_DOUBLE_SOLID_LINE
+// PTR_LS_BROKEN_LINE
+// PTR_LS_CHAIN_LINE
+// 2009-Oct-06 JavaPOS Release 1.13.1 BS
+// Re-added dropped, misspelled slip cartridge constant for backwards
+// compatibility.
+// PTR_SUE_SLP_CARTDRIGE_OK
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface POSPrinterConst
+{
+ //###################################################################
+ //#### POS Printer Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // Printer Station Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PTR_S_JOURNAL = 1;
+ public static final int PTR_S_RECEIPT = 2;
+ public static final int PTR_S_SLIP = 4;
+
+ public static final int PTR_S_JOURNAL_RECEIPT= PTR_S_JOURNAL | PTR_S_RECEIPT;
+ public static final int PTR_S_JOURNAL_SLIP = PTR_S_JOURNAL | PTR_S_SLIP ;
+ public static final int PTR_S_RECEIPT_SLIP = PTR_S_RECEIPT | PTR_S_SLIP ;
+
+ public static final int PTR_TWO_RECEIPT_JOURNAL = 0x8000 + PTR_S_JOURNAL_RECEIPT;
+ public static final int PTR_TWO_SLIP_JOURNAL = 0x8000 + PTR_S_JOURNAL_SLIP ;
+ public static final int PTR_TWO_SLIP_RECEIPT = 0x8000 + PTR_S_RECEIPT_SLIP ;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapCharacterSet" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PTR_CCS_ALPHA = 1;
+ public static final int PTR_CCS_ASCII = 998;
+ public static final int PTR_CCS_KANA = 10;
+ public static final int PTR_CCS_KANJI = 11;
+ public static final int PTR_CCS_UNICODE = 997;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CharacterSet" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PTR_CS_UNICODE = 997;
+ public static final int PTR_CS_ASCII = 998;
+ public static final int PTR_CS_ANSI = 999;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ErrorLevel" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PTR_EL_NONE = 1;
+ public static final int PTR_EL_RECOVERABLE = 2;
+ public static final int PTR_EL_FATAL = 3;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "MapMode" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PTR_MM_DOTS = 1;
+ public static final int PTR_MM_TWIPS = 2;
+ public static final int PTR_MM_ENGLISH = 3;
+ public static final int PTR_MM_METRIC = 4;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapXxxColor" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PTR_COLOR_PRIMARY = 0x00000001;
+ public static final int PTR_COLOR_CUSTOM1 = 0x00000002;
+ public static final int PTR_COLOR_CUSTOM2 = 0x00000004;
+ public static final int PTR_COLOR_CUSTOM3 = 0x00000008;
+ public static final int PTR_COLOR_CUSTOM4 = 0x00000010;
+ public static final int PTR_COLOR_CUSTOM5 = 0x00000020;
+ public static final int PTR_COLOR_CUSTOM6 = 0x00000040;
+ public static final int PTR_COLOR_CYAN = 0x00000100;
+ public static final int PTR_COLOR_MAGENTA = 0x00000200;
+ public static final int PTR_COLOR_YELLOW = 0x00000400;
+ public static final int PTR_COLOR_FULL = 0x80000000;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapXxxCartridgeSensor" and "XxxCartridgeState" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PTR_CART_UNKNOWN = 0x10000000;
+ public static final int PTR_CART_OK = 0x00000000;
+ public static final int PTR_CART_REMOVED = 0x00000001;
+ public static final int PTR_CART_EMPTY = 0x00000002;
+ public static final int PTR_CART_NEAREND = 0x00000004;
+ public static final int PTR_CART_CLEANING = 0x00000008;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CartridgeNotify" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PTR_CN_DISABLED = 0x00000000;
+ public static final int PTR_CN_ENABLED = 0x00000001;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "PageModeDescriptor" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PTR_PM_BITMAP = 0x00000001;
+ public static final int PTR_PM_BARCODE = 0x00000002;
+ public static final int PTR_PM_BM_ROTATE = 0x00000004;
+ public static final int PTR_PM_BC_ROTATE = 0x00000008;
+ public static final int PTR_PM_OPAQUE = 0x00000010;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "PageModePrintDirection" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PTR_PD_LEFT_TO_RIGHT = 1;
+ public static final int PTR_PD_BOTTOM_TO_TOP = 2;
+ public static final int PTR_PD_RIGHT_TO_LEFT = 3;
+ public static final int PTR_PD_TOP_TO_BOTTOM = 4;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "clearPrintArea" and "pageModePrint" Method Constant
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PTR_PM_PAGE_MODE = 1;
+ public static final int PTR_PM_PRINT_SAVE = 2;
+ public static final int PTR_PM_NORMAL = 3;
+ public static final int PTR_PM_CANCEL = 4;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CutPaper" Method Constant
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PTR_CP_FULLCUT = 100;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "PrintBarCode" Method Constants:
+ /////////////////////////////////////////////////////////////////////
+
+ // "Alignment" Parameter
+ // Either the distance from the left-most print column to the start
+ // of the bar code, or one of the following:
+
+ public static final int PTR_BC_LEFT = -1;
+ public static final int PTR_BC_CENTER = -2;
+ public static final int PTR_BC_RIGHT = -3;
+
+ // "TextPosition" Parameter
+
+ public static final int PTR_BC_TEXT_NONE = -11;
+ public static final int PTR_BC_TEXT_ABOVE = -12;
+ public static final int PTR_BC_TEXT_BELOW = -13;
+
+ // "Symbology" Parameter:
+
+ // One dimensional symbologies
+ public static final int PTR_BCS_UPCA = 101; // Digits
+ public static final int PTR_BCS_UPCE = 102; // Digits
+ public static final int PTR_BCS_JAN8 = 103; // = EAN 8
+ public static final int PTR_BCS_EAN8 = 103; // = JAN 8 (added in 1.2)
+ public static final int PTR_BCS_JAN13 = 104; // = EAN 13
+ public static final int PTR_BCS_EAN13 = 104; // = JAN 13 (added in 1.2)
+ public static final int PTR_BCS_TF = 105; // (Discrete 2 of 5) Digits
+ public static final int PTR_BCS_ITF = 106; // (Interleaved 2 of 5) Digits
+ public static final int PTR_BCS_Codabar = 107; // Digits, -, $, :, /, ., +;
+ // 4 start/stop characters
+ // (a, b, c, d)
+ public static final int PTR_BCS_Code39 = 108; // Alpha, Digits, Space, -, .,
+ // $, /, +, %; start/stop (*)
+ // Also has Full ASCII feature
+ public static final int PTR_BCS_Code93 = 109; // Same characters as Code 39
+ public static final int PTR_BCS_Code128 = 110; // 128 data characters
+ // (The following were added in Release 1.2)
+ public static final int PTR_BCS_UPCA_S = 111; // UPC-A with supplemental
+ // barcode
+ public static final int PTR_BCS_UPCE_S = 112; // UPC-E with supplemental
+ // barcode
+ public static final int PTR_BCS_UPCD1 = 113; // UPC-D1
+ public static final int PTR_BCS_UPCD2 = 114; // UPC-D2
+ public static final int PTR_BCS_UPCD3 = 115; // UPC-D3
+ public static final int PTR_BCS_UPCD4 = 116; // UPC-D4
+ public static final int PTR_BCS_UPCD5 = 117; // UPC-D5
+ public static final int PTR_BCS_EAN8_S = 118; // EAN 8 with supplemental
+ // barcode
+ public static final int PTR_BCS_EAN13_S = 119; // EAN 13 with supplemental
+ // barcode
+ public static final int PTR_BCS_EAN128 = 120; // EAN 128
+ public static final int PTR_BCS_OCRA = 121; // OCR "A"
+ public static final int PTR_BCS_OCRB = 122; // OCR "B"
+
+ // Added in Release 1.8
+ public static final int PTR_BCS_Code128_Parsed = 123;
+ // The followings RSS have been deprecated in 1.12. Use the GS1DATABAR constants below instead.
+ public static final int PTR_BCS_RSS14 = 131; // Reduced Space Symbology - 14 digit GTIN
+ public static final int PTR_BCS_RSS_EXPANDED = 132; // RSS - 14 digit GTIN plus additional fields
+
+ // Added in Release 1.12
+ public static final int PTR_BCS_GS1DATABAR = 131; // GS1 DataBar Omnidirectional
+ public static final int PTR_BCS_GS1DATABAR_E = 132; // GS1 DataBar Expanded
+ public static final int PTR_BCS_GS1DATABAR_S = 133; // GS1 DataBar Stacked Omnidirectional
+ public static final int PTR_BCS_GS1DATABAR_E_S = 134; // GS1 DataBar Expanded Stacked
+
+ // Two dimensional symbologies
+ public static final int PTR_BCS_PDF417 = 201;
+ public static final int PTR_BCS_MAXICODE = 202;
+
+ // Added in Release 1.13
+ public static final int PTR_BCS_DATAMATRIX = 203; // Data Matrix
+ public static final int PTR_BCS_QRCODE = 204; // QR Code
+ public static final int PTR_BCS_UQRCODE = 205; // Micro QR Code
+ public static final int PTR_BCS_AZTEC = 206; // Aztec
+ public static final int PTR_BCS_UPDF417 = 207; // Micro PDF 417
+
+ // Start of Printer-Specific bar code symbologies
+ public static final int PTR_BCS_OTHER = 501;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "PrintBitmap" and "PrintMemoryBitmap" Method Constants:
+ /////////////////////////////////////////////////////////////////////
+
+ // "Width" Parameter
+ // Either bitmap width or:
+ public static final int PTR_BM_ASIS = -11; // One pixel per printer dot
+
+ // "Alignment" Parameter
+ // Either the distance from the left-most print column to the start
+ // of the bitmap, or one of the following:
+ public static final int PTR_BM_LEFT = -1;
+ public static final int PTR_BM_CENTER = -2;
+ public static final int PTR_BM_RIGHT = -3;
+
+ // "Type" Parameter ("PrintMemoryBitmap" only)
+ public static final int PTR_BMT_BMP = 1;
+ public static final int PTR_BMT_JPEG = 2;
+ public static final int PTR_BMT_GIF = 3;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "RotatePrint" Method: "Rotation" Parameter Constants
+ // "RotateSpecial" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PTR_RP_NORMAL = 0x0001;
+ public static final int PTR_RP_RIGHT90 = 0x0101;
+ public static final int PTR_RP_LEFT90 = 0x0102;
+ public static final int PTR_RP_ROTATE180 = 0x0103;
+
+ // Version 1.7. One of the following values can be
+ // ORed with one of the above values.
+ public static final int PTR_RP_BARCODE = 0x1000;
+ public static final int PTR_RP_BITMAP = 0x2000;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "SetLogo" Method: "Location" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PTR_L_TOP = 1;
+ public static final int PTR_L_BOTTOM = 2;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "TransactionPrint" Method: "Control" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PTR_TP_TRANSACTION = 11;
+ public static final int PTR_TP_NORMAL = 12;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "MarkFeed" Method: "Type" Parameter Constants
+ // "CapRecMarkFeed" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PTR_MF_TO_TAKEUP = 1;
+ public static final int PTR_MF_TO_CUTTER = 2;
+ public static final int PTR_MF_TO_CURRENT_TOF = 4;
+ public static final int PTR_MF_TO_NEXT_TOF = 8;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ChangePrintSide" Method: "Side" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PTR_PS_UNKNOWN = 0;
+ public static final int PTR_PS_SIDE1 = 1;
+ public static final int PTR_PS_SIDE2 = 2;
+ public static final int PTR_PS_OPPOSITE = 3;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "drawRuledLine" Method: "lineDirection" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PTR_RL_HORIZONTAL = 1; // Added in 1.13
+ public static final int PTR_RL_VERTICAL = 2; // Added in 1.13
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "drawRuledLine" Method: "lineStyle" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PTR_LS_SINGLE_SOLID_LINE = 1; // Added in 1.13
+ public static final int PTR_LS_DOUBLE_SOLID_LINE = 2; // Added in 1.13
+ public static final int PTR_LS_BROKEN_LINE = 3; // Added in 1.13
+ public static final int PTR_LS_CHAIN_LINE = 4; // Added in 1.13
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "StatusUpdateEvent" Event: "status" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PTR_SUE_COVER_OPEN = 11;
+ public static final int PTR_SUE_COVER_OK = 12;
+
+ public static final int PTR_SUE_JRN_EMPTY = 21;
+ public static final int PTR_SUE_JRN_NEAREMPTY= 22;
+ public static final int PTR_SUE_JRN_PAPEROK = 23;
+
+ public static final int PTR_SUE_REC_EMPTY = 24;
+ public static final int PTR_SUE_REC_NEAREMPTY= 25;
+ public static final int PTR_SUE_REC_PAPEROK = 26;
+
+ public static final int PTR_SUE_SLP_EMPTY = 27;
+ public static final int PTR_SUE_SLP_NEAREMPTY= 28;
+ public static final int PTR_SUE_SLP_PAPEROK = 29;
+
+ public static final int PTR_SUE_JRN_CARTRIDGE_EMPTY = 41;
+ public static final int PTR_SUE_JRN_CARTRIDGE_NEAREMPTY = 42;
+ public static final int PTR_SUE_JRN_HEAD_CLEANING = 43;
+ public static final int PTR_SUE_JRN_CARTDRIGE_OK = 44;
+ public static final int PTR_SUE_JRN_CARTRIDGE_OK = 44;
+
+ public static final int PTR_SUE_REC_CARTRIDGE_EMPTY = 45;
+ public static final int PTR_SUE_REC_CARTRIDGE_NEAREMPTY = 46;
+ public static final int PTR_SUE_REC_HEAD_CLEANING = 47;
+ public static final int PTR_SUE_REC_CARTDRIGE_OK = 48;
+ public static final int PTR_SUE_REC_CARTRIDGE_OK = 48;
+
+ public static final int PTR_SUE_SLP_CARTRIDGE_EMPTY = 49;
+ public static final int PTR_SUE_SLP_CARTRIDGE_NEAREMPTY = 50;
+ public static final int PTR_SUE_SLP_HEAD_CLEANING = 51;
+ public static final int PTR_SUE_SLP_CARTDRIGE_OK = 52;
+ public static final int PTR_SUE_SLP_CARTRIDGE_OK = 52;
+
+ public static final int PTR_SUE_IDLE = 1001;
+
+ // Added in Release 1.8
+ public static final int PTR_SUE_JRN_COVER_OPEN = 60;
+ public static final int PTR_SUE_JRN_COVER_OK = 61;
+ public static final int PTR_SUE_REC_COVER_OPEN = 62;
+ public static final int PTR_SUE_REC_COVER_OK = 63;
+ public static final int PTR_SUE_SLP_COVER_OPEN = 64;
+ public static final int PTR_SUE_SLP_COVER_OK = 65;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ResultCodeExtended" Property Constants for Printer
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_EPTR_COVER_OPEN = 1 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EPTR_JRN_EMPTY = 2 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EPTR_REC_EMPTY = 3 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EPTR_SLP_EMPTY = 4 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EPTR_SLP_FORM = 5 + JposConst.JPOSERREXT; // EndRemoval
+ public static final int JPOS_EPTR_TOOBIG = 6 + JposConst.JPOSERREXT; // PrintBitmap
+ public static final int JPOS_EPTR_BADFORMAT = 7 + JposConst.JPOSERREXT; // PrintBitmap
+ public static final int JPOS_EPTR_JRN_CARTRIDGE_REMOVED = 8 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EPTR_JRN_CARTRIDGE_EMPTY = 9 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EPTR_JRN_HEAD_CLEANING = 10 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EPTR_REC_CARTRIDGE_REMOVED = 11 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EPTR_REC_CARTRIDGE_EMPTY = 12 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EPTR_REC_HEAD_CLEANING = 13 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EPTR_SLP_CARTRIDGE_REMOVED = 14 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EPTR_SLP_CARTRIDGE_EMPTY = 15 + JposConst.JPOSERREXT; // (Several)
+ public static final int JPOS_EPTR_SLP_HEAD_CLEANING = 16 + JposConst.JPOSERREXT; // (Several)
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl110.java
new file mode 100644
index 0000000..57ceadf
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl110.java
@@ -0,0 +1,34 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPrinterControl110 extends POSPrinterControl19
+{
+ // Methods
+ public void printMemoryBitmap(int station, byte[] data, int type,
+ int width, int alignment)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl111.java
new file mode 100644
index 0000000..47999ac
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPrinterControl111 extends POSPrinterControl110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl112.java
new file mode 100644
index 0000000..adc8f62
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPrinterControl112 extends POSPrinterControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl113.java
new file mode 100644
index 0000000..8cb0db9
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl113.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPrinterControl113 extends POSPrinterControl112
+{
+ // Capabilities
+ public int getCapRecRuledLine() throws JposException;
+ public int getCapSlpRuledLine() throws JposException;
+
+ // Methods
+ public void drawRuledLine(int station, String positionList,
+ int lineDirection, int lineWidth,
+ int lineStyle, int lineColor)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl114.java
new file mode 100644
index 0000000..a478aa3
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to POS Printer for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPrinterControl114 extends POSPrinterControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl12.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl12.java
new file mode 100644
index 0000000..08bb95d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl12.java
@@ -0,0 +1,182 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterControl12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to POS Printer for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPrinterControl12 extends BaseControl
+{
+ // Capabilities
+ public int getCapCharacterSet() throws JposException;
+ public boolean getCapConcurrentJrnRec() throws JposException;
+ public boolean getCapConcurrentJrnSlp() throws JposException;
+ public boolean getCapConcurrentRecSlp() throws JposException;
+ public boolean getCapCoverSensor() throws JposException;
+ public boolean getCapJrn2Color() throws JposException;
+ public boolean getCapJrnBold() throws JposException;
+ public boolean getCapJrnDhigh() throws JposException;
+ public boolean getCapJrnDwide() throws JposException;
+ public boolean getCapJrnDwideDhigh() throws JposException;
+ public boolean getCapJrnEmptySensor() throws JposException;
+ public boolean getCapJrnItalic() throws JposException;
+ public boolean getCapJrnNearEndSensor() throws JposException;
+ public boolean getCapJrnPresent() throws JposException;
+ public boolean getCapJrnUnderline() throws JposException;
+ public boolean getCapRec2Color() throws JposException;
+ public boolean getCapRecBarCode() throws JposException;
+ public boolean getCapRecBitmap() throws JposException;
+ public boolean getCapRecBold() throws JposException;
+ public boolean getCapRecDhigh() throws JposException;
+ public boolean getCapRecDwide() throws JposException;
+ public boolean getCapRecDwideDhigh() throws JposException;
+ public boolean getCapRecEmptySensor() throws JposException;
+ public boolean getCapRecItalic() throws JposException;
+ public boolean getCapRecLeft90() throws JposException;
+ public boolean getCapRecNearEndSensor() throws JposException;
+ public boolean getCapRecPapercut() throws JposException;
+ public boolean getCapRecPresent() throws JposException;
+ public boolean getCapRecRight90() throws JposException;
+ public boolean getCapRecRotate180() throws JposException;
+ public boolean getCapRecStamp() throws JposException;
+ public boolean getCapRecUnderline() throws JposException;
+ public boolean getCapSlp2Color() throws JposException;
+ public boolean getCapSlpBarCode() throws JposException;
+ public boolean getCapSlpBitmap() throws JposException;
+ public boolean getCapSlpBold() throws JposException;
+ public boolean getCapSlpDhigh() throws JposException;
+ public boolean getCapSlpDwide() throws JposException;
+ public boolean getCapSlpDwideDhigh() throws JposException;
+ public boolean getCapSlpEmptySensor() throws JposException;
+ public boolean getCapSlpFullslip() throws JposException;
+ public boolean getCapSlpItalic() throws JposException;
+ public boolean getCapSlpLeft90() throws JposException;
+ public boolean getCapSlpNearEndSensor() throws JposException;
+ public boolean getCapSlpPresent() throws JposException;
+ public boolean getCapSlpRight90() throws JposException;
+ public boolean getCapSlpRotate180() throws JposException;
+ public boolean getCapSlpUnderline() throws JposException;
+ public boolean getCapTransaction() throws JposException;
+
+ // Properties
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public int getCharacterSet() throws JposException;
+ public void setCharacterSet(int characterSet) throws JposException;
+ public String getCharacterSetList() throws JposException;
+ public boolean getCoverOpen() throws JposException;
+ public int getErrorLevel() throws JposException;
+ public int getErrorStation() throws JposException;
+ public String getErrorString() throws JposException;
+ public boolean getFlagWhenIdle() throws JposException;
+ public void setFlagWhenIdle(boolean flagWhenIdle) throws JposException;
+ public String getFontTypefaceList() throws JposException;
+ public boolean getJrnEmpty() throws JposException;
+ public boolean getJrnLetterQuality() throws JposException;
+ public void setJrnLetterQuality(boolean jrnLetterQuality)
+ throws JposException;
+ public int getJrnLineChars() throws JposException;
+ public void setJrnLineChars(int jrnLineChars) throws JposException;
+ public String getJrnLineCharsList() throws JposException;
+ public int getJrnLineHeight() throws JposException;
+ public void setJrnLineHeight(int jrnLineHeight) throws JposException;
+ public int getJrnLineSpacing() throws JposException;
+ public void setJrnLineSpacing(int jrnLineSpacing) throws JposException;
+ public int getJrnLineWidth() throws JposException;
+ public boolean getJrnNearEnd() throws JposException;
+ public int getMapMode() throws JposException;
+ public void setMapMode(int mapMode) throws JposException;
+ public int getOutputID() throws JposException;
+ public String getRecBarCodeRotationList() throws JposException;
+ public boolean getRecEmpty() throws JposException;
+ public boolean getRecLetterQuality() throws JposException;
+ public void setRecLetterQuality(boolean recLetterQuality)
+ throws JposException;
+ public int getRecLineChars() throws JposException;
+ public void setRecLineChars(int recLineChars) throws JposException;
+ public String getRecLineCharsList() throws JposException;
+ public int getRecLineHeight() throws JposException;
+ public void setRecLineHeight(int recLineHeight) throws JposException;
+ public int getRecLineSpacing() throws JposException;
+ public void setRecLineSpacing(int recLineSpacing) throws JposException;
+ public int getRecLinesToPaperCut() throws JposException;
+ public int getRecLineWidth() throws JposException;
+ public boolean getRecNearEnd() throws JposException;
+ public int getRecSidewaysMaxChars() throws JposException;
+ public int getRecSidewaysMaxLines() throws JposException;
+ public int getRotateSpecial() throws JposException;
+ public void setRotateSpecial(int rotateSpecial) throws JposException;
+ public String getSlpBarCodeRotationList() throws JposException;
+ public boolean getSlpEmpty() throws JposException;
+ public boolean getSlpLetterQuality() throws JposException;
+ public void setSlpLetterQuality(boolean recLetterQuality)
+ throws JposException;
+ public int getSlpLineChars() throws JposException;
+ public void setSlpLineChars(int recLineChars) throws JposException;
+ public String getSlpLineCharsList() throws JposException;
+ public int getSlpLineHeight() throws JposException;
+ public void setSlpLineHeight(int recLineHeight) throws JposException;
+ public int getSlpLinesNearEndToEnd() throws JposException;
+ public int getSlpLineSpacing() throws JposException;
+ public void setSlpLineSpacing(int recLineSpacing) throws JposException;
+ public int getSlpLineWidth() throws JposException;
+ public int getSlpMaxLines() throws JposException;
+ public boolean getSlpNearEnd() throws JposException;
+ public int getSlpSidewaysMaxChars() throws JposException;
+ public int getSlpSidewaysMaxLines() throws JposException;
+
+ // Methods
+ public void beginInsertion(int timeout) throws JposException;
+ public void beginRemoval(int timeout) throws JposException;
+ public void clearOutput() throws JposException;
+ public void cutPaper(int percentage) throws JposException;
+ public void endInsertion() throws JposException;
+ public void endRemoval() throws JposException;
+ public void printBarCode(int station, String data, int symbology,
+ int height, int width, int alignment,
+ int textPosition) throws JposException;
+ public void printBitmap(int station, String fileName, int width,
+ int alignment) throws JposException;
+ public void printImmediate(int station, String data)
+ throws JposException;
+ public void printNormal(int station, String data) throws JposException;
+ public void printTwoNormal(int stations, String data1, String data2)
+ throws JposException;
+ public void rotatePrint(int station, int rotation) throws JposException;
+ public void setBitmap(int bitmapNumber, int station, String fileName,
+ int width, int alignment) throws JposException;
+ public void setLogo(int location, String data) throws JposException;
+ public void transactionPrint(int station, int control)
+ throws JposException;
+ public void validateData(int station, String data) throws JposException;
+
+ // Event listener methods
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addErrorListener(ErrorListener l);
+ public void removeErrorListener(ErrorListener l);
+ public void addOutputCompleteListener(OutputCompleteListener l);
+ public void removeOutputCompleteListener(OutputCompleteListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl13.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl13.java
new file mode 100644
index 0000000..98c2a27
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl13.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterControl13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPrinterControl13 extends POSPrinterControl12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl14.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl14.java
new file mode 100644
index 0000000..1694e9d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterControl14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPrinterControl14 extends POSPrinterControl13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl15.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl15.java
new file mode 100644
index 0000000..1313d2b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl15.java
@@ -0,0 +1,57 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterControl15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 00-04-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPrinterControl15 extends POSPrinterControl14
+{
+ // Capabilities
+ public int getCapJrnCartridgeSensor() throws JposException;
+ public int getCapJrnColor() throws JposException;
+ public int getCapRecCartridgeSensor() throws JposException;
+ public int getCapRecColor() throws JposException;
+ public int getCapRecMarkFeed() throws JposException;
+ public boolean getCapSlpBothSidesPrint() throws JposException;
+ public int getCapSlpCartridgeSensor() throws JposException;
+ public int getCapSlpColor() throws JposException;
+
+ // Properties
+ public int getCartridgeNotify() throws JposException;
+ public void setCartridgeNotify(int notify) throws JposException;
+ public int getJrnCartridgeState() throws JposException;
+ public int getJrnCurrentCartridge() throws JposException;
+ public void setJrnCurrentCartridge(int cartridge) throws JposException;
+ public int getRecCartridgeState() throws JposException;
+ public int getRecCurrentCartridge() throws JposException;
+ public void setRecCurrentCartridge(int cartridge) throws JposException;
+ public int getSlpCartridgeState() throws JposException;
+ public int getSlpCurrentCartridge() throws JposException;
+ public void setSlpCurrentCartridge(int cartridge) throws JposException;
+ public int getSlpPrintSide() throws JposException;
+
+ // Methods
+ public void changePrintSide(int side) throws JposException;
+ public void markFeed(int type) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl16.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl16.java
new file mode 100644
index 0000000..9b56f70
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl16.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterControl16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-04-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPrinterControl16 extends POSPrinterControl15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl17.java
new file mode 100644
index 0000000..5c60335
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl17.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterControl17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPrinterControl17 extends POSPrinterControl16
+{
+ // Capabilities
+ public boolean getCapMapCharacterSet() throws JposException;
+
+ // Properties
+ public boolean getMapCharacterSet() throws JposException;
+ public void setMapCharacterSet(boolean mapCharacterSet)
+ throws JposException;
+ public String getRecBitmapRotationList() throws JposException;
+ public String getSlpBitmapRotationList() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl18.java
new file mode 100644
index 0000000..a880d1b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl18.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPrinterControl18 extends POSPrinterControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl19.java
new file mode 100644
index 0000000..2b5aa09
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/POSPrinterControl19.java
@@ -0,0 +1,60 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface POSPrinterControl19 extends POSPrinterControl18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapConcurrentPageMode() throws JposException;
+ public boolean getCapRecPageMode() throws JposException;
+ public boolean getCapSlpPageMode() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Properties
+ public String getPageModeArea() throws JposException;
+ public int getPageModeDescriptor() throws JposException;
+ public int getPageModeHorizontalPosition() throws JposException;
+ public void setPageModeHorizontalPosition(int position) throws JposException;
+ public String getPageModePrintArea() throws JposException;
+ public void setPageModePrintArea(String area) throws JposException;
+ public int getPageModePrintDirection() throws JposException;
+ public void setPageModePrintDirection(int direction) throws JposException;
+ public int getPageModeStation() throws JposException;
+ public void setPageModeStation(int station) throws JposException;
+ public int getPageModeVerticalPosition() throws JposException;
+ public void setPageModeVerticalPosition(int position) throws JposException;
+
+ // Methods
+ public void clearPrintArea()
+ throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void pageModePrint(int control)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRW.java b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRW.java
new file mode 100644
index 0000000..caa2e57
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRW.java
@@ -0,0 +1,2894 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRW.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class PointCardRW
+ extends BaseJposControl
+ implements PointCardRWControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected PointCardRWService15 service15;
+ protected PointCardRWService16 service16;
+ protected PointCardRWService17 service17;
+ protected PointCardRWService18 service18;
+ protected PointCardRWService19 service19;
+ protected PointCardRWService110 service110;
+ protected PointCardRWService111 service111;
+ protected PointCardRWService112 service112;
+ protected PointCardRWService113 service113;
+ protected PointCardRWService114 service114;
+ protected Vector dataListeners;
+ protected Vector directIOListeners;
+ protected Vector errorListeners;
+ protected Vector outputCompleteListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public PointCardRW()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS PointCardRW Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service15 = null;
+ //service16 = null;
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ dataListeners = new Vector();
+ directIOListeners = new Vector();
+ errorListeners = new Vector();
+ outputCompleteListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapBold()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapBold();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapCardEntranceSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapCardEntranceSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapCharacterSet()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapCharacterSet();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCleanCard()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapCleanCard();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapClearPrint()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapClearPrint();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapDhigh()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapDhigh();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapDwide()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapDwide();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapDwideDhigh()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapDwideDhigh();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapItalic()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapItalic();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapLeft90()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapLeft90();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapPrint()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapPrint();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapPrintMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapPrintMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRight90()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapRight90();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRotate180()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapRotate180();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapTracksToRead()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapTracksToRead();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapTracksToWrite()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCapTracksToWrite();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapMapCharacterSet()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getCapMapCharacterSet();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public int getCardState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCardState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCharacterSet()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCharacterSet();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCharacterSet(int charSet)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setCharacterSet(charSet);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getCharacterSetList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getCharacterSetList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDataEventEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getDataEventEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setDataEventEnabled(dataEventEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getFontTypeFaceList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getFontTypeFaceList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getLineChars()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getLineChars();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setLineChars(int lineChars)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setLineChars(lineChars);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getLineCharsList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getLineCharsList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getLineHeight()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getLineHeight();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setLineHeight(int lineHeight)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setLineHeight(lineHeight);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getLineSpacing()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getLineSpacing();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setLineSpacing(int lineSpacing)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setLineSpacing(lineSpacing);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getLineWidth()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getLineWidth();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMapMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getMapMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setMapMode(int mapMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setMapMode(mapMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMaxLines()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getMaxLines();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getOutputID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getOutputID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPrintHeight()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getPrintHeight();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getReadState1()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getReadState1();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getReadState2()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getReadState2();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getRecvLength1()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getRecvLength1();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getRecvLength2()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getRecvLength2();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSidewaysMaxChars()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getSidewaysMaxChars();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSidewaysMaxLines()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getSidewaysMaxLines();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTracksToRead()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getTracksToRead();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTracksToRead(int tracksToRead)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setTracksToRead(tracksToRead);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTracksToWrite()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getTracksToWrite();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTracksToWrite(int tracksToWrite)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setTracksToWrite(tracksToWrite);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getTrack1Data()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getTrack1Data();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getTrack2Data()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getTrack2Data();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getTrack3Data()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getTrack3Data();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getTrack4Data()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getTrack4Data();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getTrack5Data()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getTrack5Data();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getTrack6Data()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getTrack6Data();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getWriteState1()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getWriteState1();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getWriteState2()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getWriteState2();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getWrite1Data()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getWrite1Data();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setWrite1Data(String data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setWrite1Data(data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getWrite2Data()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getWrite2Data();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setWrite2Data(String data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setWrite2Data(data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getWrite3Data()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getWrite3Data();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setWrite3Data(String data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setWrite3Data(data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getWrite4Data()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getWrite4Data();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setWrite4Data(String data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setWrite4Data(data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getWrite5Data()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getWrite5Data();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setWrite5Data(String data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setWrite5Data(data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getWrite6Data()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service15.getWrite6Data();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setWrite6Data(String data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.setWrite6Data(data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getMapCharacterSet()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getMapCharacterSet();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setMapCharacterSet(boolean mapCharacterSet)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.setMapCharacterSet(mapCharacterSet);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void beginInsertion(int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.beginInsertion(timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void beginRemoval(int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.beginRemoval(timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void cleanCard()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.cleanCard();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.clearInput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearOutput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.clearOutput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearPrintWrite(int kind, int hPosition, int vPosition, int width, int height)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.clearPrintWrite(kind, hPosition, vPosition, width, height);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endInsertion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.endInsertion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endRemoval()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.endRemoval();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void printWrite(int kind, int hPosition, int vPosition, String data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.printWrite(kind, hPosition, vPosition, data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void rotatePrint(int rotation)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.rotatePrint(rotation);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void validateData(String data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service15.validateData(data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInputProperties()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.10.0
+ if(serviceVersion < deviceVersion110)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.10.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.clearInputProperties();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new PointCardRWCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service15 = null;
+ service16 = null;
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion15)
+ {
+ try
+ {
+ service15 = (PointCardRWService15)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PointCardRWService15 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion16)
+ {
+ try
+ {
+ service16 = (PointCardRWService16)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PointCardRWService16 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (PointCardRWService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PointCardRWService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (PointCardRWService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PointCardRWService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (PointCardRWService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PointCardRWService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (PointCardRWService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PointCardRWService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (PointCardRWService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PointCardRWService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (PointCardRWService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PointCardRWService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (PointCardRWService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PointCardRWService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (PointCardRWService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement PointCardRWService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.addElement(l);
+ }
+ }
+
+ public void removeDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.removeElement(l);
+ }
+ }
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.addElement(l);
+ }
+ }
+
+ public void removeErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.removeElement(l);
+ }
+ }
+
+ public void addOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.addElement(l);
+ }
+ }
+
+ public void removeOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class PointCardRWCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)PointCardRW.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ synchronized(PointCardRW.this.dataListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < dataListeners.size(); x++)
+ {
+ ((DataListener)dataListeners.elementAt(x)).dataOccurred(e);
+ }
+ }
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(PointCardRW.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ synchronized(PointCardRW.this.errorListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < errorListeners.size(); x++)
+ {
+ ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e);
+ }
+ }
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ synchronized(PointCardRW.this.outputCompleteListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < outputCompleteListeners.size(); x++)
+ {
+ ((OutputCompleteListener)outputCompleteListeners.elementAt(x)).outputCompleteOccurred(e);
+ }
+ }
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(PointCardRW.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRW.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRW.manifest.stub
new file mode 100644
index 0000000..cb5fd6c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRW.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/PointCardRW.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWBeanInfo.java
new file mode 100644
index 0000000..ba6c36f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWBeanInfo.java
@@ -0,0 +1,147 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// PointCardRWBeanInfo.java - Bean information for the JavaPOS PointCardRW
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class PointCardRWBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.PointCardRW.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.PointCardRW.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapBold"),
+ makeProperty("CapCardEntranceSensor"),
+ makeProperty("CapCharacterSet"),
+ makeProperty("CapCleanCard"),
+ makeProperty("CapClearPrint"),
+ makeProperty("CapDhigh"),
+ makeProperty("CapDwide"),
+ makeProperty("CapDwideDhigh"),
+ makeProperty("CapItalic"),
+ makeProperty("CapLeft90"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapPrint"),
+ makeProperty("CapPrintMode"),
+ makeProperty("CapRight90"),
+ makeProperty("CapRotate180"),
+ makeProperty("CapTracksToRead"),
+ makeProperty("CapTracksToWrite"),
+ makeProperty("CapMapCharacterSet"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapUpdateFirmware"),
+
+ // Properties
+ makeProperty("CardState"),
+ makeProperty("CharacterSet"),
+ makeProperty("CharacterSetList"),
+ makeProperty("DataCount"),
+ makeProperty("DataEventEnabled"),
+ makeProperty("FontTypeFaceList"),
+ makeProperty("LineChars"),
+ makeProperty("LineCharsList"),
+ makeProperty("LineHeight"),
+ makeProperty("LineSpacing"),
+ makeProperty("LineWidth"),
+ makeProperty("MapMode"),
+ makeProperty("MaxLines"),
+ makeProperty("OutputID"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("PrintHeight"),
+ makeProperty("ReadState1"),
+ makeProperty("ReadState2"),
+ makeProperty("RecvLength1"),
+ makeProperty("RecvLength2"),
+ makeProperty("SidewaysMaxChars"),
+ makeProperty("SidewaysMaxLines"),
+ makeProperty("TracksToRead"),
+ makeProperty("TracksToWrite"),
+ makeProperty("Track1Data"),
+ makeProperty("Track2Data"),
+ makeProperty("Track3Data"),
+ makeProperty("Track4Data"),
+ makeProperty("Track5Data"),
+ makeProperty("Track6Data"),
+ makeProperty("WriteState1"),
+ makeProperty("WriteState2"),
+ makeProperty("Write1Data"),
+ makeProperty("Write2Data"),
+ makeProperty("Write3Data"),
+ makeProperty("Write4Data"),
+ makeProperty("Write5Data"),
+ makeProperty("Write6Data"),
+ makeProperty("MapCharacterSet"),
+
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.PointCardRW.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("Data"),
+ makeEvent("DirectIO"),
+ makeEvent("Error"),
+ makeEvent("OutputComplete"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWConst.java
new file mode 100644
index 0000000..efe47a7
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWConst.java
@@ -0,0 +1,131 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRWConst
+//
+// PointCardRW constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-18 JavaPOS Release 1.5 BS
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+// Added the following constants (misnamed originally) :
+// PCRW_SUE_NOCARD
+// PCRW_SUE_REMAINING
+// PCRW_SUE_INRW
+// Removed the following constant which was included incorrectly:
+// PCRW_RP_NORMAL_ASYNC
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface PointCardRWConst
+{
+ /////////////////////////////////////////////////////////////////////
+ // "CapCharacterSet" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PCRW_CCS_ALPHA = 1;
+ public static final int PCRW_CCS_ASCII = 998;
+ public static final int PCRW_CCS_KANA = 10;
+ public static final int PCRW_CCS_KANJI = 11;
+ public static final int PCRW_CCS_UNICODE = 997;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CharacterSet" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PCRW_CS_UNICODE = 997;
+ public static final int PCRW_CS_ASCII = 998;
+ public static final int PCRW_CS_ANSI = 999;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CardState" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PCRW_STATE_NOCARD = 1;
+ public static final int PCRW_STATE_REMAINING = 2;
+ public static final int PCRW_STATE_INRW = 3;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // CapTrackToRead and TrackToWrite Property constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PCRW_TRACK1 = 0x0001;
+ public static final int PCRW_TRACK2 = 0x0002;
+ public static final int PCRW_TRACK3 = 0x0004;
+ public static final int PCRW_TRACK4 = 0x0008;
+ public static final int PCRW_TRACK5 = 0x0010;
+ public static final int PCRW_TRACK6 = 0x0020;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "MapMode" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PCRW_MM_DOTS = 1;
+ public static final int PCRW_MM_TWIPS = 2;
+ public static final int PCRW_MM_ENGLISH = 3;
+ public static final int PCRW_MM_METRIC = 4;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "RotatePrint" Method: "Rotation" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PCRW_RP_NORMAL = 0x0001;
+ // In drafts of spec, but not in final - should never have been defined.
+ //public static final int PCRW_RP_NORMAL_ASYNC = 0x0002;
+
+ public static final int PCRW_RP_RIGHT90 = 0x0101;
+ public static final int PCRW_RP_LEFT90 = 0x0102;
+ public static final int PCRW_RP_ROTATE180 = 0x0103;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // Status Update Event: "Status" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int PCRW_SUE_STATE_NOCARD = 1;
+ public static final int PCRW_SUE_STATE_REMAINING = 2;
+ public static final int PCRW_SUE_STATE_INRW = 3;
+
+ public static final int PCRW_SUE_NOCARD = 1;
+ public static final int PCRW_SUE_REMAINING = 2;
+ public static final int PCRW_SUE_INRW = 3;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ErrorCodeExtended" Property (ErrorEvent) Constants for PintCardRW
+ // Also used in "ReaseStateX" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_EPCRW_READ = 1 + JposConst.JPOSERREXT;
+ public static final int JPOS_EPCRW_WRITE = 2 + JposConst.JPOSERREXT;
+ public static final int JPOS_EPCRW_JAM = 3 + JposConst.JPOSERREXT;
+ public static final int JPOS_EPCRW_MOTOR = 4 + JposConst.JPOSERREXT;
+ public static final int JPOS_EPCRW_COVER = 5 + JposConst.JPOSERREXT;
+ public static final int JPOS_EPCRW_PRINTER = 6 + JposConst.JPOSERREXT;
+ public static final int JPOS_EPCRW_RELEASE = 7 + JposConst.JPOSERREXT;
+ public static final int JPOS_EPCRW_DISPLAY = 8 + JposConst.JPOSERREXT;
+ public static final int JPOS_EPCRW_NOCARD = 9 + JposConst.JPOSERREXT;
+ public static final int JPOS_EPCRW_START = 10 + JposConst.JPOSERREXT;
+ public static final int JPOS_EPCRW_END = 11 + JposConst.JPOSERREXT;
+ public static final int JPOS_EPCRW_PARITY = 12 + JposConst.JPOSERREXT;
+ public static final int JPOS_EPCRW_ENCODE = 13 + JposConst.JPOSERREXT;
+ public static final int JPOS_EPCRW_LRC = 14 + JposConst.JPOSERREXT;
+ public static final int JPOS_EPCRW_VERIFY = 15 + JposConst.JPOSERREXT;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl110.java
new file mode 100644
index 0000000..7cb30d5
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl110.java
@@ -0,0 +1,34 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRWControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Point Card Reader Writer for
+// release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PointCardRWControl110 extends PointCardRWControl19
+{
+ // Methods
+ public void clearInputProperties()
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl111.java
new file mode 100644
index 0000000..b2d7af5
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl111.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRWControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Point Card Reader Writer for
+// release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PointCardRWControl111 extends PointCardRWControl110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl112.java
new file mode 100644
index 0000000..2670bfa
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl112.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRWControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Point Card Reader Writer for
+// release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PointCardRWControl112 extends PointCardRWControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl113.java
new file mode 100644
index 0000000..4704bd7
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl113.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRWControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Point Card Reader Writer for
+// release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PointCardRWControl113 extends PointCardRWControl112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl114.java
new file mode 100644
index 0000000..a3cf211
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRWControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Point Card Reader Writer for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PointCardRWControl114 extends PointCardRWControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl15.java b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl15.java
new file mode 100644
index 0000000..da73534
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl15.java
@@ -0,0 +1,133 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRWControl15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Point Card Reader Writer for
+// release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-18 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PointCardRWControl15 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapBold() throws JposException;
+ public int getCapCardEntranceSensor() throws JposException;
+ public int getCapCharacterSet() throws JposException;
+ public boolean getCapCleanCard() throws JposException;
+ public boolean getCapClearPrint() throws JposException;
+ public boolean getCapDhigh() throws JposException;
+ public boolean getCapDwide() throws JposException;
+ public boolean getCapDwideDhigh() throws JposException;
+ public boolean getCapItalic() throws JposException;
+ public boolean getCapLeft90() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapPrint() throws JposException;
+ public boolean getCapPrintMode() throws JposException;
+ public boolean getCapRight90() throws JposException;
+ public boolean getCapRotate180() throws JposException;
+ public int getCapTracksToRead() throws JposException;
+ public int getCapTracksToWrite() throws JposException;
+
+ // Properties
+ public int getCardState() throws JposException;
+ public int getCharacterSet() throws JposException;
+ public void setCharacterSet(int charSet) throws JposException;
+ public String getCharacterSetList() throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public String getFontTypeFaceList() throws JposException;
+ public int getLineChars() throws JposException;
+ public void setLineChars(int lineChars) throws JposException;
+ public String getLineCharsList() throws JposException;
+ public int getLineHeight() throws JposException;
+ public void setLineHeight(int lineHeight) throws JposException;
+ public int getLineSpacing() throws JposException;
+ public void setLineSpacing(int lineSpacing) throws JposException;
+ public int getLineWidth() throws JposException;
+ public int getMapMode() throws JposException;
+ public void setMapMode(int mapMode) throws JposException;
+ public int getMaxLines() throws JposException;
+ public int getOutputID() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getPrintHeight() throws JposException;
+ public int getReadState1() throws JposException;
+ public int getReadState2() throws JposException;
+ public int getRecvLength1() throws JposException;
+ public int getRecvLength2() throws JposException;
+ public int getSidewaysMaxChars() throws JposException;
+ public int getSidewaysMaxLines() throws JposException;
+ public int getTracksToRead() throws JposException;
+ public void setTracksToRead(int tracksToRead) throws JposException;
+ public int getTracksToWrite() throws JposException;
+ public void setTracksToWrite(int tracksToWrite) throws JposException;
+ public String getTrack1Data() throws JposException;
+ public String getTrack2Data() throws JposException;
+ public String getTrack3Data() throws JposException;
+ public String getTrack4Data() throws JposException;
+ public String getTrack5Data() throws JposException;
+ public String getTrack6Data() throws JposException;
+ public int getWriteState1() throws JposException;
+ public int getWriteState2() throws JposException;
+ public String getWrite1Data() throws JposException;
+ public void setWrite1Data(String data) throws JposException;
+ public String getWrite2Data() throws JposException;
+ public void setWrite2Data(String data) throws JposException;
+ public String getWrite3Data() throws JposException;
+ public void setWrite3Data(String data) throws JposException;
+ public String getWrite4Data() throws JposException;
+ public void setWrite4Data(String data) throws JposException;
+ public String getWrite5Data() throws JposException;
+ public void setWrite5Data(String data) throws JposException;
+ public String getWrite6Data() throws JposException;
+ public void setWrite6Data(String data) throws JposException;
+
+ // Methods
+ public void beginInsertion(int timeout) throws JposException;
+ public void beginRemoval(int timeout) throws JposException;
+ public void cleanCard() throws JposException;
+ public void clearInput() throws JposException;
+ public void clearOutput() throws JposException;
+ public void clearPrintWrite(int kind, int hPosition, int vPosition,
+ int width, int height) throws JposException;
+ public void endInsertion() throws JposException;
+ public void endRemoval() throws JposException;
+ public void printWrite(int kind, int hPosition, int vPosition,
+ String data) throws JposException;
+ public void rotatePrint(int rotation) throws JposException;
+ public void validateData(String data) throws JposException;
+
+ // Event listener methods
+ public void addDataListener(DataListener l);
+ public void removeDataListener(DataListener l);
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addErrorListener(ErrorListener l);
+ public void removeErrorListener(ErrorListener l);
+ public void addOutputCompleteListener(OutputCompleteListener l);
+ public void removeOutputCompleteListener(OutputCompleteListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl16.java b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl16.java
new file mode 100644
index 0000000..7ae6ef1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl16.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRWControl16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Point Card Reader Writer for
+// release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PointCardRWControl16 extends PointCardRWControl15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl17.java
new file mode 100644
index 0000000..81d6dbc
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl17.java
@@ -0,0 +1,38 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRWControl17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Point Card Reader Writer for
+// release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PointCardRWControl17 extends PointCardRWControl16
+{
+ // Capabilities
+ public boolean getCapMapCharacterSet() throws JposException;
+
+ // Properties
+ public boolean getMapCharacterSet() throws JposException;
+ public void setMapCharacterSet(boolean mapCharacterSet)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl18.java
new file mode 100644
index 0000000..67e5945
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl18.java
@@ -0,0 +1,42 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRWControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Point Card Reader Writer for
+// release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PointCardRWControl18 extends PointCardRWControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl19.java
new file mode 100644
index 0000000..4696c62
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/PointCardRWControl19.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRWControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Point Card Reader Writer for
+// release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface PointCardRWControl19 extends PointCardRWControl18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RFIDScanner.java b/org.eclipse.osbp.fork.jpos/src/jpos/RFIDScanner.java
new file mode 100644
index 0000000..9a5630f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RFIDScanner.java
@@ -0,0 +1,1509 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RFIDScanner.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class RFIDScanner
+ extends BaseJposControl
+ implements RFIDScannerControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected RFIDScannerService112 service112;
+ protected RFIDScannerService113 service113;
+ protected RFIDScannerService114 service114;
+ protected Vector dataListeners;
+ protected Vector directIOListeners;
+ protected Vector errorListeners;
+ protected Vector outputCompleteListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public RFIDScanner()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS RFIDScanner Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ dataListeners = new Vector();
+ directIOListeners = new Vector();
+ errorListeners = new Vector();
+ outputCompleteListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapContinuousRead()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapContinuousRead();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapDisableTag()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapDisableTag();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapLockTag()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapLockTag();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapMultipleProtocols()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapMultipleProtocols();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapReadTimer()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapReadTimer();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRealTimeData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapRealTimeData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapWriteTag()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCapWriteTag();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public boolean getAutoDisable()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getAutoDisable();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAutoDisable(boolean autoDisable)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setAutoDisable(autoDisable);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getContinuousReadMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getContinuousReadMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getCurrentTagID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCurrentTagID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCurrentTagProtocol()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCurrentTagProtocol();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getCurrentTagUserData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getCurrentTagUserData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDataEventEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getDataEventEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setDataEventEnabled(dataEventEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getOutputID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getOutputID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getProtocolMask()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getProtocolMask();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setProtocolMask(int protocolMask)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setProtocolMask(protocolMask);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getReadTimerInterval()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getReadTimerInterval();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setReadTimerInterval(int readTimerInterval)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.setReadTimerInterval(readTimerInterval);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTagCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service112.getTagCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void clearInput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.clearInput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInputProperties()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.clearInputProperties();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearOutput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.clearOutput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void disableTag(byte[] tagID, int timeout, byte[] password)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.disableTag(tagID, timeout, password);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void firstTag()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.firstTag();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void lockTag(byte[] tagID, int timeout, byte[] password)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.lockTag(tagID, timeout, password);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void nextTag()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.nextTag();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void previousTag()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.previousTag();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void readTags(int cmd, byte[] filterID, byte[] filtermask, int start, int length, int timeout, byte[] password)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.readTags(cmd, filterID, filtermask, start, length, timeout, password);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void startReadTags(int cmd, byte[] filterID, byte[] filtermask, int start, int length, byte[] password)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.startReadTags(cmd, filterID, filtermask, start, length, password);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void stopReadTags(byte[] password)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.stopReadTags(password);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void writeTagData(byte[] tagID, byte[] userdata, int start, int timeout, byte[] password)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.writeTagData(tagID, userdata, start, timeout, password);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void writeTagID(byte[] sourceID, byte[] destID, int timeout, byte[] password)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service112.writeTagID(sourceID, destID, timeout, password);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new RFIDScannerCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (RFIDScannerService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement RFIDScannerService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (RFIDScannerService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement RFIDScannerService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (RFIDScannerService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement RFIDScannerService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.addElement(l);
+ }
+ }
+
+ public void removeDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.removeElement(l);
+ }
+ }
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.addElement(l);
+ }
+ }
+
+ public void removeErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.removeElement(l);
+ }
+ }
+
+ public void addOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.addElement(l);
+ }
+ }
+
+ public void removeOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class RFIDScannerCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)RFIDScanner.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ synchronized(RFIDScanner.this.dataListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < dataListeners.size(); x++)
+ {
+ ((DataListener)dataListeners.elementAt(x)).dataOccurred(e);
+ }
+ }
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(RFIDScanner.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ synchronized(RFIDScanner.this.errorListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < errorListeners.size(); x++)
+ {
+ ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e);
+ }
+ }
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ synchronized(RFIDScanner.this.outputCompleteListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < outputCompleteListeners.size(); x++)
+ {
+ ((OutputCompleteListener)outputCompleteListeners.elementAt(x)).outputCompleteOccurred(e);
+ }
+ }
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(RFIDScanner.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RFIDScanner.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/RFIDScanner.manifest.stub
new file mode 100644
index 0000000..e45563e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RFIDScanner.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/RFIDScanner.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RFIDScannerBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/RFIDScannerBeanInfo.java
new file mode 100644
index 0000000..95004e6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RFIDScannerBeanInfo.java
@@ -0,0 +1,109 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// RFIDScannerBeanInfo.java - Bean information for the JavaPOS RFIDScanner
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class RFIDScannerBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.RFIDScanner.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.RFIDScanner.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapContinuousRead"),
+ makeProperty("CapDisableTag"),
+ makeProperty("CapLockTag"),
+ makeProperty("CapMultipleProtocols"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapReadTimer"),
+ makeProperty("CapRealTimeData"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateFirmware"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapWriteTag"),
+
+ // Properties
+ makeProperty("AutoDisable"),
+ makeProperty("ContinuousReadMode"),
+ makeProperty("CurrentTagID"),
+ makeProperty("CurrentTagProtocol"),
+ makeProperty("CurrentTagUserData"),
+ makeProperty("DataCount"),
+ makeProperty("DataEventEnabled"),
+ makeProperty("OutputID"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("ProtocolMask"),
+ makeProperty("ReadTimerInterval"),
+ makeProperty("TagCount")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.RFIDScanner.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("Data"),
+ makeEvent("DirectIO"),
+ makeEvent("Error"),
+ makeEvent("OutputComplete"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RFIDScannerConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/RFIDScannerConst.java
new file mode 100644
index 0000000..00ead37
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RFIDScannerConst.java
@@ -0,0 +1,65 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RFIDScannerConst
+//
+// RFIDScanner constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface RFIDScannerConst
+{
+ /////////////////////////////////////////////////////////////////////
+ // "CapWriteTag" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int RFID_CWT_NONE = 0;
+ public static final int RFID_CWT_ID = 1;
+ public static final int RFID_CWT_USERDATA = 2;
+ public static final int RFID_CWT_ALL = 3;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapMultipleProtocols", "CurrentTagProtocol", and
+ // "ProtocolMask" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int RFID_PR_EPC0 = 0x00000001;
+ public static final int RFID_PR_0PLUS = 0x00000002;
+ public static final int RFID_PR_EPC1 = 0x00000004;
+ public static final int RFID_PR_EPC1G2 = 0x00000008;
+ public static final int RFID_PR_EPC2 = 0x00000010;
+ public static final int RFID_PR_ISO14443A = 0x00001000;
+ public static final int RFID_PR_ISO14443B = 0x00002000;
+ public static final int RFID_PR_ISO15693 = 0x00003000;
+ public static final int RFID_PR_ISO180006B = 0x00004000;
+ public static final int RFID_PR_OTHER = 0x01000000;
+ public static final int RFID_PR_ALL = 0x40000000; // (ProtocolMask only)
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "readTags" and "startReadTags" Methods: "Cmd" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int RFID_RT_ID = 0x10;
+ public static final int RFID_RT_FULLUSERDATA = 0x01;
+ public static final int RFID_RT_PARTIALUSERDATA = 0x02;
+ public static final int RFID_RT_ID_FULLUSERDATA = 0x11;
+ public static final int RFID_RT_ID_PARTIALUSERDATA = 0x12;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RFIDScannerControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/RFIDScannerControl112.java
new file mode 100644
index 0000000..540a95b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RFIDScannerControl112.java
@@ -0,0 +1,138 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group(including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RFIDScannerControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to RFID Scanner for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface RFIDScannerControl112 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapContinuousRead() throws JposException;
+ public boolean getCapDisableTag() throws JposException;
+ public boolean getCapLockTag() throws JposException;
+ public int getCapMultipleProtocols() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapReadTimer() throws JposException;
+ public boolean getCapRealTimeData() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+ public int getCapWriteTag() throws JposException;
+
+ // Properties
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public boolean getContinuousReadMode() throws JposException;
+ public byte[] getCurrentTagID() throws JposException;
+ public int getCurrentTagProtocol() throws JposException;
+ public byte[] getCurrentTagUserData() throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public int getOutputID() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getProtocolMask() throws JposException;
+ public void setProtocolMask(int protocolMask) throws JposException;
+ public int getReadTimerInterval() throws JposException;
+ public void setReadTimerInterval(int readTimerInterval) throws JposException;
+ public int getTagCount() throws JposException;
+
+ // Methods
+ public void clearInput()
+ throws JposException;
+ public void clearInputProperties()
+ throws JposException;
+ public void clearOutput()
+ throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void disableTag(byte[] tagID,
+ int timeout,
+ byte[] password)
+ throws JposException;
+ public void firstTag()
+ throws JposException;
+ public void lockTag(byte[] tagID,
+ int timeout,
+ byte[] password)
+ throws JposException;
+ public void nextTag()
+ throws JposException;
+ public void previousTag()
+ throws JposException;
+ public void readTags(int cmd,
+ byte[] filterID,
+ byte[] filtermask,
+ int start,
+ int length,
+ int timeout,
+ byte[] password)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void startReadTags(int cmd,
+ byte[] filterID,
+ byte[] filtermask,
+ int start,
+ int length,
+ byte[] password)
+ throws JposException;
+ public void stopReadTags(byte[] password)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+ public void writeTagData(byte[] tagID,
+ byte[] userdata,
+ int start,
+ int timeout,
+ byte[] password)
+ throws JposException;
+ public void writeTagID(byte[] sourceID,
+ byte[] destID,
+ int timeout,
+ byte[] password)
+ throws JposException;
+
+ // Event listener methods
+ public void addDataListener(DataListener l);
+ public void removeDataListener(DataListener l);
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addErrorListener(ErrorListener l);
+ public void removeErrorListener(ErrorListener l);
+ public void addOutputCompleteListener(OutputCompleteListener l);
+ public void removeOutputCompleteListener(OutputCompleteListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RFIDScannerControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/RFIDScannerControl113.java
new file mode 100644
index 0000000..8154b5a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RFIDScannerControl113.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group(including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RFIDScannerControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to RFID Scanner for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface RFIDScannerControl113 extends RFIDScannerControl112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RFIDScannerControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/RFIDScannerControl114.java
new file mode 100644
index 0000000..997e08d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RFIDScannerControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group(including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RFIDScannerControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to RFID Scanner for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface RFIDScannerControl114 extends RFIDScannerControl113
+{
+ // Nothing new added for release 1.14
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplay.java b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplay.java
new file mode 100644
index 0000000..372d60c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplay.java
@@ -0,0 +1,2296 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplay.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class RemoteOrderDisplay
+ extends BaseJposControl
+ implements RemoteOrderDisplayControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected RemoteOrderDisplayService13 service13;
+ protected RemoteOrderDisplayService14 service14;
+ protected RemoteOrderDisplayService15 service15;
+ protected RemoteOrderDisplayService16 service16;
+ protected RemoteOrderDisplayService17 service17;
+ protected RemoteOrderDisplayService18 service18;
+ protected RemoteOrderDisplayService19 service19;
+ protected RemoteOrderDisplayService110 service110;
+ protected RemoteOrderDisplayService111 service111;
+ protected RemoteOrderDisplayService112 service112;
+ protected RemoteOrderDisplayService113 service113;
+ protected RemoteOrderDisplayService114 service114;
+ protected Vector dataListeners;
+ protected Vector directIOListeners;
+ protected Vector errorListeners;
+ protected Vector outputCompleteListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public RemoteOrderDisplay()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS RemoteOrderDisplay Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service13 = null;
+ //service14 = null;
+ //service15 = null;
+ //service16 = null;
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ dataListeners = new Vector();
+ directIOListeners = new Vector();
+ errorListeners = new Vector();
+ outputCompleteListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSelectCharacterSet()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapSelectCharacterSet();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapTone()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapTone();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapTouch()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapTouch();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapTransaction()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapTransaction();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapMapCharacterSet()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getCapMapCharacterSet();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public boolean getAsyncMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getAsyncMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAsyncMode(boolean asyncMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setAsyncMode(asyncMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getAutoToneDuration()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getAutoToneDuration();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAutoToneDuration(int autoToneDuration)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setAutoToneDuration(autoToneDuration);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getAutoToneFrequency()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getAutoToneFrequency();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAutoToneFrequency(int autoToneFrequency)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setAutoToneFrequency(autoToneFrequency);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCharacterSet()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCharacterSet();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getCharacterSetList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCharacterSetList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getClocks()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getClocks();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCurrentUnitID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCurrentUnitID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCurrentUnitID(int currentUnitID)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setCurrentUnitID(currentUnitID);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDataEventEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getDataEventEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setDataEventEnabled(dataEventEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getErrorString()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getErrorString();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getErrorUnits()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getErrorUnits();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getEventString()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getEventString();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getEventType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getEventType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setEventType(int eventType)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setEventType(eventType);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getEventUnitID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getEventUnitID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getEventUnits()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getEventUnits();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getOutputID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getOutputID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSystemClocks()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getSystemClocks();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSystemVideoSaveBuffers()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getSystemVideoSaveBuffers();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTimeout()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getTimeout();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTimeout(int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setTimeout(timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getUnitsOnline()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getUnitsOnline();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getVideoDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getVideoDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getVideoMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getVideoMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setVideoMode(int videoMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setVideoMode(videoMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public String getVideoModesList()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getVideoModesList();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getVideoSaveBuffers()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getVideoSaveBuffers();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getMapCharacterSet()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service17.getMapCharacterSet();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setMapCharacterSet(boolean mapCharacterSet)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.7.0
+ if(serviceVersion < deviceVersion17)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.7.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service17.setMapCharacterSet(mapCharacterSet);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void clearInput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.clearInput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearOutput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.clearOutput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearVideo(int units, int attribute)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.clearVideo(units, attribute);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearVideoRegion(int units, int row, int column, int height, int width, int attribute)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.clearVideoRegion(units, row, column, height, width, attribute);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void controlClock(int units, int function, int clockId, int hour, int min, int sec, int row, int column, int attribute, int mode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.controlClock(units, function, clockId, hour, min, sec, row, column, attribute, mode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void controlCursor(int units, int function)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.controlCursor(units, function);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void copyVideoRegion(int units, int row, int column, int height, int width, int targetRow, int targetColumn)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.copyVideoRegion(units, row, column, height, width, targetRow, targetColumn);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void displayData(int units, int row, int column, int attribute, String data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.displayData(units, row, column, attribute, data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void drawBox(int units, int row, int column, int height, int width, int attribute, int borderType)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.drawBox(units, row, column, height, width, attribute, borderType);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void freeVideoRegion(int units, int bufferId)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.freeVideoRegion(units, bufferId);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetVideo(int units)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.resetVideo(units);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void restoreVideoRegion(int units, int targetRow, int targetColumn, int bufferId)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.restoreVideoRegion(units, targetRow, targetColumn, bufferId);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void saveVideoRegion(int units, int row, int column, int height, int width, int bufferId)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.saveVideoRegion(units, row, column, height, width, bufferId);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void selectChararacterSet(int units, int characterSet)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.selectChararacterSet(units, characterSet);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setCursor(int units, int row, int column)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setCursor(units, row, column);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void transactionDisplay(int units, int function)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.transactionDisplay(units, function);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateVideoRegionAttribute(int units, int function, int row, int column, int height, int width, int attribute)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.updateVideoRegionAttribute(units, function, row, column, height, width, attribute);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void videoSound(int units, int frequency, int duration, int numberOfCycles, int interSoundWait)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.videoSound(units, frequency, duration, numberOfCycles, interSoundWait);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new RemoteOrderDisplayCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service13 = null;
+ service14 = null;
+ service15 = null;
+ service16 = null;
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion13)
+ {
+ try
+ {
+ service13 = (RemoteOrderDisplayService13)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement RemoteOrderDisplayService13 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion14)
+ {
+ try
+ {
+ service14 = (RemoteOrderDisplayService14)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement RemoteOrderDisplayService14 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion15)
+ {
+ try
+ {
+ service15 = (RemoteOrderDisplayService15)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement RemoteOrderDisplayService15 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion16)
+ {
+ try
+ {
+ service16 = (RemoteOrderDisplayService16)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement RemoteOrderDisplayService16 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (RemoteOrderDisplayService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement RemoteOrderDisplayService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (RemoteOrderDisplayService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement RemoteOrderDisplayService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (RemoteOrderDisplayService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement RemoteOrderDisplayService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (RemoteOrderDisplayService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement RemoteOrderDisplayService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (RemoteOrderDisplayService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement RemoteOrderDisplayService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (RemoteOrderDisplayService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement RemoteOrderDisplayService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (RemoteOrderDisplayService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement RemoteOrderDisplayService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (RemoteOrderDisplayService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement RemoteOrderDisplayService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.addElement(l);
+ }
+ }
+
+ public void removeDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.removeElement(l);
+ }
+ }
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.addElement(l);
+ }
+ }
+
+ public void removeErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.removeElement(l);
+ }
+ }
+
+ public void addOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.addElement(l);
+ }
+ }
+
+ public void removeOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class RemoteOrderDisplayCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)RemoteOrderDisplay.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ synchronized(RemoteOrderDisplay.this.dataListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < dataListeners.size(); x++)
+ {
+ ((DataListener)dataListeners.elementAt(x)).dataOccurred(e);
+ }
+ }
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(RemoteOrderDisplay.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ synchronized(RemoteOrderDisplay.this.errorListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < errorListeners.size(); x++)
+ {
+ ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e);
+ }
+ }
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ synchronized(RemoteOrderDisplay.this.outputCompleteListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < outputCompleteListeners.size(); x++)
+ {
+ ((OutputCompleteListener)outputCompleteListeners.elementAt(x)).outputCompleteOccurred(e);
+ }
+ }
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(RemoteOrderDisplay.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplay.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplay.manifest.stub
new file mode 100644
index 0000000..4fb606b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplay.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/RemoteOrderDisplay.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayBeanInfo.java
new file mode 100644
index 0000000..f647209
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayBeanInfo.java
@@ -0,0 +1,122 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// RemoteOrderDisplayBeanInfo.java - Bean information for the JavaPOS RemoteOrderDisplay
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class RemoteOrderDisplayBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.RemoteOrderDisplay.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.RemoteOrderDisplay.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapSelectCharacterSet"),
+ makeProperty("CapTone"),
+ makeProperty("CapTouch"),
+ makeProperty("CapTransaction"),
+ makeProperty("CapMapCharacterSet"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapUpdateFirmware"),
+
+ // Properties
+ makeProperty("AsyncMode"),
+ makeProperty("AutoToneDuration"),
+ makeProperty("AutoToneFrequency"),
+ makeProperty("CharacterSet"),
+ makeProperty("CharacterSetList"),
+ makeProperty("Clocks"),
+ makeProperty("CurrentUnitID"),
+ makeProperty("DataCount"),
+ makeProperty("DataEventEnabled"),
+ makeProperty("ErrorString"),
+ makeProperty("ErrorUnits"),
+ makeProperty("EventString"),
+ makeProperty("EventType"),
+ makeProperty("EventUnitID"),
+ makeProperty("EventUnits"),
+ makeProperty("OutputID"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("SystemClocks"),
+ makeProperty("SystemVideoSaveBuffers"),
+ makeProperty("Timeout"),
+ makeProperty("UnitsOnline"),
+ makeProperty("VideoDataCount"),
+ makeProperty("VideoMode"),
+ makeProperty("VideoModesList"),
+ makeProperty("VideoSaveBuffers"),
+ makeProperty("MapCharacterSet"),
+
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.RemoteOrderDisplay.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("Data"),
+ makeEvent("DirectIO"),
+ makeEvent("Error"),
+ makeEvent("OutputComplete"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayConst.java
new file mode 100644
index 0000000..147b6e7
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayConst.java
@@ -0,0 +1,189 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayConst
+//
+// Remote Order Display constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 1998-Apr-20 JavaPOS Release 1.3 BS
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+// Added the following missing constants:
+// ROD_CLK_SHORT
+// ROD_CLK_NORMAL
+// ROD_CLK_12_LONG
+// ROD_CLK_24_LONG
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface RemoteOrderDisplayConst
+{
+ /////////////////////////////////////////////////////////////////////
+ // "CurrentUnitID" and "UnitsOnline" Properties
+ // and "Units" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int ROD_UID_1 = 0x00000001;
+ public static final int ROD_UID_2 = 0x00000002;
+ public static final int ROD_UID_3 = 0x00000004;
+ public static final int ROD_UID_4 = 0x00000008;
+ public static final int ROD_UID_5 = 0x00000010;
+ public static final int ROD_UID_6 = 0x00000020;
+ public static final int ROD_UID_7 = 0x00000040;
+ public static final int ROD_UID_8 = 0x00000080;
+ public static final int ROD_UID_9 = 0x00000100;
+ public static final int ROD_UID_10 = 0x00000200;
+ public static final int ROD_UID_11 = 0x00000400;
+ public static final int ROD_UID_12 = 0x00000800;
+ public static final int ROD_UID_13 = 0x00001000;
+ public static final int ROD_UID_14 = 0x00002000;
+ public static final int ROD_UID_15 = 0x00004000;
+ public static final int ROD_UID_16 = 0x00008000;
+ public static final int ROD_UID_17 = 0x00010000;
+ public static final int ROD_UID_18 = 0x00020000;
+ public static final int ROD_UID_19 = 0x00040000;
+ public static final int ROD_UID_20 = 0x00080000;
+ public static final int ROD_UID_21 = 0x00100000;
+ public static final int ROD_UID_22 = 0x00200000;
+ public static final int ROD_UID_23 = 0x00400000;
+ public static final int ROD_UID_24 = 0x00800000;
+ public static final int ROD_UID_25 = 0x01000000;
+ public static final int ROD_UID_26 = 0x02000000;
+ public static final int ROD_UID_27 = 0x04000000;
+ public static final int ROD_UID_28 = 0x08000000;
+ public static final int ROD_UID_29 = 0x10000000;
+ public static final int ROD_UID_30 = 0x20000000;
+ public static final int ROD_UID_31 = 0x40000000;
+ public static final int ROD_UID_32 = 0x80000000;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // Broadcast Methods: "Attribute" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int ROD_ATTR_BLINK = 0x80;
+
+ public static final int ROD_ATTR_BG_BLACK = 0x00;
+ public static final int ROD_ATTR_BG_BLUE = 0x10;
+ public static final int ROD_ATTR_BG_GREEN = 0x20;
+ public static final int ROD_ATTR_BG_CYAN = 0x30;
+ public static final int ROD_ATTR_BG_RED = 0x40;
+ public static final int ROD_ATTR_BG_MAGENTA = 0x50;
+ public static final int ROD_ATTR_BG_BROWN = 0x60;
+ public static final int ROD_ATTR_BG_GRAY = 0x70;
+
+ public static final int ROD_ATTR_INTENSITY = 0x08;
+
+ public static final int ROD_ATTR_FG_BLACK = 0x00;
+ public static final int ROD_ATTR_FG_BLUE = 0x01;
+ public static final int ROD_ATTR_FG_GREEN = 0x02;
+ public static final int ROD_ATTR_FG_CYAN = 0x03;
+ public static final int ROD_ATTR_FG_RED = 0x04;
+ public static final int ROD_ATTR_FG_MAGENTA = 0x05;
+ public static final int ROD_ATTR_FG_BROWN = 0x06;
+ public static final int ROD_ATTR_FG_GRAY = 0x07;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "DrawBox" Method: "BorderType" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int ROD_BDR_SINGLE = 1;
+ public static final int ROD_BDR_DOUBLE = 2;
+ public static final int ROD_BDR_SOLID = 3;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ControlClock" Method: "Function" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int ROD_CLK_START = 1;
+ public static final int ROD_CLK_PAUSE = 2;
+ public static final int ROD_CLK_RESUME = 3;
+ public static final int ROD_CLK_MOVE = 4;
+ public static final int ROD_CLK_STOP = 5;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ControlClock" Method: "Mode" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int ROD_CLK_SHORT = 1;
+ public static final int ROD_CLK_NORMAL = 2;
+ public static final int ROD_CLK_12_LONG = 3;
+ public static final int ROD_CLK_24_LONG = 4;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ControlCursor" Method: "Function" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int ROD_CRS_LINE = 1;
+ public static final int ROD_CRS_LINE_BLINK = 2;
+ public static final int ROD_CRS_BLOCK = 3;
+ public static final int ROD_CRS_BLOCK_BLINK = 4;
+ public static final int ROD_CRS_OFF = 5;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "SelectCharacterSet" Method: "CharacterSet" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int ROD_CS_UNICODE = 997;
+ public static final int ROD_CS_ASCII = 998;
+ public static final int ROD_CS_ANSI = 999;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "TransactionDisplay" Method: "Function" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int ROD_TD_TRANSACTION = 11;
+ public static final int ROD_TD_NORMAL = 12;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "UpdateVideoRegionAttribute" Method: "Function" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int ROD_UA_SET = 1;
+ public static final int ROD_UA_INTENSITY_ON = 2;
+ public static final int ROD_UA_INTENSITY_OFF = 3;
+ public static final int ROD_UA_REVERSE_ON = 4;
+ public static final int ROD_UA_REVERSE_OFF = 5;
+ public static final int ROD_UA_BLINK_ON = 6;
+ public static final int ROD_UA_BLINK_OFF = 7;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "EventTypes" Property and "DataEvent" Event: "Status" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int ROD_DE_TOUCH_UP = 0x01;
+ public static final int ROD_DE_TOUCH_DOWN = 0x02;
+ public static final int ROD_DE_TOUCH_MOVE = 0x04;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ResultCodeExtended" Property Constants for Remote Order Display
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_EROD_BADCLK = 1 + JposConst.JPOSERREXT; // ControlClock
+ public static final int JPOS_EROD_NOCLOCKS = 2 + JposConst.JPOSERREXT; // ControlClock
+ public static final int JPOS_EROD_NOREGION = 3 + JposConst.JPOSERREXT; // RestoreVideo
+ // Region
+ public static final int JPOS_EROD_NOBUFFERS = 4 + JposConst.JPOSERREXT; // SaveVideoRegion
+ public static final int JPOS_EROD_NOROOM = 5 + JposConst.JPOSERREXT; // SaveVideoRegion
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl110.java
new file mode 100644
index 0000000..4374a31
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl110.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Remote Order Display for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface RemoteOrderDisplayControl110 extends RemoteOrderDisplayControl19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl111.java
new file mode 100644
index 0000000..9f91325
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Remote Order Display for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface RemoteOrderDisplayControl111 extends RemoteOrderDisplayControl110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl112.java
new file mode 100644
index 0000000..4fec9cf
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Remote Order Display for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface RemoteOrderDisplayControl112 extends RemoteOrderDisplayControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl113.java
new file mode 100644
index 0000000..d068a73
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Remote Order Display for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface RemoteOrderDisplayControl113 extends RemoteOrderDisplayControl112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl114.java
new file mode 100644
index 0000000..2b71e8f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Remote Order Display for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface RemoteOrderDisplayControl114 extends RemoteOrderDisplayControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl13.java b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl13.java
new file mode 100644
index 0000000..f3b8ac1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl13.java
@@ -0,0 +1,128 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayControl13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Remote Order Display for release
+// 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface RemoteOrderDisplayControl13 extends BaseControl
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapSelectCharacterSet() throws JposException;
+ public boolean getCapTone() throws JposException;
+ public boolean getCapTouch() throws JposException;
+ public boolean getCapTransaction() throws JposException;
+
+ // Properties
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public int getAutoToneDuration() throws JposException;
+ public void setAutoToneDuration(int autoToneDuration)
+ throws JposException;
+ public int getAutoToneFrequency() throws JposException;
+ public void setAutoToneFrequency(int autoToneFrequency)
+ throws JposException;
+ public int getCharacterSet() throws JposException;
+ public String getCharacterSetList() throws JposException;
+ public int getClocks() throws JposException;
+ public int getCurrentUnitID() throws JposException;
+ public void setCurrentUnitID(int currentUnitID) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public String getErrorString() throws JposException;
+ public int getErrorUnits() throws JposException;
+ public String getEventString() throws JposException;
+ public int getEventType() throws JposException;
+ public void setEventType(int eventType) throws JposException;
+ public int getEventUnitID() throws JposException;
+ public int getEventUnits() throws JposException;
+ public int getOutputID() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getSystemClocks() throws JposException;
+ public int getSystemVideoSaveBuffers() throws JposException;
+ public int getTimeout() throws JposException;
+ public void setTimeout(int timeout) throws JposException;
+ public int getUnitsOnline() throws JposException;
+ public int getVideoDataCount() throws JposException;
+ public int getVideoMode() throws JposException;
+ public void setVideoMode(int videoMode) throws JposException;
+ public String getVideoModesList() throws JposException;
+ public int getVideoSaveBuffers() throws JposException;
+
+ // Methods
+ public void clearInput() throws JposException;
+ public void clearOutput() throws JposException;
+ public void clearVideo(int units, int attribute) throws JposException;
+ public void clearVideoRegion(int units, int row, int column, int height,
+ int width, int attribute) throws JposException;
+ public void controlClock(int units, int function, int clockId, int hour,
+ int min, int sec, int row, int column, int attribute,
+ int mode) throws JposException;
+ public void controlCursor(int units, int function) throws JposException;
+ public void copyVideoRegion(int units, int row, int column, int height,
+ int width, int targetRow, int targetColumn)
+ throws JposException;
+ public void displayData(int units, int row, int column, int attribute,
+ String data) throws JposException;
+ public void drawBox(int units, int row, int column, int height,
+ int width, int attribute, int borderType)
+ throws JposException;
+ public void freeVideoRegion(int units, int bufferId)
+ throws JposException;
+ public void resetVideo(int units) throws JposException;
+ public void restoreVideoRegion(int units, int targetRow,
+ int targetColumn, int bufferId) throws JposException;
+ public void saveVideoRegion(int units, int row, int column,
+ int height, int width, int bufferId)
+ throws JposException;
+ public void selectChararacterSet(int units, int characterSet)
+ throws JposException;
+ public void setCursor(int units, int row, int column)
+ throws JposException;
+ public void transactionDisplay(int units, int function)
+ throws JposException;
+ public void updateVideoRegionAttribute(int units, int function, int row,
+ int column, int height, int width, int attribute)
+ throws JposException;
+ public void videoSound(int units, int frequency, int duration,
+ int numberOfCycles, int interSoundWait)
+ throws JposException;
+
+ // Event listener methods
+ public void addDataListener(DataListener l);
+ public void removeDataListener(DataListener l);
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addErrorListener(ErrorListener l);
+ public void removeErrorListener(ErrorListener l);
+ public void addOutputCompleteListener(OutputCompleteListener l);
+ public void removeOutputCompleteListener(OutputCompleteListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl14.java b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl14.java
new file mode 100644
index 0000000..5eb07e1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayControl14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Remote Order Display for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface RemoteOrderDisplayControl14 extends RemoteOrderDisplayControl13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl15.java b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl15.java
new file mode 100644
index 0000000..eaf5786
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl15.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayControl15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Remote Order Display for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 00-04-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface RemoteOrderDisplayControl15 extends RemoteOrderDisplayControl14
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl16.java b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl16.java
new file mode 100644
index 0000000..cc8ac2d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl16.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayControl16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Remote Order Display for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-04-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface RemoteOrderDisplayControl16 extends RemoteOrderDisplayControl15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl17.java
new file mode 100644
index 0000000..58ef6bc
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl17.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayControl17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Remote Order Display for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface RemoteOrderDisplayControl17 extends RemoteOrderDisplayControl16
+{
+ // Capabilities
+ public boolean getCapMapCharacterSet() throws JposException;
+
+ // Properties
+ public boolean getMapCharacterSet() throws JposException;
+ public void setMapCharacterSet(boolean mapCharacterSet)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl18.java
new file mode 100644
index 0000000..511dbed
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl18.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Remote Order Display for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 03-Jun-2003 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface RemoteOrderDisplayControl18 extends RemoteOrderDisplayControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl19.java
new file mode 100644
index 0000000..8d4b3b6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/RemoteOrderDisplayControl19.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Remote Order Display for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface RemoteOrderDisplayControl19 extends RemoteOrderDisplayControl18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/Scale.java b/org.eclipse.osbp.fork.jpos/src/jpos/Scale.java
new file mode 100644
index 0000000..9cbdbe6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/Scale.java
@@ -0,0 +1,2249 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// Scale.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class Scale
+ extends BaseJposControl
+ implements ScaleControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected ScaleService12 service12;
+ protected ScaleService13 service13;
+ protected ScaleService14 service14;
+ protected ScaleService15 service15;
+ protected ScaleService16 service16;
+ protected ScaleService17 service17;
+ protected ScaleService18 service18;
+ protected ScaleService19 service19;
+ protected ScaleService110 service110;
+ protected ScaleService111 service111;
+ protected ScaleService112 service112;
+ protected ScaleService113 service113;
+ protected ScaleService114 service114;
+ protected Vector directIOListeners;
+ protected Vector dataListeners;
+ protected Vector errorListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public Scale()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS Scale Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service12 = null;
+ //service13 = null;
+ //service14 = null;
+ //service15 = null;
+ //service16 = null;
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ directIOListeners = new Vector();
+ dataListeners = new Vector();
+ errorListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapDisplay()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapDisplay();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapDisplayText()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapDisplayText();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapPriceCalculating()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPriceCalculating();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapTareWeight()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapTareWeight();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapZeroScale()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapZeroScale();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatusUpdate()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapStatusUpdate();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapFreezeValue()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service114.getCapFreezeValue();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapReadLiveWeightWithTare()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service114.getCapReadLiveWeightWithTare();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSetPriceCalculationMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service114.getCapSetPriceCalculationMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSetUnitPriceWithWeightUnit()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service114.getCapSetUnitPriceWithWeightUnit();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapSpecialTare()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service114.getCapSpecialTare();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapTarePriority()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service114.getCapTarePriority();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public int getMaximumWeight()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getMaximumWeight();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getWeightUnit()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getWeightUnit();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getAsyncMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getAsyncMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAsyncMode(boolean asyncMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setAsyncMode(asyncMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getAutoDisable()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getAutoDisable();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAutoDisable(boolean autoDisable)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setAutoDisable(autoDisable);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDataEventEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getDataEventEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setDataEventEnabled(dataEventEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMaxDisplayTextChars()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getMaxDisplayTextChars();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public long getSalesPrice()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getSalesPrice();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTareWeight()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getTareWeight();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTareWeight(int tareWeight)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setTareWeight(tareWeight);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public long getUnitPrice()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getUnitPrice();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setUnitPrice(long unitPrice)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setUnitPrice(unitPrice);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getScaleLiveWeight()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getScaleLiveWeight();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getStatusNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getStatusNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setStatusNotify(int statusNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.setStatusNotify(statusNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getZeroValid()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.13.0
+ if(serviceVersion < deviceVersion113)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.13.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service113.getZeroValid();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setZeroValid(boolean zeroValid)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.13.0
+ if(serviceVersion < deviceVersion113)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.13.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service113.setZeroValid(zeroValid);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMinimumWeight()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service114.getMinimumWeight();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void readWeight(int[] weightData, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.readWeight(weightData, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.clearInput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void displayText(String data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.displayText(data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void zeroScale()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.zeroScale();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void doPriceCalculating(int[] weightValue, int[] tare, long[] unitPrice, long[] unitPriceX, int[] weightUnitX, int[] weightNumeratorX, int[] weightDenominatorX, long[] price, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service114.doPriceCalculating(weightValue, tare, unitPrice, unitPriceX, weightUnitX, weightNumeratorX, weightDenominatorX, price, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void freezeValue(int item, boolean freeze)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service114.freezeValue(item, freeze);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void readLiveWeightWithTare(int[] weightData, int[] tare, int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service114.readLiveWeightWithTare(weightData, tare, timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPriceCalculationMode(int mode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service114.setPriceCalculationMode(mode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setSpecialTare(int mode, int data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service114.setSpecialTare(mode, data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTarePrioity(int priority)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service114.setTarePrioity(priority);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setUnitPriceWithWeightUnit(long unitPrice, int weightUnit, int weightNumerator, int weightDenominator)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.14.0
+ if(serviceVersion < deviceVersion114)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.14.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service114.setUnitPriceWithWeightUnit(unitPrice, weightUnit, weightNumerator, weightDenominator);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new ScaleCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service12 = null;
+ service13 = null;
+ service14 = null;
+ service15 = null;
+ service16 = null;
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion12)
+ {
+ try
+ {
+ service12 = (ScaleService12)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScaleService12 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion13)
+ {
+ try
+ {
+ service13 = (ScaleService13)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScaleService13 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion14)
+ {
+ try
+ {
+ service14 = (ScaleService14)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScaleService14 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion15)
+ {
+ try
+ {
+ service15 = (ScaleService15)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScaleService15 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion16)
+ {
+ try
+ {
+ service16 = (ScaleService16)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScaleService16 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (ScaleService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScaleService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (ScaleService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScaleService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (ScaleService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScaleService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (ScaleService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScaleService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (ScaleService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScaleService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (ScaleService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScaleService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (ScaleService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScaleService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (ScaleService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScaleService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.addElement(l);
+ }
+ }
+
+ public void removeDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.removeElement(l);
+ }
+ }
+
+ public void addErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.addElement(l);
+ }
+ }
+
+ public void removeErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class ScaleCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)Scale.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ synchronized(Scale.this.dataListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < dataListeners.size(); x++)
+ {
+ ((DataListener)dataListeners.elementAt(x)).dataOccurred(e);
+ }
+ }
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(Scale.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ synchronized(Scale.this.errorListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < errorListeners.size(); x++)
+ {
+ ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e);
+ }
+ }
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(Scale.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/Scale.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/Scale.manifest.stub
new file mode 100644
index 0000000..57ec37a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/Scale.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/Scale.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScaleBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleBeanInfo.java
new file mode 100644
index 0000000..3370c48
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleBeanInfo.java
@@ -0,0 +1,116 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// ScaleBeanInfo.java - Bean information for the JavaPOS Scale
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class ScaleBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.Scale.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.Scale.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapDisplay"),
+ makeProperty("CapDisplayText"),
+ makeProperty("CapPriceCalculating"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapTareWeight"),
+ makeProperty("CapZeroScale"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapStatusUpdate"),
+ makeProperty("CapUpdateFirmware"),
+ makeProperty("CapFreezeValue"),
+ makeProperty("CapReadLiveWeightWithTare"),
+ makeProperty("CapSetPriceCalculationMode"),
+ makeProperty("CapSetUnitPriceWithWeightUnit"),
+ makeProperty("CapSpecialTare"),
+ makeProperty("CapTarePriority"),
+
+ // Properties
+ makeProperty("MaximumWeight"),
+ makeProperty("WeightUnit"),
+ makeProperty("AsyncMode"),
+ makeProperty("AutoDisable"),
+ makeProperty("DataCount"),
+ makeProperty("DataEventEnabled"),
+ makeProperty("MaxDisplayTextChars"),
+ makeProperty("SalesPrice"),
+ makeProperty("TareWeight"),
+ makeProperty("UnitPrice"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("ScaleLiveWeight"),
+ makeProperty("StatusNotify"),
+ makeProperty("ZeroValid"),
+ makeProperty("MinimumWeight")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.Scale.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("Data"),
+ makeEvent("DirectIO"),
+ makeEvent("Error"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScaleConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleConst.java
new file mode 100644
index 0000000..cf02636
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleConst.java
@@ -0,0 +1,144 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleConst
+//
+// Scale constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 1998-Feb-18 JavaPOS Release 1.2 BS
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+// Added the following constants:
+// SCAL_SN_DISABLED
+// SCAL_SN_ENABLED
+// JPOS_ESCAL_UNDER_ZERO
+// JPOS_ESCAL_SAME_WEIGHT
+// SCL_SUE_STABLE_WEIGHT
+// SCL_SUE_WEIGHT_UNSTABLE
+// SCL_SUE_WEIGHT_ZERO
+// SCL_SUE_WEIGHT_OVERWEIGHT
+// SCL_SUE_NOT_READY
+// SCL_SUE_WEIGHT_UNDER_ZERO
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+// Added duplicate SUE constants to match names used in the spec.
+// (i.e. SCAL_SUE_STABLE_WEIGHT instead of SCL_SUE_STABLE_WEIGHT)
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+// Added the following constants:
+// SCAL_SFR_MANUAL_TARE
+// SCAL_SFR_WEIGHTED_TARE
+// SCAL_SFR_PERCENT_TARE
+// SCAL_SFR_UNITPRICE
+// SCAL_PCM_PRICE_LABELING
+// SCAL_PCM_SELF_SERVICE
+// SCAL_PCM_OPERATOR
+// SCAL_SST_DEFAULT
+// SCAL_SST_MANUAL
+// SCAL_SST_PERCENT
+// SCAL_SST_WEIGHTED
+// SCAL_STP_FIRST
+// SCAL_STP_NONE
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface ScaleConst
+{
+ //###################################################################
+ //#### Scale Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // "WeightUnit" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int SCAL_WU_GRAM = 1;
+ public static final int SCAL_WU_KILOGRAM = 2;
+ public static final int SCAL_WU_OUNCE = 3;
+ public static final int SCAL_WU_POUND = 4;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "StatusNotify" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int SCAL_SN_DISABLED = 1;
+ public static final int SCAL_SN_ENABLED = 2;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "freezeValue" Method "item" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int SCAL_SFR_MANUAL_TARE = 0x00000001; // Added in 1.14
+ public static final int SCAL_SFR_WEIGHTED_TARE = 0x00000002; // Added in 1.14
+ public static final int SCAL_SFR_PERCENT_TARE = 0x00000004; // Added in 1.14
+ public static final int SCAL_SFR_UNITPRICE = 0x00000008; // Added in 1.14
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "setPriceCalculationMode" Method "mode" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int SCAL_PCM_PRICE_LABELING = 1; // Added in 1.14
+ public static final int SCAL_PCM_SELF_SERVICE = 2; // Added in 1.14
+ public static final int SCAL_PCM_OPERATOR = 3; // Added in 1.14
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "setSpecialTare" Method "mode" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int SCAL_SST_DEFAULT = 1; // Added in 1.14
+ public static final int SCAL_SST_MANUAL = 2; // Added in 1.14
+ public static final int SCAL_SST_PERCENT = 3; // Added in 1.14
+ public static final int SCAL_SST_WEIGHTED = 4; // Added in 1.14
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "setSpecialTare" Method "priority" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int SCAL_STP_FIRST = 1; // Added in 1.14
+ public static final int SCAL_STP_NONE = 2; // Added in 1.14
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "StatusUpdateEvent" "Status" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int SCL_SUE_STABLE_WEIGHT = 11;
+ public static final int SCL_SUE_WEIGHT_UNSTABLE = 12;
+ public static final int SCL_SUE_WEIGHT_ZERO = 13;
+ public static final int SCL_SUE_WEIGHT_OVERWEIGHT = 14;
+ public static final int SCL_SUE_NOT_READY = 15;
+ public static final int SCL_SUE_WEIGHT_UNDER_ZERO = 16;
+
+ // 1.10 Correction: new names that actually match the UnifiedPOS
+ // specification
+ public static final int SCAL_SUE_STABLE_WEIGHT = 11;
+ public static final int SCAL_SUE_WEIGHT_UNSTABLE = 12;
+ public static final int SCAL_SUE_WEIGHT_ZERO = 13;
+ public static final int SCAL_SUE_WEIGHT_OVERWEIGHT = 14;
+ public static final int SCAL_SUE_NOT_READY = 15;
+ public static final int SCAL_SUE_WEIGHT_UNDER_ZERO = 16;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ResultCodeExtended" Property Constants for Scale
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_ESCAL_OVERWEIGHT = 1 + JposConst.JPOSERREXT; // ReadWeight
+ public static final int JPOS_ESCAL_UNDER_ZERO = 2 + JposConst.JPOSERREXT; // ReadWeight
+ public static final int JPOS_ESCAL_SAME_WEIGHT = 3 + JposConst.JPOSERREXT; // ReadWeight
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl110.java
new file mode 100644
index 0000000..64b4c5d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl110.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScaleControl110 extends ScaleControl19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl111.java
new file mode 100644
index 0000000..cd1f934
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScaleControl111 extends ScaleControl110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl112.java
new file mode 100644
index 0000000..a1ded82
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScaleControl112 extends ScaleControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl113.java
new file mode 100644
index 0000000..66e4d91
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl113.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScaleControl113 extends ScaleControl112
+{
+ // Properties
+ public boolean getZeroValid() throws JposException;
+ public void setZeroValid(boolean zeroValid) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl114.java
new file mode 100644
index 0000000..2026411
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl114.java
@@ -0,0 +1,64 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Scale for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScaleControl114 extends ScaleControl113
+{
+ // Capabilities
+ public boolean getCapFreezeValue() throws JposException;
+ public boolean getCapReadLiveWeightWithTare() throws JposException;
+ public boolean getCapSetPriceCalculationMode() throws JposException;
+ public boolean getCapSetUnitPriceWithWeightUnit() throws JposException;
+ public boolean getCapSpecialTare() throws JposException;
+ public boolean getCapTarePriority() throws JposException;
+
+ // Properties
+ public int getMinimumWeight() throws JposException;
+
+ // Methods
+ public void doPriceCalculating(int[] weightValue,
+ int[] tare,
+ long[] unitPrice,
+ long[] unitPriceX,
+ int[] weightUnitX,
+ int[] weightNumeratorX,
+ int[] weightDenominatorX,
+ long[] price,
+ int timeout) throws JposException;
+ public void freezeValue(int item,
+ boolean freeze) throws JposException;
+ public void readLiveWeightWithTare(int[] weightData,
+ int[] tare,
+ int timeout) throws JposException;
+ public void setPriceCalculationMode(int mode) throws JposException;
+ public void setSpecialTare(int mode,
+ int data) throws JposException;
+ public void setTarePrioity(int priority) throws JposException;
+ public void setUnitPriceWithWeightUnit(long unitPrice,
+ int weightUnit,
+ int weightNumerator,
+ int weightDenominator) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl12.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl12.java
new file mode 100644
index 0000000..6fb7afe
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl12.java
@@ -0,0 +1,44 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleControl12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to Scale for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScaleControl12 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapDisplay() throws JposException;
+
+ // Properties
+ public int getMaximumWeight() throws JposException;
+ public int getWeightUnit() throws JposException;
+
+ // Methods
+ public void readWeight(int[] weightData, int timeout)
+ throws JposException;
+
+ // Event listener methods
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl13.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl13.java
new file mode 100644
index 0000000..b242e37
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl13.java
@@ -0,0 +1,67 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleControl13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScaleControl13 extends ScaleControl12
+{
+ // Capabilities
+ public boolean getCapDisplayText() throws JposException;
+ public boolean getCapPriceCalculating() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapTareWeight() throws JposException;
+ public boolean getCapZeroScale() throws JposException;
+
+ // Properties
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled) throws JposException;
+ public int getMaxDisplayTextChars() throws JposException;
+ public long getSalesPrice() throws JposException;
+ public int getTareWeight() throws JposException;
+ public void setTareWeight(int tareWeight) throws JposException;
+ public long getUnitPrice() throws JposException;
+ public void setUnitPrice(long unitPrice) throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+
+ // Methods
+ public void clearInput() throws JposException;
+ public void displayText(String data) throws JposException;
+ public void zeroScale() throws JposException;
+
+ // Event listener methods
+ public void addDataListener(DataListener l);
+ public void removeDataListener(DataListener l);
+ public void addErrorListener(ErrorListener l);
+ public void removeErrorListener(ErrorListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl14.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl14.java
new file mode 100644
index 0000000..94c3d57
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleControl14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScaleControl14 extends ScaleControl13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl15.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl15.java
new file mode 100644
index 0000000..1e48891
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl15.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleControl15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 00-04-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScaleControl15 extends ScaleControl14
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl16.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl16.java
new file mode 100644
index 0000000..7c5f3cc
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl16.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleControl16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-04-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScaleControl16 extends ScaleControl15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl17.java
new file mode 100644
index 0000000..58a9e3f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl17.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleControl17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScaleControl17 extends ScaleControl16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl18.java
new file mode 100644
index 0000000..bd10414
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl18.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScaleControl18 extends ScaleControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl19.java
new file mode 100644
index 0000000..b8a810d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScaleControl19.java
@@ -0,0 +1,45 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScaleControl19 extends ScaleControl18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapStatusUpdate() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Properties
+ public int getScaleLiveWeight() throws JposException;
+ public int getStatusNotify() throws JposException;
+ public void setStatusNotify(int statusNotify) throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/Scanner.java b/org.eclipse.osbp.fork.jpos/src/jpos/Scanner.java
new file mode 100644
index 0000000..8396882
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/Scanner.java
@@ -0,0 +1,1176 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// Scanner.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class Scanner
+ extends BaseJposControl
+ implements ScannerControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected ScannerService12 service12;
+ protected ScannerService13 service13;
+ protected ScannerService14 service14;
+ protected ScannerService15 service15;
+ protected ScannerService16 service16;
+ protected ScannerService17 service17;
+ protected ScannerService18 service18;
+ protected ScannerService19 service19;
+ protected ScannerService110 service110;
+ protected ScannerService111 service111;
+ protected ScannerService112 service112;
+ protected ScannerService113 service113;
+ protected ScannerService114 service114;
+ protected Vector dataListeners;
+ protected Vector directIOListeners;
+ protected Vector errorListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public Scanner()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS Scanner Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service12 = null;
+ //service13 = null;
+ //service14 = null;
+ //service15 = null;
+ //service16 = null;
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ dataListeners = new Vector();
+ directIOListeners = new Vector();
+ errorListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public boolean getAutoDisable()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getAutoDisable();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAutoDisable(boolean autoDisable)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setAutoDisable(autoDisable);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDataEventEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getDataEventEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setDataEventEnabled(dataEventEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDecodeData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getDecodeData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDecodeData(boolean decodeData)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setDecodeData(decodeData);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getScanData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getScanData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getScanDataLabel()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getScanDataLabel();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getScanDataType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getScanDataType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void clearInput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.clearInput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInputProperties()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.10.0
+ if(serviceVersion < deviceVersion110)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.10.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.clearInputProperties();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new ScannerCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service12 = null;
+ service13 = null;
+ service14 = null;
+ service15 = null;
+ service16 = null;
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion12)
+ {
+ try
+ {
+ service12 = (ScannerService12)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScannerService12 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion13)
+ {
+ try
+ {
+ service13 = (ScannerService13)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScannerService13 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion14)
+ {
+ try
+ {
+ service14 = (ScannerService14)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScannerService14 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion15)
+ {
+ try
+ {
+ service15 = (ScannerService15)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScannerService15 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion16)
+ {
+ try
+ {
+ service16 = (ScannerService16)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScannerService16 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (ScannerService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScannerService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (ScannerService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScannerService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (ScannerService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScannerService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (ScannerService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScannerService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (ScannerService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScannerService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (ScannerService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScannerService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (ScannerService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScannerService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (ScannerService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ScannerService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.addElement(l);
+ }
+ }
+
+ public void removeDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.removeElement(l);
+ }
+ }
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.addElement(l);
+ }
+ }
+
+ public void removeErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class ScannerCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)Scanner.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ synchronized(Scanner.this.dataListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < dataListeners.size(); x++)
+ {
+ ((DataListener)dataListeners.elementAt(x)).dataOccurred(e);
+ }
+ }
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(Scanner.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ synchronized(Scanner.this.errorListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < errorListeners.size(); x++)
+ {
+ ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e);
+ }
+ }
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(Scanner.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/Scanner.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/Scanner.manifest.stub
new file mode 100644
index 0000000..2641fa1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/Scanner.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/Scanner.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScannerBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerBeanInfo.java
new file mode 100644
index 0000000..7d047db
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerBeanInfo.java
@@ -0,0 +1,97 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// ScannerBeanInfo.java - Bean information for the JavaPOS Scanner
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class ScannerBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.Scanner.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.Scanner.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapUpdateFirmware"),
+
+ // Properties
+ makeProperty("AutoDisable"),
+ makeProperty("DataCount"),
+ makeProperty("DataEventEnabled"),
+ makeProperty("DecodeData"),
+ makeProperty("ScanData"),
+ makeProperty("ScanDataLabel"),
+ makeProperty("ScanDataType"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.Scanner.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("Data"),
+ makeEvent("DirectIO"),
+ makeEvent("Error"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScannerConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerConst.java
new file mode 100644
index 0000000..4f45dec
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerConst.java
@@ -0,0 +1,198 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerConst
+//
+// Scanner constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 1998-Feb-18 JavaPOS Release 1.2 BS
+// 2003-Jun-03 JavaPOS Release 1.8 BS
+// Added new ScanDataType constants.
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+// Added new ScanDataType constants:
+// SCAN_SDT_DATAMATRIX
+// SCAN_SDT_QRCODE
+// SCAN_SDT_UQRCODE
+// SCAN_SDT_AZTEC
+// SCAN_SDT_UPDF417
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// Added new ScanDataType constants:
+// SCAN_SDT_GS1DATABAR
+// SCAN_SDT_GS1DATABAR_E
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+// Added new ScanDataType constants:
+// SCAN_SDT_ITF_CK
+// SCAN_SDT_GS1DATABAR_TYPE2
+// SCAN_SDT_AMES
+// SCAN_SDT_TFMAT
+// SCAN_SDT_Code39_CK
+// SCAN_SDT_Code32
+// SCAN_SDT_CodeCIP
+// SCAN_SDT_TRIOPTIC39
+// SCAN_SDT_ISBT128
+// SCAN_SDT_Code11
+// SCAN_SDT_MSI
+// SCAN_SDT_PLESSEY
+// SCAN_SDT_TELEPEN
+// SCAN_SDT_TLC39
+// SCAN_SDT_GS1DATAMATRIX
+// SCAN_SDT_GS1QRCODE
+// SCAN_SDT_Code49
+// SCAN_SDT_Code16k
+// SCAN_SDT_CodablockA
+// SCAN_SDT_CodablockF
+// SCAN_SDT_Codablock256
+// SCAN_SDT_HANXIN
+// SCAN_SDT_AusPost
+// SCAN_SDT_CanPost
+// SCAN_SDT_ChinaPost
+// SCAN_SDT_DutchKix
+// SCAN_SDT_InfoMail
+// SCAN_SDT_JapanPost
+// SCAN_SDT_KoreanPost
+// SCAN_SDT_SwedenPost
+// SCAN_SDT_UkPost
+// SCAN_SDT_UsIntelligent
+// SCAN_SDT_UsPlanet
+// SCAN_SDT_PostNet
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface ScannerConst
+{
+ //###################################################################
+ //#### Scanner Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // "ScanDataType" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ // One dimensional symbologies
+ public static final int SCAN_SDT_UPCA = 101; // Digits
+ public static final int SCAN_SDT_UPCE = 102; // Digits
+ public static final int SCAN_SDT_JAN8 = 103; // = EAN 8
+ public static final int SCAN_SDT_EAN8 = 103; // = JAN 8
+ public static final int SCAN_SDT_JAN13 = 104; // = EAN 13
+ public static final int SCAN_SDT_EAN13 = 104; // = JAN 13
+ public static final int SCAN_SDT_TF = 105; // (Discrete 2 of 5)
+ // Digits
+ public static final int SCAN_SDT_ITF = 106; // (Interleaved 2 of 5)
+ // Digits
+ public static final int SCAN_SDT_Codabar = 107; // Digits, -, $, :, /, .,
+ // +; 4 start/stop
+ // characters (a, b, c,
+ // d)
+ public static final int SCAN_SDT_Code39 = 108; // Alpha, Digits, Space,
+ // -, ., $, /, +, %;
+ // start/stop (*)
+ // Also has Full Ascii
+ // feature
+ public static final int SCAN_SDT_Code93 = 109; // Same characters as
+ // Code 39
+ public static final int SCAN_SDT_Code128 = 110; // 128 data characters
+ public static final int SCAN_SDT_UPCA_S = 111; // UPC-A with
+ // supplemental barcode
+ public static final int SCAN_SDT_UPCE_S = 112; // UPC-E with
+ // supplemental barcode
+ public static final int SCAN_SDT_UPCD1 = 113; // UPC-D1
+ public static final int SCAN_SDT_UPCD2 = 114; // UPC-D2
+ public static final int SCAN_SDT_UPCD3 = 115; // UPC-D3
+ public static final int SCAN_SDT_UPCD4 = 116; // UPC-D4
+ public static final int SCAN_SDT_UPCD5 = 117; // UPC-D5
+ public static final int SCAN_SDT_EAN8_S = 118; // EAN 8 with
+ // supplemental barcode
+ public static final int SCAN_SDT_EAN13_S = 119; // EAN 13 with
+ // supplemental barcode
+ public static final int SCAN_SDT_EAN128 = 120; // EAN 128
+ public static final int SCAN_SDT_OCRA = 121; // OCR "A"
+ public static final int SCAN_SDT_OCRB = 122; // OCR "B"
+
+ // One dimensional symbologies (Added in Release 1.8)
+ // The following RSS constants deprecated in 1.12.
+ // Instead use the GS1DATABAR constants below.
+ public static final int SCAN_SDT_RSS14 = 131; // Reduced Space Symbology - 14 digit GTIN
+ public static final int SCAN_SDT_RSS_EXPANDED= 132; // RSS - 14 digit GTIN plus additional fields
+
+ // One dimensional symbologies (added in Release 1.12)
+ public static final int SCAN_SDT_GS1DATABAR = 131; // GS1 DataBar Omnidirectional (normal or stacked)
+ public static final int SCAN_SDT_GS1DATABAR_E= 132; // GS1 DataBar Expanded (normal or stacked)
+
+ // One dimensional symbologies (added in Release 1.14)
+ public static final int SCAN_SDT_ITF_CK = 133; // Interleaved 2 of 5 check digit verified and transmitted
+ public static final int SCAN_SDT_GS1DATABAR_TYPE2 = 134; // GS1 DataBar Limited
+ public static final int SCAN_SDT_AMES = 135; // Ames Code
+ public static final int SCAN_SDT_TFMAT = 136; // Matrix 2 of 5
+ public static final int SCAN_SDT_Code39_CK = 137; // Code 39 with check character verified and transmitted
+ public static final int SCAN_SDT_Code32 = 138; // Code 39 with Mod 32 check character
+ public static final int SCAN_SDT_CodeCIP = 139; // Code 39 CIP
+ public static final int SCAN_SDT_TRIOPTIC39 = 140; // Tri-Optic Code 39
+ public static final int SCAN_SDT_ISBT128 = 141; // ISBT-128
+ public static final int SCAN_SDT_Code11 = 142; // Code 11
+ public static final int SCAN_SDT_MSI = 143; // MSI Code
+ public static final int SCAN_SDT_PLESSEY = 144; // Plessey Code
+ public static final int SCAN_SDT_TELEPEN = 145; // Telepen
+
+ // Composite Symbologies (Added in Release 1.8)
+ public static final int SCAN_SDT_CCA = 151; // Composite Component A.
+ public static final int SCAN_SDT_CCB = 152; // Composite Component B.
+ public static final int SCAN_SDT_CCC = 153; // Composite Component C.
+
+ // Composite Symbologies (Added in Release 1.14)
+ public static final int SCAN_SDT_TLC39 = 154; // TLC-39
+
+ // Two dimensional symbologies
+ public static final int SCAN_SDT_PDF417 = 201;
+ public static final int SCAN_SDT_MAXICODE = 202;
+
+ // Two dimensional symbologies (Added in Release 1.11)
+ public static final int SCAN_SDT_DATAMATRIX = 203; // Data Matrix
+ public static final int SCAN_SDT_QRCODE = 204; // QR Code
+ public static final int SCAN_SDT_UQRCODE = 205; // Micro QR Code
+ public static final int SCAN_SDT_AZTEC = 206; // Aztec
+ public static final int SCAN_SDT_UPDF417 = 207; // Micro PDF 417
+
+ // Two dimensional symbologies (Added in Release 1.14)
+ public static final int SCAN_SDT_GS1DATAMATRIX = 208; // GS1 DataMatrix
+ public static final int SCAN_SDT_GS1QRCODE = 209; // GS1 QR Code
+ public static final int SCAN_SDT_Code49 = 210; // Code 49
+ public static final int SCAN_SDT_Code16k = 211; // Code 16K
+ public static final int SCAN_SDT_CodablockA = 212; // Codablock A
+ public static final int SCAN_SDT_CodablockF = 213; // Codablock F
+ public static final int SCAN_SDT_Codablock256 = 214; // Codablock 256
+ public static final int SCAN_SDT_HANXIN = 215; // Han Xin Code
+
+ // Postal Code Symbologies (Added in Release 1.14)
+ public static final int SCAN_SDT_AusPost = 301; // Australian Post
+ public static final int SCAN_SDT_CanPost = 302; // Canada Post
+ public static final int SCAN_SDT_ChinaPost = 303; // China Post
+ public static final int SCAN_SDT_DutchKix = 304; // Dutch Post
+ public static final int SCAN_SDT_InfoMail = 305; // InfoMail
+ public static final int SCAN_SDT_JapanPost = 306; // Japan Post
+ public static final int SCAN_SDT_KoreanPost = 307; // Korean Post
+ public static final int SCAN_SDT_SwedenPost = 308; // Sweden Post
+ public static final int SCAN_SDT_UkPost = 309; // UK Post BPO
+ public static final int SCAN_SDT_UsIntelligent = 310; // US Intelligent Mail
+ public static final int SCAN_SDT_UsPlanet = 311; // US Planet Code
+ public static final int SCAN_SDT_PostNet = 312; // US Postnet
+
+ // Special cases
+ public static final int SCAN_SDT_OTHER = 501; // Start of Scanner-
+ // Specific bar code
+ // symbologies
+ public static final int SCAN_SDT_UNKNOWN = 0; // Cannot determine the
+ // barcode symbology.
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl110.java
new file mode 100644
index 0000000..90a6064
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl110.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScannerControl110 extends ScannerControl19
+{
+ // Methods
+ public void clearInputProperties()
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl111.java
new file mode 100644
index 0000000..033082f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScannerControl111 extends ScannerControl110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl112.java
new file mode 100644
index 0000000..8181aab
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScannerControl112 extends ScannerControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl113.java
new file mode 100644
index 0000000..0e409db
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScannerControl113 extends ScannerControl112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl114.java
new file mode 100644
index 0000000..578f951
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Scanner for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScannerControl114 extends ScannerControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl12.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl12.java
new file mode 100644
index 0000000..bcbc761
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl12.java
@@ -0,0 +1,53 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerControl12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to Scanner for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScannerControl12 extends BaseControl
+{
+ // Properties
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public boolean getDecodeData() throws JposException;
+ public void setDecodeData(boolean decodeData) throws JposException;
+ public byte[] getScanData() throws JposException;
+ public byte[] getScanDataLabel() throws JposException;
+ public int getScanDataType() throws JposException;
+
+ // Methods
+ public void clearInput() throws JposException;
+
+ // Event listener methods
+ public void addDataListener(DataListener l);
+ public void removeDataListener(DataListener l);
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addErrorListener(ErrorListener l);
+ public void removeErrorListener(ErrorListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl13.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl13.java
new file mode 100644
index 0000000..656d8c7
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl13.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerControl13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScannerControl13 extends ScannerControl12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+
+ // Event listener methods
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl14.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl14.java
new file mode 100644
index 0000000..5cefa2e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerControl14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScannerControl14 extends ScannerControl13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl15.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl15.java
new file mode 100644
index 0000000..2c818b0
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl15.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerControl15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 00-04-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScannerControl15 extends ScannerControl14
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl16.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl16.java
new file mode 100644
index 0000000..513d6ae
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl16.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerControl16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-04-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScannerControl16 extends ScannerControl15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl17.java
new file mode 100644
index 0000000..cf1f5db
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl17.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerControl17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScannerControl17 extends ScannerControl16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl18.java
new file mode 100644
index 0000000..7406d4a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl18.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScannerControl18 extends ScannerControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl19.java
new file mode 100644
index 0000000..65f2f29
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ScannerControl19.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ScannerControl19 extends ScannerControl18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCapture.java b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCapture.java
new file mode 100644
index 0000000..b539ade
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCapture.java
@@ -0,0 +1,1326 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCapture.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class SignatureCapture
+ extends BaseJposControl
+ implements SignatureCaptureControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected SignatureCaptureService12 service12;
+ protected SignatureCaptureService13 service13;
+ protected SignatureCaptureService14 service14;
+ protected SignatureCaptureService15 service15;
+ protected SignatureCaptureService16 service16;
+ protected SignatureCaptureService17 service17;
+ protected SignatureCaptureService18 service18;
+ protected SignatureCaptureService19 service19;
+ protected SignatureCaptureService110 service110;
+ protected SignatureCaptureService111 service111;
+ protected SignatureCaptureService112 service112;
+ protected SignatureCaptureService113 service113;
+ protected SignatureCaptureService114 service114;
+ protected Vector dataListeners;
+ protected Vector directIOListeners;
+ protected Vector errorListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public SignatureCapture()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS SignatureCapture Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service12 = null;
+ //service13 = null;
+ //service14 = null;
+ //service15 = null;
+ //service16 = null;
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ dataListeners = new Vector();
+ directIOListeners = new Vector();
+ errorListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapDisplay()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapDisplay();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapRealTimeData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapRealTimeData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUserTerminated()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapUserTerminated();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public boolean getAutoDisable()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getAutoDisable();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAutoDisable(boolean autoDisable)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setAutoDisable(autoDisable);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDataEventEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getDataEventEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setDataEventEnabled(dataEventEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMaximumX()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getMaximumX();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMaximumY()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getMaximumY();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public java.awt.Point[] getPointArray()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getPointArray();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public byte[] getRawData()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getRawData();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getRealTimeDataEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getRealTimeDataEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setRealTimeDataEnabled(boolean realTimeDataEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setRealTimeDataEnabled(realTimeDataEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void beginCapture(String formName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.beginCapture(formName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.clearInput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endCapture()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.endCapture();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInputProperties()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.10.0
+ if(serviceVersion < deviceVersion110)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.10.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.clearInputProperties();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new SignatureCaptureCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service12 = null;
+ service13 = null;
+ service14 = null;
+ service15 = null;
+ service16 = null;
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion12)
+ {
+ try
+ {
+ service12 = (SignatureCaptureService12)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement SignatureCaptureService12 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion13)
+ {
+ try
+ {
+ service13 = (SignatureCaptureService13)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement SignatureCaptureService13 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion14)
+ {
+ try
+ {
+ service14 = (SignatureCaptureService14)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement SignatureCaptureService14 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion15)
+ {
+ try
+ {
+ service15 = (SignatureCaptureService15)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement SignatureCaptureService15 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion16)
+ {
+ try
+ {
+ service16 = (SignatureCaptureService16)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement SignatureCaptureService16 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (SignatureCaptureService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement SignatureCaptureService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (SignatureCaptureService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement SignatureCaptureService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (SignatureCaptureService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement SignatureCaptureService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (SignatureCaptureService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement SignatureCaptureService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (SignatureCaptureService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement SignatureCaptureService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (SignatureCaptureService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement SignatureCaptureService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (SignatureCaptureService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement SignatureCaptureService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (SignatureCaptureService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement SignatureCaptureService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.addElement(l);
+ }
+ }
+
+ public void removeDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.removeElement(l);
+ }
+ }
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.addElement(l);
+ }
+ }
+
+ public void removeErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class SignatureCaptureCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)SignatureCapture.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ synchronized(SignatureCapture.this.dataListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < dataListeners.size(); x++)
+ {
+ ((DataListener)dataListeners.elementAt(x)).dataOccurred(e);
+ }
+ }
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(SignatureCapture.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ synchronized(SignatureCapture.this.errorListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < errorListeners.size(); x++)
+ {
+ ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e);
+ }
+ }
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(SignatureCapture.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCapture.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCapture.manifest.stub
new file mode 100644
index 0000000..fd57477
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCapture.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/SignatureCapture.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureBeanInfo.java
new file mode 100644
index 0000000..e736ae7
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureBeanInfo.java
@@ -0,0 +1,101 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// SignatureCaptureBeanInfo.java - Bean information for the JavaPOS SignatureCapture
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class SignatureCaptureBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.SignatureCapture.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.SignatureCapture.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapDisplay"),
+ makeProperty("CapRealTimeData"),
+ makeProperty("CapUserTerminated"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapUpdateFirmware"),
+
+ // Properties
+ makeProperty("AutoDisable"),
+ makeProperty("DataCount"),
+ makeProperty("DataEventEnabled"),
+ makeProperty("MaximumX"),
+ makeProperty("MaximumY"),
+ makeProperty("PointArray"),
+ makeProperty("RawData"),
+ makeProperty("RealTimeDataEnabled"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.SignatureCapture.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("Data"),
+ makeEvent("DirectIO"),
+ makeEvent("Error"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureConst.java
new file mode 100644
index 0000000..c713534
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureConst.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureConst
+//
+// Signature Capture constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface SignatureCaptureConst
+{
+ //###################################################################
+ //#### Signature Capture Constants
+ //###################################################################
+
+ // No definitions required for this version.
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl110.java
new file mode 100644
index 0000000..129fad1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl110.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface SignatureCaptureControl110 extends SignatureCaptureControl19
+{
+ // Methods
+ public void clearInputProperties()
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl111.java
new file mode 100644
index 0000000..5697d81
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface SignatureCaptureControl111 extends SignatureCaptureControl110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl112.java
new file mode 100644
index 0000000..1a330ca
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface SignatureCaptureControl112 extends SignatureCaptureControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl113.java
new file mode 100644
index 0000000..63e8723
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface SignatureCaptureControl113 extends SignatureCaptureControl112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl114.java
new file mode 100644
index 0000000..9b87400
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Signature Capture for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface SignatureCaptureControl114 extends SignatureCaptureControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl12.java b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl12.java
new file mode 100644
index 0000000..080f7d0
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl12.java
@@ -0,0 +1,63 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// Signature CaptureControl12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to Signature Capture for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface SignatureCaptureControl12 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapDisplay() throws JposException;
+ public boolean getCapRealTimeData() throws JposException;
+ public boolean getCapUserTerminated() throws JposException;
+
+ // Properties
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public int getMaximumX() throws JposException;
+ public int getMaximumY() throws JposException;
+ public java.awt.Point[]
+ getPointArray() throws JposException;
+ public byte[] getRawData() throws JposException;
+ public boolean getRealTimeDataEnabled() throws JposException;
+ public void setRealTimeDataEnabled(boolean realTimeDataEnabled)
+ throws JposException;
+
+ // Methods
+ public void beginCapture(String formName) throws JposException;
+ public void clearInput() throws JposException;
+ public void endCapture() throws JposException;
+
+ // Event listener methods
+ public void addDataListener(DataListener l);
+ public void removeDataListener(DataListener l);
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addErrorListener(ErrorListener l);
+ public void removeErrorListener(ErrorListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl13.java b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl13.java
new file mode 100644
index 0000000..ba1fa9a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl13.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureControl13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface SignatureCaptureControl13 extends SignatureCaptureControl12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+
+ // Event listener methods
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl14.java b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl14.java
new file mode 100644
index 0000000..48a6ab1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureControl14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface SignatureCaptureControl14 extends SignatureCaptureControl13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl15.java b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl15.java
new file mode 100644
index 0000000..4f141cb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl15.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureControl15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 00-04-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface SignatureCaptureControl15 extends SignatureCaptureControl14
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl16.java b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl16.java
new file mode 100644
index 0000000..bda9c09
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl16.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureControl16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-04-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface SignatureCaptureControl16 extends SignatureCaptureControl15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl17.java
new file mode 100644
index 0000000..a9fc1e6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl17.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureControl17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface SignatureCaptureControl17 extends SignatureCaptureControl16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl18.java
new file mode 100644
index 0000000..a75208e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl18.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface SignatureCaptureControl18 extends SignatureCaptureControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl19.java
new file mode 100644
index 0000000..d8545e2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SignatureCaptureControl19.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface SignatureCaptureControl19 extends SignatureCaptureControl18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRW.java b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRW.java
new file mode 100644
index 0000000..b309cd6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRW.java
@@ -0,0 +1,1437 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SmartCardRW.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class SmartCardRW
+ extends BaseJposControl
+ implements SmartCardRWControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected SmartCardRWService18 service18;
+ protected SmartCardRWService19 service19;
+ protected SmartCardRWService110 service110;
+ protected SmartCardRWService111 service111;
+ protected SmartCardRWService112 service112;
+ protected SmartCardRWService113 service113;
+ protected SmartCardRWService114 service114;
+ protected Vector dataListeners;
+ protected Vector directIOListeners;
+ protected Vector errorListeners;
+ protected Vector outputCompleteListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public SmartCardRW()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS SmartCardRW Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ dataListeners = new Vector();
+ directIOListeners = new Vector();
+ errorListeners = new Vector();
+ outputCompleteListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapCardErrorDetection()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapCardErrorDetection();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapInterfaceMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapInterfaceMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapIsoEmvMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapIsoEmvMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapSCPresentSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapSCPresentSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapSCSlots()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapSCSlots();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapTransmissionProtocol()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapTransmissionProtocol();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public int getDataCount()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getDataCount();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getDataEventEnabled()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getDataEventEnabled();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.setDataEventEnabled(dataEventEnabled);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getInterfaceMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getInterfaceMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setInterfaceMode(int interfaceMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.setInterfaceMode(interfaceMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getIsoEmvMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getIsoEmvMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setIsoEmvMode(int isoEmvMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.setIsoEmvMode(isoEmvMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getOutputID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getOutputID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSCPresentSensor()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getSCPresentSensor();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getSCSlot()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getSCSlot();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setSCSlot(int scSlot)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.setSCSlot(scSlot);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getTransactionInProgress()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getTransactionInProgress();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTransmissionProtocol()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getTransmissionProtocol();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void beginInsertion(int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.beginInsertion(timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void beginRemoval(int timeout)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.beginRemoval(timeout);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.clearInput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearOutput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.clearOutput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endInsertion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.endInsertion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void endRemoval()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.endRemoval();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void readData(int action, int[] count, String[] data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.readData(action, count, data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void writeData(int action, int count, String data)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.writeData(action, count, data);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void clearInputProperties()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.10.0
+ if(serviceVersion < deviceVersion110)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.10.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service110.clearInputProperties();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new SmartCardRWCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (SmartCardRWService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement SmartCardRWService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (SmartCardRWService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement SmartCardRWService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (SmartCardRWService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement SmartCardRWService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (SmartCardRWService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement SmartCardRWService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (SmartCardRWService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement SmartCardRWService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (SmartCardRWService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement SmartCardRWService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (SmartCardRWService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement SmartCardRWService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.addElement(l);
+ }
+ }
+
+ public void removeDataListener(DataListener l)
+ {
+ synchronized(dataListeners)
+ {
+ dataListeners.removeElement(l);
+ }
+ }
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.addElement(l);
+ }
+ }
+
+ public void removeErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.removeElement(l);
+ }
+ }
+
+ public void addOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.addElement(l);
+ }
+ }
+
+ public void removeOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class SmartCardRWCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)SmartCardRW.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ synchronized(SmartCardRW.this.dataListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < dataListeners.size(); x++)
+ {
+ ((DataListener)dataListeners.elementAt(x)).dataOccurred(e);
+ }
+ }
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(SmartCardRW.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ synchronized(SmartCardRW.this.errorListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < errorListeners.size(); x++)
+ {
+ ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e);
+ }
+ }
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ synchronized(SmartCardRW.this.outputCompleteListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < outputCompleteListeners.size(); x++)
+ {
+ ((OutputCompleteListener)outputCompleteListeners.elementAt(x)).outputCompleteOccurred(e);
+ }
+ }
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(SmartCardRW.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRW.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRW.manifest.stub
new file mode 100644
index 0000000..340ff04
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRW.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/SmartCardRW.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWBeanInfo.java
new file mode 100644
index 0000000..4c4da7e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWBeanInfo.java
@@ -0,0 +1,106 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// SmartCardRWBeanInfo.java - Bean information for the JavaPOS SmartCardRW
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class SmartCardRWBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.SmartCardRW.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.SmartCardRW.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapCardErrorDetection"),
+ makeProperty("CapInterfaceMode"),
+ makeProperty("CapIsoEmvMode"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapSCPresentSensor"),
+ makeProperty("CapSCSlots"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapTransmissionProtocol"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapUpdateFirmware"),
+
+ // Properties
+ makeProperty("DataCount"),
+ makeProperty("DataEventEnabled"),
+ makeProperty("InterfaceMode"),
+ makeProperty("IsoEmvMode"),
+ makeProperty("OutputID"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("SCPresentSensor"),
+ makeProperty("SCSlot"),
+ makeProperty("TransactionInProgress"),
+ makeProperty("TransmissionProtocol")
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.SmartCardRW.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("Data"),
+ makeEvent("DirectIO"),
+ makeEvent("Error"),
+ makeEvent("OutputComplete"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWConst.java
new file mode 100644
index 0000000..e5aad3b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWConst.java
@@ -0,0 +1,120 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SmartCardRWConst
+//
+// Smart Card constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 03-Jun-2003 JavaPOS Release 1.8 BS
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface SmartCardRWConst
+{
+ //###################################################################
+ //#### Smart Card Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapInterfaceMode", "InterfaceMode" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int SC_CMODE_TRANS = 1; // Simple Transaction Command and Data Mode.
+ public static final int SC_CMODE_BLOCK = 2; // Block Data Mode.
+ public static final int SC_CMODE_APDU = 4; // Same as Block Data Mode except APDU Standard Commands are used.
+ public static final int SC_CMODE_XML = 8; // XML Block Data Mode.
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapIsoEmvMode" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int SC_CMODE_ISO = 1; // APDU messaging format conforms to the ISO standard.
+ public static final int SC_CMODE_EMV = 2; // APDU messaging format conforms to the EMV standard.
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "CapTransmissionProtocol" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int SC_CTRANS_PROTOCOL_T0 = 1; // Asynchronous, Half Duplex, Character, Transmission Protocol Mode.
+ public static final int SC_CTRANS_PROTOCOL_T1 = 2; // Asynchronous, Half Duplex, Block Transmission Protocol Mode.
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "InterfaceMode" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int SC_MODE_TRANS = 1; // Simple Transaction Command and Data Mode.
+ public static final int SC_MODE_BLOCK = 2; // Block Data Mode.
+ public static final int SC_MODE_APDU = 4; // Same as Block Data Mode except APDU Standard Defines the Commands and data.
+ public static final int SC_MODE_XML = 8; // XML Block Data Mode.
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "IsoEmvMode" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int SC_MODE_ISO = 1; // APDU messaging format currently in use conforms to the ISO standard.
+ public static final int SC_MODE_EMV = 2; // APDU messaging format currently in use conforms to the EMV standard.
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "TransmissionProtocol" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int SC_TRANS_PROTOCOL_T0 = 1; // Asynchronous, Half Duplex, Character, Transmission Protocol Mode.
+ public static final int SC_TRANS_PROTOCOL_T1 = 2; // Asynchronous, Half Duplex, Block Transmission Protocol Mode.
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "readData" Method, "action" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int SC_READ_DATA = 11;
+ public static final int SC_READ_PROGRAM = 12;
+ public static final int SC_EXECUTE_AND_READ_DATA = 13;
+ public static final int SC_XML_READ_BLOCK_DATA = 14;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "writeData" Method, "action" Parameter Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int SC_STORE_DATA = 21;
+ public static final int SC_STORE_PROGRAM = 22;
+ public static final int SC_EXECUTE_DATA = 23;
+ public static final int SC_XML_BLOCK_DATA = 24;
+ public static final int SC_SECURITY_FUSE = 25;
+ public static final int SC_RESET = 26;
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "StatusUpdateEvent" "Status" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int SC_SUE_NO_CARD = 1; // No card detected in the SCR/W Device.
+ public static final int SC_SUE_CARD_PRESENT = 2; // There is a card in the device.
+
+
+ /////////////////////////////////////////////////////////////////////
+ // "ErrorEvent" "ErrorCodeExtended" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int JPOS_ESC_READ = 201; // There was a read error.
+ public static final int JPOS_ESC_WRITE = 202; // There was a write error.
+ public static final int JPOS_ESC_TORN = 203; // The smart card was prematurely removed from the SCR/W unexpectedly. Note: CapCardErrorDetection capability must be true before this can be set.
+ public static final int JPOS_ESC_NO_CARD = 204; // There is no card detected in the SCR/W but a card was expected.
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWControl110.java
new file mode 100644
index 0000000..ce8403c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWControl110.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SmartCardRWControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Smart Card for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface SmartCardRWControl110 extends SmartCardRWControl19
+{
+ // Methods
+ public void clearInputProperties()
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWControl111.java
new file mode 100644
index 0000000..aff46f2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWControl111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SmartCardRWControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Smart Card for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface SmartCardRWControl111 extends SmartCardRWControl110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWControl112.java
new file mode 100644
index 0000000..98ce6b2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SmartCardRWControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Smart Card for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface SmartCardRWControl112 extends SmartCardRWControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWControl113.java
new file mode 100644
index 0000000..a22466b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWControl113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SmartCardRWControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Smart Card for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface SmartCardRWControl113 extends SmartCardRWControl112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWControl114.java
new file mode 100644
index 0000000..bdf7f68
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SmartCardRWControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Smart Card RW for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface SmartCardRWControl114 extends SmartCardRWControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWControl18.java
new file mode 100644
index 0000000..dd24749
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWControl18.java
@@ -0,0 +1,106 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SmartCardRWControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Smart Card for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+// Issues reported that draft specification methods and properties
+// were still present in the 1.8 code releases.
+// Removed:
+// getCapFreeMemory
+// getCapMultipleFiles
+// getCapSCTypes
+// getFreeMemory
+// getMemorySegments
+// getSCType
+// getTotalMemorySize
+// Added:
+// getCapIsoEmvMode
+// getIsoEmvMode
+// setIsoEmvMode
+// Fixed:
+// count parameter of readData is now int[] instead of int
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface SmartCardRWControl18 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapCardErrorDetection() throws JposException;
+ public int getCapInterfaceMode() throws JposException;
+ public int getCapIsoEmvMode() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public int getCapSCPresentSensor() throws JposException;
+ public int getCapSCSlots() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public int getCapTransmissionProtocol() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Properties
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public int getInterfaceMode() throws JposException;
+ public void setInterfaceMode(int interfaceMode) throws JposException;
+ public int getIsoEmvMode() throws JposException;
+ public void setIsoEmvMode(int isoEmvMode) throws JposException;
+ public int getOutputID() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getSCPresentSensor() throws JposException;
+ public int getSCSlot() throws JposException;
+ public void setSCSlot(int scSlot) throws JposException;
+ public boolean getTransactionInProgress() throws JposException;
+ public int getTransmissionProtocol() throws JposException;
+
+ // Methods
+ public void beginInsertion(int timeout) throws JposException;
+ public void beginRemoval(int timeout) throws JposException;
+ public void clearInput() throws JposException;
+ public void clearOutput() throws JposException;
+ public void endInsertion() throws JposException;
+ public void endRemoval() throws JposException;
+ public void readData(int action, int[] count, String[] data)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+ public void writeData(int action, int count, String data)
+ throws JposException;
+
+ // Event listener methods
+ public void addDataListener(DataListener l);
+ public void removeDataListener(DataListener l);
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addErrorListener(ErrorListener l);
+ public void removeErrorListener(ErrorListener l);
+ public void addOutputCompleteListener(OutputCompleteListener l);
+ public void removeOutputCompleteListener(OutputCompleteListener l);
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWControl19.java
new file mode 100644
index 0000000..5b9b395
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/SmartCardRWControl19.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SmartCardRWControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Smart Card for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface SmartCardRWControl19 extends SmartCardRWControl18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicator.java b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicator.java
new file mode 100644
index 0000000..b90d9b1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicator.java
@@ -0,0 +1,1579 @@
+//------------------------------------------------------------------------------
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicator.java - A JavaPOS 1.14.0 device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import jpos.events.*;
+import jpos.services.*;
+import java.util.Vector;
+import jpos.loader.*;
+
+public class ToneIndicator
+ extends BaseJposControl
+ implements ToneIndicatorControl114, JposConst
+{
+ //--------------------------------------------------------------------------
+ // Variables
+ //--------------------------------------------------------------------------
+
+ protected ToneIndicatorService12 service12;
+ protected ToneIndicatorService13 service13;
+ protected ToneIndicatorService14 service14;
+ protected ToneIndicatorService15 service15;
+ protected ToneIndicatorService16 service16;
+ protected ToneIndicatorService17 service17;
+ protected ToneIndicatorService18 service18;
+ protected ToneIndicatorService19 service19;
+ protected ToneIndicatorService110 service110;
+ protected ToneIndicatorService111 service111;
+ protected ToneIndicatorService112 service112;
+ protected ToneIndicatorService113 service113;
+ protected ToneIndicatorService114 service114;
+ protected Vector directIOListeners;
+ protected Vector errorListeners;
+ protected Vector outputCompleteListeners;
+ protected Vector statusUpdateListeners;
+
+
+ //--------------------------------------------------------------------------
+ // Constructor
+ //--------------------------------------------------------------------------
+
+ public ToneIndicator()
+ {
+ // Initialize base class instance data
+ deviceControlDescription = "JavaPOS ToneIndicator Device Control";
+ deviceControlVersion = deviceVersion114;
+
+ // Initialize instance data. Initializations are commented out for
+ // efficiency if the Java default is correct.
+ //service12 = null;
+ //service13 = null;
+ //service14 = null;
+ //service15 = null;
+ //service16 = null;
+ //service17 = null;
+ //service18 = null;
+ //service19 = null;
+ //service110 = null;
+ //service111 = null;
+ //service112 = null;
+ //service113 = null;
+ //service114 = null;
+ directIOListeners = new Vector();
+ errorListeners = new Vector();
+ outputCompleteListeners = new Vector();
+ statusUpdateListeners = new Vector();
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Capabilities
+ //--------------------------------------------------------------------------
+
+ public boolean getCapPitch()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapPitch();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapVolume()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getCapVolume();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapPowerReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getCapPowerReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapStatisticsReporting()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapStatisticsReporting();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateStatistics()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service18.getCapUpdateStatistics();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapCompareFirmwareVersion()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapCompareFirmwareVersion();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public boolean getCapUpdateFirmware()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service19.getCapUpdateFirmware();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getCapMelody()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.13.0
+ if(serviceVersion < deviceVersion113)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.13.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service113.getCapMelody();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Properties
+ //--------------------------------------------------------------------------
+
+ public boolean getAsyncMode()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getAsyncMode();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setAsyncMode(boolean asyncMode)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setAsyncMode(asyncMode);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getInterToneWait()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getInterToneWait();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setInterToneWait(int interToneWait)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setInterToneWait(interToneWait);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getOutputID()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getOutputID();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTone1Duration()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getTone1Duration();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTone1Duration(int tone1Duration)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setTone1Duration(tone1Duration);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTone1Pitch()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getTone1Pitch();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTone1Pitch(int tone1Pitch)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setTone1Pitch(tone1Pitch);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTone1Volume()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getTone1Volume();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTone1Volume(int tone1Volume)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setTone1Volume(tone1Volume);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTone2Duration()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getTone2Duration();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTone2Duration(int tone2Duration)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setTone2Duration(tone2Duration);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTone2Pitch()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getTone2Pitch();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTone2Pitch(int tone2Pitch)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setTone2Pitch(tone2Pitch);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getTone2Volume()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service12.getTone2Volume();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setTone2Volume(int tone2Volume)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.setTone2Volume(tone2Volume);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerNotify()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerNotify();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setPowerNotify(int powerNotify)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service13.setPowerNotify(powerNotify);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getPowerState()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.3.0
+ if(serviceVersion < deviceVersion13)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.3.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service13.getPowerState();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMelodyType()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.13.0
+ if(serviceVersion < deviceVersion113)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.13.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service113.getMelodyType();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setMelodyType(int melodyType)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.13.0
+ if(serviceVersion < deviceVersion113)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.13.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service113.setMelodyType(melodyType);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public int getMelodyVolume()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.13.0
+ if(serviceVersion < deviceVersion113)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.13.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ return service113.getMelodyVolume();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void setMelodyVolume(int melodyVolume)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.13.0
+ if(serviceVersion < deviceVersion113)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.13.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service113.setMelodyVolume(melodyVolume);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Methods
+ //--------------------------------------------------------------------------
+
+ public void clearOutput()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.clearOutput();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void sound(int numberOfCycles, int interSoundWait)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.sound(numberOfCycles, interSoundWait);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void soundImmediate()
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Perform the operation
+ try
+ {
+ service12.soundImmediate();
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.resetStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.retrieveStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.8.0
+ if(serviceVersion < deviceVersion18)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.8.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service18.updateStatistics(statisticsBuffer);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.compareFirmwareVersion(firmwareFileName, result);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+ public void updateFirmware(String firmwareFileName)
+ throws JposException
+ {
+ // Make sure control is opened
+ if(!bOpen)
+ {
+ throw new JposException(JPOS_E_CLOSED, "Control not opened");
+ }
+
+ // Make sure service supports at least version 1.9.0
+ if(serviceVersion < deviceVersion19)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Device Service is not 1.9.0 compliant.");
+ }
+
+ // Perform the operation
+ try
+ {
+ service19.updateFirmware(firmwareFileName);
+ }
+ catch(JposException je)
+ {
+ throw je;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_FAILURE,
+ "Unhandled exception from Device Service", e);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Framework Methods
+ //--------------------------------------------------------------------------
+
+ // Create an EventCallbacks interface implementation object for this Control
+ protected EventCallbacks createEventCallbacks()
+ {
+ return new ToneIndicatorCallbacks();
+ }
+
+ // Store the reference to the Device Service
+ protected void setDeviceService(BaseService service, int nServiceVersion)
+ throws JposException
+ {
+ // Special case: service == null to free references
+ if(service == null)
+ {
+
+ service12 = null;
+ service13 = null;
+ service14 = null;
+ service15 = null;
+ service16 = null;
+ service17 = null;
+ service18 = null;
+ service19 = null;
+ service110 = null;
+ service111 = null;
+ service112 = null;
+ service113 = null;
+ service114 = null;
+ }
+ else
+ {
+ // Make sure that the service actually conforms to the interfaces it
+ // claims to.
+ if(serviceVersion >= deviceVersion12)
+ {
+ try
+ {
+ service12 = (ToneIndicatorService12)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ToneIndicatorService12 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion13)
+ {
+ try
+ {
+ service13 = (ToneIndicatorService13)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ToneIndicatorService13 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion14)
+ {
+ try
+ {
+ service14 = (ToneIndicatorService14)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ToneIndicatorService14 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion15)
+ {
+ try
+ {
+ service15 = (ToneIndicatorService15)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ToneIndicatorService15 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion16)
+ {
+ try
+ {
+ service16 = (ToneIndicatorService16)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ToneIndicatorService16 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion17)
+ {
+ try
+ {
+ service17 = (ToneIndicatorService17)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ToneIndicatorService17 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion18)
+ {
+ try
+ {
+ service18 = (ToneIndicatorService18)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ToneIndicatorService18 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion19)
+ {
+ try
+ {
+ service19 = (ToneIndicatorService19)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ToneIndicatorService19 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion110)
+ {
+ try
+ {
+ service110 = (ToneIndicatorService110)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ToneIndicatorService110 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion111)
+ {
+ try
+ {
+ service111 = (ToneIndicatorService111)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ToneIndicatorService111 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion112)
+ {
+ try
+ {
+ service112 = (ToneIndicatorService112)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ToneIndicatorService112 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion113)
+ {
+ try
+ {
+ service113 = (ToneIndicatorService113)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ToneIndicatorService113 interface",
+ e);
+ }
+ }
+
+ if(serviceVersion >= deviceVersion114)
+ {
+ try
+ {
+ service114 = (ToneIndicatorService114)service;
+ }
+ catch(Exception e)
+ {
+ throw new JposException(JPOS_E_NOSERVICE,
+ "Service does not fully implement ToneIndicatorService114 interface",
+ e);
+ }
+ }
+
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // Event Listener Methods
+ //--------------------------------------------------------------------------
+
+ public void addDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.addElement(l);
+ }
+ }
+
+ public void removeDirectIOListener(DirectIOListener l)
+ {
+ synchronized(directIOListeners)
+ {
+ directIOListeners.removeElement(l);
+ }
+ }
+
+ public void addErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.addElement(l);
+ }
+ }
+
+ public void removeErrorListener(ErrorListener l)
+ {
+ synchronized(errorListeners)
+ {
+ errorListeners.removeElement(l);
+ }
+ }
+
+ public void addOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.addElement(l);
+ }
+ }
+
+ public void removeOutputCompleteListener(OutputCompleteListener l)
+ {
+ synchronized(outputCompleteListeners)
+ {
+ outputCompleteListeners.removeElement(l);
+ }
+ }
+
+ public void addStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.addElement(l);
+ }
+ }
+
+ public void removeStatusUpdateListener(StatusUpdateListener l)
+ {
+ synchronized(statusUpdateListeners)
+ {
+ statusUpdateListeners.removeElement(l);
+ }
+ }
+
+
+ //--------------------------------------------------------------------------
+ // EventCallbacks inner class
+ //--------------------------------------------------------------------------
+
+ protected class ToneIndicatorCallbacks
+ implements EventCallbacks
+ {
+ public BaseControl getEventSource()
+ {
+ return (BaseControl)ToneIndicator.this;
+ }
+
+ public void fireDataEvent(DataEvent e)
+ {
+ }
+
+ public void fireDirectIOEvent(DirectIOEvent e)
+ {
+ synchronized(ToneIndicator.this.directIOListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < directIOListeners.size(); x++)
+ {
+ ((DirectIOListener)directIOListeners.elementAt(x)).directIOOccurred(e);
+ }
+ }
+ }
+
+ public void fireErrorEvent(ErrorEvent e)
+ {
+ synchronized(ToneIndicator.this.errorListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < errorListeners.size(); x++)
+ {
+ ((ErrorListener)errorListeners.elementAt(x)).errorOccurred(e);
+ }
+ }
+ }
+
+ public void fireOutputCompleteEvent(OutputCompleteEvent e)
+ {
+ synchronized(ToneIndicator.this.outputCompleteListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < outputCompleteListeners.size(); x++)
+ {
+ ((OutputCompleteListener)outputCompleteListeners.elementAt(x)).outputCompleteOccurred(e);
+ }
+ }
+ }
+
+ public void fireStatusUpdateEvent(StatusUpdateEvent e)
+ {
+ synchronized(ToneIndicator.this.statusUpdateListeners)
+ {
+ // deliver the event to all registered listeners
+ for(int x = 0; x < statusUpdateListeners.size(); x++)
+ {
+ ((StatusUpdateListener)statusUpdateListeners.elementAt(x)).statusUpdateOccurred(e);
+ }
+ }
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicator.manifest.stub b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicator.manifest.stub
new file mode 100644
index 0000000..5aa0c91
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicator.manifest.stub
@@ -0,0 +1,2 @@
+Name: jpos/ToneIndicator.class
+Java-Bean: True
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorBeanInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorBeanInfo.java
new file mode 100644
index 0000000..94c889e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorBeanInfo.java
@@ -0,0 +1,105 @@
+//------------------------------------------------------------------------------
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// ToneIndicatorBeanInfo.java - Bean information for the JavaPOS ToneIndicator
+// device control
+//
+//------------------------------------------------------------------------------
+
+package jpos;
+
+import java.beans.*;
+import java.lang.reflect.*;
+
+public class ToneIndicatorBeanInfo
+ extends SimpleBeanInfo
+{
+ public BeanDescriptor getBeanDescriptor()
+ {
+ return new BeanDescriptor(jpos.ToneIndicator.class);
+ }
+
+ public PropertyDescriptor makeProperty(String propertyName)
+ throws IntrospectionException
+ {
+ return new PropertyDescriptor(propertyName, jpos.ToneIndicator.class);
+ }
+
+ public PropertyDescriptor[] getPropertyDescriptors()
+ {
+ try
+ {
+ PropertyDescriptor[] properties =
+ {
+ // Capabilities
+ makeProperty("CapPitch"),
+ makeProperty("CapVolume"),
+ makeProperty("CapPowerReporting"),
+ makeProperty("CapStatisticsReporting"),
+ makeProperty("CapUpdateStatistics"),
+ makeProperty("CapCompareFirmwareVersion"),
+ makeProperty("CapUpdateFirmware"),
+ makeProperty("CapMelody"),
+
+ // Properties
+ makeProperty("AsyncMode"),
+ makeProperty("InterToneWait"),
+ makeProperty("OutputID"),
+ makeProperty("Tone1Duration"),
+ makeProperty("Tone1Pitch"),
+ makeProperty("Tone1Volume"),
+ makeProperty("Tone2Duration"),
+ makeProperty("Tone2Pitch"),
+ makeProperty("Tone2Volume"),
+ makeProperty("PowerNotify"),
+ makeProperty("PowerState"),
+ makeProperty("MelodyType"),
+ makeProperty("MelodyVolume"),
+
+ };
+
+ return properties;
+ }
+ catch(Exception e)
+ {
+ return super.getPropertyDescriptors();
+ }
+ }
+
+ public EventSetDescriptor makeEvent(String eventName)
+ throws IntrospectionException, ClassNotFoundException
+ {
+ String listener = "jpos.events." + eventName + "Listener";
+ return new EventSetDescriptor(jpos.ToneIndicator.class,
+ eventName,
+ Class.forName(listener),
+ eventName + "Occurred");
+ }
+
+ public EventSetDescriptor[] getEventSetDescriptors()
+ {
+ try
+ {
+ EventSetDescriptor[] events =
+ {
+ makeEvent("DirectIO"),
+ makeEvent("Error"),
+ makeEvent("OutputComplete"),
+ makeEvent("StatusUpdate")
+ };
+
+ return events;
+ }
+ catch(Exception e)
+ {
+ return super.getEventSetDescriptors();
+ }
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorConst.java
new file mode 100644
index 0000000..1b680c3
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorConst.java
@@ -0,0 +1,51 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorConst
+//
+// Tone Indicator constants for JavaPOS Applications.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+// Added "MelodyType"constant:
+// TONE_MT_NONE
+// 2009-Oct-06 JavaPOS Release 1.13.1 BS
+// Added "MelodyType"constants:
+// TONE_MT_TYPE1
+// TONE_MT_TYPE2
+// TONE_MT_TYPE3
+// TONE_MT_TYPE4
+// TONE_MT_TYPE5
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+public interface ToneIndicatorConst
+{
+ //###################################################################
+ //#### Tone Indicator Constants
+ //###################################################################
+
+ /////////////////////////////////////////////////////////////////////
+ // "MelodyType" Property Constants
+ /////////////////////////////////////////////////////////////////////
+
+ public static final int TONE_MT_NONE = 0;
+ public static final int TONE_MT_TYPE1 = 1;
+ public static final int TONE_MT_TYPE2 = 2;
+ public static final int TONE_MT_TYPE3 = 3;
+ public static final int TONE_MT_TYPE4 = 4;
+ public static final int TONE_MT_TYPE5 = 5;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl110.java b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl110.java
new file mode 100644
index 0000000..1beb66b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl110.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorControl110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ToneIndicatorControl110 extends ToneIndicatorControl19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl111.java b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl111.java
new file mode 100644
index 0000000..6581af7
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorControl111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ToneIndicatorControl111 extends ToneIndicatorControl110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl112.java b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl112.java
new file mode 100644
index 0000000..505260d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorControl112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ToneIndicatorControl112 extends ToneIndicatorControl111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl113.java b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl113.java
new file mode 100644
index 0000000..3a7f791
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl113.java
@@ -0,0 +1,38 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorControl113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ToneIndicatorControl113 extends ToneIndicatorControl112
+{
+ // Capabilities
+ public int getCapMelody() throws JposException;
+
+ // Properties
+ public int getMelodyType() throws JposException;
+ public void setMelodyType(int melodyType) throws JposException;
+ public int getMelodyVolume() throws JposException;
+ public void setMelodyVolume(int melodyVolume) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl114.java b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl114.java
new file mode 100644
index 0000000..300311f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorControl114
+//
+// Interface definining all new capabilities, properties and methods
+// that are specific to Tone Indicator for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ToneIndicatorControl114 extends ToneIndicatorControl113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl12.java b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl12.java
new file mode 100644
index 0000000..01fae49
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl12.java
@@ -0,0 +1,66 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorControl12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to Tone Indicator for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ToneIndicatorControl12 extends BaseControl
+{
+ // Capabilities
+ public boolean getCapPitch() throws JposException;
+ public boolean getCapVolume() throws JposException;
+
+ // Properties
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public int getInterToneWait() throws JposException;
+ public void setInterToneWait(int interToneWait) throws JposException;
+ public int getOutputID() throws JposException;
+ public int getTone1Duration() throws JposException;
+ public void setTone1Duration(int tone1Duration) throws JposException;
+ public int getTone1Pitch() throws JposException;
+ public void setTone1Pitch(int tone1Pitch) throws JposException;
+ public int getTone1Volume() throws JposException;
+ public void setTone1Volume(int tone1Volume) throws JposException;
+ public int getTone2Duration() throws JposException;
+ public void setTone2Duration(int tone2Duration) throws JposException;
+ public int getTone2Pitch() throws JposException;
+ public void setTone2Pitch(int tone2Pitch) throws JposException;
+ public int getTone2Volume() throws JposException;
+ public void setTone2Volume(int tone2Volume) throws JposException;
+
+ // Methods
+ public void clearOutput() throws JposException;
+ public void sound(int numberOfCycles, int interSoundWait)
+ throws JposException;
+ public void soundImmediate() throws JposException;
+
+ // Event listener methods
+ public void addDirectIOListener(DirectIOListener l);
+ public void removeDirectIOListener(DirectIOListener l);
+ public void addErrorListener(ErrorListener l);
+ public void removeErrorListener(ErrorListener l);
+ public void addOutputCompleteListener(OutputCompleteListener l);
+ public void removeOutputCompleteListener(OutputCompleteListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl13.java b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl13.java
new file mode 100644
index 0000000..b26f329
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl13.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorControl13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ToneIndicatorControl13 extends ToneIndicatorControl12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+
+ // Event listener methods
+ public void addStatusUpdateListener(StatusUpdateListener l);
+ public void removeStatusUpdateListener(StatusUpdateListener l);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl14.java b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl14.java
new file mode 100644
index 0000000..ebbd9c6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorControl14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ToneIndicatorControl14 extends ToneIndicatorControl13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl15.java b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl15.java
new file mode 100644
index 0000000..e02d155
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl15.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorControl15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 00-04-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ToneIndicatorControl15 extends ToneIndicatorControl14
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl16.java b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl16.java
new file mode 100644
index 0000000..a645ff4
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl16.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorControl16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-04-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ToneIndicatorControl16 extends ToneIndicatorControl15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl17.java b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl17.java
new file mode 100644
index 0000000..ed6f02c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl17.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorControl17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ToneIndicatorControl17 extends ToneIndicatorControl16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl18.java b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl18.java
new file mode 100644
index 0000000..1cf5901
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl18.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorControl18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ToneIndicatorControl18 extends ToneIndicatorControl17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl19.java b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl19.java
new file mode 100644
index 0000000..6bcede2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/ToneIndicatorControl19.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorControl19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos;
+
+import jpos.events.*;
+
+public interface ToneIndicatorControl19 extends ToneIndicatorControl18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/config/CompositeRegPopulator.java b/org.eclipse.osbp.fork.jpos/src/jpos/config/CompositeRegPopulator.java
new file mode 100644
index 0000000..7052f70
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/config/CompositeRegPopulator.java
@@ -0,0 +1,70 @@
+package jpos.config;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.util.*;
+
+/**
+ * Defines a composite interface collecting many JposRegPopulator objects
+ * See GoF Composite pattern for explanation on Composite classes/objects
+ * @since 1.3 (Washington DC 2001 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface CompositeRegPopulator extends JposRegPopulator
+{
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the default JposRegPopulator */
+ public JposRegPopulator getDefaultPopulator();
+
+ /**
+ * Adds this JposRegPopulator to the composite
+ * @param populator adds the populator to the composite reg populator. Does nothing
+ * if the popualator already is in the composite
+ */
+ public void add( JposRegPopulator populator );
+
+ /**
+ * Removes this JposRegPopulator from the composite
+ * @param populator removes the populator to the composite reg populator
+ */
+ public void remove( JposRegPopulator populator );
+
+ /** @return an iterator over all populators in this composite */
+ public Iterator getPopulators();
+
+ /**
+ * @return the populator with unique ID passed
+ * @param uniqueId the populator unique ID
+ * @see jpos.config.JposRegPopulator#getUniqueId()
+ */
+ public JposRegPopulator getPopulator( String uniqueId );
+
+ /** @return the number of populator in this composite */
+ public int size();
+
+ //-------------------------------------------------------------------------
+ // Constants
+ //
+
+ /** The default name for the CompositeRegPopulator */
+ public static final String COMPOSITE_REG_POPULATOR_STRING = "JCL Composite Entries Populator";
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/config/DefaultCompositeRegPopulator.java b/org.eclipse.osbp.fork.jpos/src/jpos/config/DefaultCompositeRegPopulator.java
new file mode 100644
index 0000000..f89f939
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/config/DefaultCompositeRegPopulator.java
@@ -0,0 +1,438 @@
+package jpos.config;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.util.*;
+import java.lang.reflect.*;
+import java.net.URL;
+
+import jpos.loader.*;
+import jpos.util.*;
+import jpos.util.tracing.Tracer;
+import jpos.util.tracing.TracerFactory;
+
+/**
+ * Default implementation of the CompositeRegPopulator interface
+ * @since 1.3 (Washington DC 2001 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class DefaultCompositeRegPopulator extends Object
+ implements CompositeRegPopulator
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /**
+ * Creates a CompositePopulator with a null default populator
+ * NOTE: you must set the default populator before this is usable or
+ * call the load() method which will set the default populator from
+ * the multi-property in the jpos.properties file if that file exist
+ */
+ public DefaultCompositeRegPopulator() {}
+
+ /**
+ * Creates a CompositePopulator with a default populator
+ * @param populator the default populator for this composite
+ */
+ public DefaultCompositeRegPopulator( JposRegPopulator populator )
+ {
+ add( populator );
+ setDefaultPopulator( populator );
+ }
+
+ //-------------------------------------------------------------------------
+ // Private methods
+ //
+
+ /**
+ * @return a JposPopulator using the popName as unique ID, populator class name passed
+ * If could not create the populator then returns null and add a trace info
+ * @param popName the unique ID for this populator
+ * @param className the JposRegPopulator implementing class name
+ */
+ private JposRegPopulator createPopulator( String popName, String className )
+ {
+ JposRegPopulator populator = null;
+
+ try
+ {
+ Class popClass = Class.forName( className );
+
+ try
+ {
+ Class[] ctorParamTypes = { String.class };
+ Constructor ctor = popClass.getConstructor( ctorParamTypes );
+
+ Object[] args = { popName };
+ populator = (JposRegPopulator)ctor.newInstance( args );
+ }
+ catch( NoSuchMethodException nsme )
+ {
+ Constructor ctor = popClass.getConstructor( new Class[ 0 ] );
+ populator = (JposRegPopulator)ctor.newInstance( new Object[ 0 ] );
+ }
+
+ }
+ catch( ClassNotFoundException cnfe )
+ {
+ tracer.println( "Could not find populator class with name: " +
+ className + " exception message = " +
+ cnfe.getMessage() );
+ }
+ catch( NoSuchMethodException nsme )
+ {
+ tracer.println( "Populator by class name: " +
+ className +
+ " must define a no-arg ctor or a 1-arg ctor with String param as the unique ID" );
+ }
+ catch( InstantiationException ie )
+ {
+ tracer.println( "Could not instantiate populator class with name: " +
+ className + " exception message = " +
+ ie.getMessage() );
+ }
+ catch( Exception e )
+ {
+ tracer.println( "Could not instantiate populator class with name: " +
+ className + " exception message = " +
+ e.getMessage() );
+ }
+
+ return populator;
+ }
+
+ //-------------------------------------------------------------------------
+ // Protected methods
+ //
+
+ /**
+ * Sets the default JposRegPopulator. Orphan JposEntry objects (that is the ones that
+ * do not have a JposRegPopulator) are automatically assign to this one.
+ * @param populator the JposRegPopulator
+ * @throws java.lang.IllegalArgumentException if the argument is null or not a valid JposRegPopulator
+ */
+ protected void setDefaultPopulator( JposRegPopulator populator ) throws IllegalArgumentException
+ {
+ if( populator == null )
+ throw new IllegalArgumentException( "Null value cannot be used for default JposRegPopualtor" );
+
+ if( populator.getUniqueId() == null || "".equals( populator.getUniqueId() ) )
+ throw
+ new IllegalArgumentException( "Default JposRegPopualtor cannot have a unique ID of null or empty string" );
+
+ add( populator );
+
+ defaultPop = populator;
+ }
+
+ //-------------------------------------------------------------------------
+ // Public JposRegPopulator methods
+ //
+
+ /**
+ * @return a unique String ID for this JposRegPopulator instance
+ * Can be implemented in terms of the getClassName() method
+ */
+ public String getUniqueId() { return getClassName(); }
+
+ /**
+ * @return the fully qualified class name implementing the
+ * JposRegPopulator interface
+ */
+ public String getClassName()
+ { return DefaultCompositeRegPopulator.class.getName(); }
+
+ /**
+ * Tell the populator to save the current entries
+ * @param entries an enumeration of JposEntry objects
+ * @throws java.lang.Exception if any error occurs while saving
+ */
+ public void save( Enumeration entries ) throws Exception
+ {
+ HashMap popEntriesMap = new HashMap();
+
+ Iterator popIterator = popMap.values().iterator();
+ while( popIterator.hasNext() )
+ popEntriesMap.put( ( (JposRegPopulator)popIterator.next() ).
+ getUniqueId(),
+ new ArrayList() );
+
+ while( entries.hasMoreElements() )
+ {
+ JposEntry entry = (JposEntry)entries.nextElement();
+
+ JposRegPopulator populator = (JposRegPopulator)entry.
+ getRegPopulator();
+
+ if( populator == null )
+ {
+ Collection defaultEntryList = (Collection)popEntriesMap.
+ get( getDefaultPopulator().
+ getUniqueId() );
+ defaultEntryList.add( entry );
+ }
+ else
+ {
+ Collection entryList = (Collection)popEntriesMap.
+ get( populator.getUniqueId() );
+
+ if( entryList == null )
+ tracer.println( "Trying to save entry with logicalName = " +
+ entry.getLogicalName() +
+ " and populator with" );
+ else
+ entryList.add( entry );
+ }
+ }
+
+ Exception exception = null;
+ popIterator = popMap.values().iterator();
+ while( popIterator.hasNext() )
+ {
+ JposRegPopulator populator = (JposRegPopulator)popIterator.next();
+ String popUniqueId = populator.getUniqueId();
+ Collection entryList = (Collection)popEntriesMap.get( popUniqueId );
+
+ try
+ {
+ if( popFileMap.get( populator.getUniqueId() ) != null )
+ populator.save( new Vector( entryList ).elements(),
+ (String)popFileMap.get( populator.getUniqueId() ) );
+ else
+ populator.save( new Vector( entryList ).elements() );
+ }
+ catch( Exception e )
+ {
+ exception = e;
+ tracer.println( "Error while saving to populator with unique ID:" +
+ populator.getUniqueId() );
+ }
+ }
+
+ if( exception != null ) throw exception;
+ }
+
+ /**
+ * Tell the populator to save the current entries in the file specified using
+ * the default JposRegPopulator
+ * @param entries an enumeration of JposEntry objects
+ * @param fileName the file name to save entries
+ * @throws java.lang.Exception if any error occurs while saving
+ */
+ public void save( Enumeration entries, String fileName ) throws Exception
+ {
+ getDefaultPopulator().save( entries, fileName );
+ }
+
+ /**
+ * Tell the populator to load the entries. Looks for 2 multi-properties for the
+ * populator class and populator file name called:
+ * jpos.config.populator.class.0
+ * jpos.config.populator.file.0
+ * All entries are loaded by using the file name in the properties file for each
+ * populator defined in the JposEntryProperties.
+ */
+ public void load()
+ {
+ JposProperties jposProperties = JposServiceLoader.getManager().getProperties();
+
+ JposProperties.MultiProperty populatorClassMultiProp =
+ jposProperties.getMultiProperty( JposProperties.JPOS_CONFIG_POPULATOR_CLASS_MULTIPROP_NAME );
+
+ JposProperties.MultiProperty populatorFileMultiProp =
+ jposProperties.getMultiProperty( JposProperties.JPOS_CONFIG_POPULATOR_FILE_MULTIPROP_NAME );
+
+ if( populatorClassMultiProp.getNumberOfProperties() == 0 )
+ {
+ tracer.println( "CompositeRegPopulator.load() w/o any defined multi-property" );
+ throw new RuntimeException( "CompositeRegPopulator.load() w/o any defined multi-property" );
+ }
+
+ Iterator popClasses = populatorClassMultiProp.getSortedPropertyNames();
+
+ String defaultPopName = (String)popClasses.next();
+ String defaultPopClass = populatorClassMultiProp.getPropertyString( defaultPopName );
+ int defaultPopClassNumber = populatorClassMultiProp.propertyNumber( defaultPopName );
+
+ JposRegPopulator defaultPopulator = createPopulator( defaultPopName, defaultPopClass );
+
+ if( populatorFileMultiProp != null && populatorFileMultiProp.getNumberOfProperties() > 0 )
+ {
+ String defaultPopFile = (String)populatorFileMultiProp.getPropertyString( defaultPopClassNumber );
+
+ if( defaultPopFile != null )
+ {
+ defaultPopulator.load( defaultPopFile );
+ lastLoadException = defaultPopulator.getLastLoadException();
+ popFileMap.put( defaultPopulator.getUniqueId(), defaultPopFile );
+ }
+ else
+ {
+ tracer.println( "Created default populator with name = " + defaultPopName +
+ " OK but populator file is null" );
+ defaultPopulator.load();
+ lastLoadException = defaultPopulator.getLastLoadException();
+ }
+ }
+ else
+ {
+ defaultPopulator.load();
+ lastLoadException = defaultPopulator.getLastLoadException();
+ }
+
+ if( defaultPopulator != null )
+ setDefaultPopulator( defaultPopulator );
+ else
+ tracer.println( "Did not add default populator by <name, className>: " +
+ "<" + defaultPopName + ", " + defaultPopClass + ">" );
+ while( popClasses.hasNext() )
+ {
+ String popName = (String)popClasses.next();
+ String popClass = populatorClassMultiProp.getPropertyString( popName );
+ int popClassNumber = populatorClassMultiProp.propertyNumber( popName );
+
+ JposRegPopulator populator = createPopulator( popName, popClass );
+
+ if( populator != null )
+ {
+ if( populatorFileMultiProp != null && populatorFileMultiProp.getNumberOfProperties() > 0 )
+ {
+ String popFile = (String)populatorFileMultiProp.getPropertyString( popClassNumber );
+ populator.load( popFile );
+ popFileMap.put( populator.getUniqueId(), popFile );
+ }
+ else
+ {
+ tracer.println( "Created populator with name = " + popName +
+ " OK but populator file is null" );
+ populator.load();
+ lastLoadException = populator.getLastLoadException();
+ }
+
+ add( populator );
+ }
+ else
+ tracer.println( "Did not add populator by <name, className>: " +
+ "<" + popName + ", " + popClass + ">" );
+ }
+ }
+
+ /**
+ * Loads the entries specified in the fileName for the default populator
+ * @param fileName the entries file name
+ */
+ public void load( String fileName ) { getDefaultPopulator().load( fileName ); }
+
+ /** @return the URL pointing to the entries file loaded or saved */
+ public URL getEntriesURL() { return this.getDefaultPopulator().getEntriesURL(); }
+
+ /**
+ * @return an Enumeration of JposEntry objects
+ * NOTE: this method is O(nm) where n == number of populators and m == average
+ * number of entries in populator. Could do better by keeping more data structure
+ * but not worth it if n and m are small (as expected in typical system)
+ */
+ public Enumeration getEntries()
+ {
+ Vector entryVector = new Vector();
+ Iterator populators = getPopulators();
+
+ while( populators.hasNext() )
+ {
+ JposRegPopulator pop = (JposRegPopulator)populators.next();
+
+ Enumeration entries = pop.getEntries();
+ while( entries.hasMoreElements() )
+ entryVector.add( entries.nextElement() );
+ }
+
+ return entryVector.elements();
+ }
+
+ /**
+ * @retun true if this populator is a composite populator or false otherwise
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public boolean isComposite() { return true; }
+
+ /**
+ * @return the name of this populator. This should be a short descriptive name
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public String getName() { return COMPOSITE_REG_POPULATOR_STRING; }
+
+ /**
+ * @return the last exception (if any) during the last load or null if no exception occurred
+ * @since 2.0.0
+ */
+ public Exception getLastLoadException() { return lastLoadException; }
+
+ /**
+ * @return a String representation of this JposRegPopulator
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public String toString() { return getName(); }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the default JposRegPopulator */
+ public JposRegPopulator getDefaultPopulator() { return defaultPop; }
+
+ /**
+ * Adds this JposRegPopulator to the composite
+ * @param populator adds the populator to the composite reg populator. Does nothing
+ * if the popualator already is in the composite
+ */
+ public void add( JposRegPopulator populator ) { popMap.put( populator.getUniqueId(), populator ); }
+
+ /**
+ * Removes this JposRegPopulator from the composite
+ * @param populator removes the populator to the composite reg populator
+ */
+ public void remove( JposRegPopulator populator ) { popMap.remove( populator.getUniqueId() ); }
+
+ /** @return an iterator over all populators in this composite */
+ public Iterator getPopulators() { return popMap.values().iterator(); }
+
+ /**
+ * @return the populator with unique ID passed
+ * @param uniqueId the populator unique ID
+ * @see jpos.config.JposRegPopulator#getUniqueId()
+ */
+ public JposRegPopulator getPopulator( String uniqueId )
+ { return (JposRegPopulator)popMap.get( uniqueId ); }
+
+ /** @return the number of populator in this composite */
+ public int size() { return popMap.size(); }
+
+ //-------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private HashMap popMap = new HashMap();
+ private HashMap popFileMap = new HashMap();
+ private JposRegPopulator defaultPop = null;
+ private Exception lastLoadException = null;
+
+ private Tracer tracer = TracerFactory.getInstance().
+ createTracer( "DefaultCompositeRegPopulator" );
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/config/JposConfigException.java b/org.eclipse.osbp.fork.jpos/src/jpos/config/JposConfigException.java
new file mode 100644
index 0000000..b432aff
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/config/JposConfigException.java
@@ -0,0 +1,54 @@
+package jpos.config;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import jpos.JposException;
+
+/**
+ * Defines an Exception class for JCL config related classes/interfaces and
+ * implementing classes
+ * @since 2.0.0
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class JposConfigException extends JposException
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /**
+ * Creates a JposConfigException with the description passed
+ * @param description the description String
+ */
+ public JposConfigException( String description )
+ {
+ super( 0, description );
+ }
+
+ /**
+ * Creates a JposConfigException with the description passed and
+ * the original exception that caused this one
+ * @param description the description String
+ * @param origException the exception that originally caused this one
+ */
+ public JposConfigException( String description, Exception origException )
+ {
+ super( 0, description, origException );
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/config/JposEntry.java b/org.eclipse.osbp.fork.jpos/src/jpos/config/JposEntry.java
new file mode 100644
index 0000000..5bcc185
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/config/JposEntry.java
@@ -0,0 +1,321 @@
+package jpos.config;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.io.Serializable;
+
+import java.util.Enumeration;
+import java.util.Iterator;
+
+/**
+ * Defines the minimal set of methods for a JposEntry object
+ * It allows the entries to contain properties <key, value> pairs
+ * The key being a String and the value any serializable Java objects
+ * NOTE: JposEntry implementation can be easily implemented using a
+ * java.util.Hashtable
+ * @since 0.1 (Philly 99 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface JposEntry extends Serializable, Comparable
+{
+ /**
+ * @return count of number of properties
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public int getPropertyCount();
+
+ /**
+ * @return an enumerator for the properties names
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public Enumeration getPropertyNames();
+
+ /**
+ * @return true if there is a property by the name specified
+ * @since 0.1 (Philly 99 meeting)
+ * @param propName the property name String
+ */
+ public boolean hasPropertyWithName( String propName );
+
+ /**
+ * @return true if there is a property by the value specified
+ * <p><b>NOTE: Object.equals method will be used to compare</b></p>
+ * @param propValue the property's value Object
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public boolean hasPropertyWithValue( Object propValue );
+
+ /**
+ * @return the property's value Object
+ * @param propName the property's name String
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public Object getPropertyValue( String propName );
+
+ /**
+ * @return the property's type
+ * @param propName the property's name String
+ * @since 2.0.0
+ */
+ public Class getPropertyType( String propName );
+
+ /**
+ * Modifies the property value of the property passed
+ * @return the oldPropValue or null if this property does not exist
+ * @param propName the property name
+ * @param propValue the new property value
+ * @since 1.3 (Tokyo 2001 meeting)
+ * @throws java.lang.IllegalArgumentException if the propName or propValue is null
+ */
+ public Object modifyPropertyValue( String propName, Object propValue ) throws IllegalArgumentException;
+
+ /**
+ * Adds a property to the JposEntry object.
+ * NOTE: any property with the same name gets overlaid
+ * @param propName the name of this property (should be unique per property)
+ * @param propValue the properties value Object
+ * @since 0.1 (Philly 99 meeting)
+ * @throws java.lang.IllegalArgumentException if the propName or propValue is null
+ */
+ public Object addProperty( String propName, Object propValue ) throws IllegalArgumentException;
+
+ /**
+ * Looks for a property with name specified and removes it
+ * @param propName the name String of the property to remove
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public Object removeProperty( String propName );
+
+ /**
+ * @return true if the two JposEntries have the same properties
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public boolean equals( JposEntry otherEntry );
+
+ /**
+ * @return the JposRegPopulator that loads/saves this entry. If null the default
+ * populator is used
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public JposRegPopulator getRegPopulator();
+
+ /**
+ * @return the logical name for this JposEntry. This is a shortcut for easily getting
+ * the logical name vs getting a property and passing the logical name constant
+ * @see jpos.config.JposEntry#getPropertyValue
+ * @see jpos.config.JposEntry#LOGICAL_NAME_PROP_NAME
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public String getLogicalName();
+
+ /**
+ * Returns a JposEntry.Prop with name specified.
+ * <p><b>
+ * Changes to that property object are not reflected in this entry. You must
+ * apply the changes to the property to the entry by calling modifyProp() method
+ * </b></p>
+ * @return the JposEntry.Prop with name specified or null if no such property exist
+ * @param propName the property name
+ * @since 2.0.0
+ */
+ public JposEntry.Prop getProp( String propName );
+
+ /**
+ * Returns an Iterator of JposEntry.Prop in this entry
+ * <p><b>
+ * Changes to any of the returned property object are not reflected in this entry.
+ * You must apply the changes to the property to the entry by calling modifyProp() method
+ * </b></p>
+ * @return an Iterator over the properties in this JposEntry as JposEntry.Prop objects
+ * @since 1.3 (Washington DC 2001)
+ */
+ public Iterator getProps();
+
+ /**
+ * Adds a new property
+ * @param prop the JposEntry.Prop to add
+ * @since 1.3 (Washington DC 2001 meeting)
+ * @throws java.lang.IllegalArgumentException if the prop is null
+ */
+ public void add( JposEntry.Prop prop ) throws IllegalArgumentException;
+
+ /**
+ * Looks for a property with name specified and removes it. If none exist then
+ * does nothing and return null
+ * @return the value for the name passed
+ * @param name the name String of the property to remove
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public void remove( JposEntry.Prop prop );
+
+ /**
+ * Modifies the property with name of property passed with the new value if
+ * that property currently exist in the entry otherwise does nothing
+ * @param prop the JposEntry.Prop to modify
+ * @since 2.0.0
+ * @throws java.lang.IllegalArgumentException if the prop is null
+ */
+ public void modify( JposEntry.Prop prop ) throws IllegalArgumentException;
+
+ /**
+ * @return true if this entry has the property passed
+ * @param prop the JposEntry.Prop to check for
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public boolean hasProp( JposEntry.Prop prop );
+
+ /**
+ * @return a JposEntry.Prop object created with the <name, value, type> tripplet
+ * passed as arguments
+ * @param propName the property name
+ * @param propValue the property value
+ * @param propType the property type (valid for this value)
+ * @throws jpos.config.JposConfigException if any of the argument is null or the
+ * property value and type mismatch or this is not a valid property type
+ * @see jpos.config.JposEntryConst#PROP_TYPES
+ * @since 2.0.0
+ */
+ public JposEntry.Prop createProp( String propName, Object propValue, Class propType ) throws JposConfigException;
+
+ //-------------------------------------------------------------------------
+ // Inner interfaces
+ //
+
+ /**
+ * Inner interface to represent a property of a JposEntry
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ * @since 1.3 (Washington DC 2001)
+ */
+ public interface Prop extends Comparable
+ {
+ /** @return the name of this property */
+ public String getName();
+
+ /** @return the value of this property (the value is returned as an Object) */
+ public Object getValue();
+
+ /** @return the value of this property as a String */
+ public String getValueAsString();
+
+ /**
+ * Returns the Class object that is the type of this property value
+ * possible values returned are the java.lang wrapper classes for the
+ * primitive types e.g. Integer, Byte, Boolean, ...
+ * @return the type of this property as a java.lang.Class object
+ */
+ public Class getType();
+
+ /**
+ * Sets the name of this property
+ * @param s the String object
+ * @throws java.lang.IllegalArgumentException if the value is null
+ */
+ public void setName( String s ) throws IllegalArgumentException;
+
+ /**
+ * Sets the value of this property (String). Also sets its Type.
+ * <p><b>This is the default type of any property</b></p>
+ * @param objValue the object value
+ * @throws java.lang.IllegalArgumentException if the value is null or
+ * that this is not a valid typed property value
+ */
+ public void setValue( Object objValue ) throws IllegalArgumentException;
+
+ /**
+ * @return true if the property is of the type specified by the Class
+ * object passed
+ * @param type the Class object
+ */
+ public boolean isOfType( Class type );
+
+ /**
+ * @return true if this and otherProp have same name and value
+ * @param otherProp the other JposEntry.Prop
+ */
+ public boolean equals( Object otherProp );
+
+ /** @return a new copy of this JposEntry.Prop object */
+ public JposEntry.Prop copy();
+ }
+
+ //-------------------------------------------------------------------------
+ // Interface constants
+ //
+
+ /**
+ * JposEntry property name defining the JposServiceInstanceFactory class for this JposEntry
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public static final String SI_FACTORY_CLASS_PROP_NAME = "serviceInstanceFactoryClass";
+
+ /**
+ * JposEntry property name that must be defined by all JposEntry objects used to create services
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public static final String LOGICAL_NAME_PROP_NAME = "logicalName";
+
+ /**
+ * JposEntry property name that specifies the fully qualified class name for the service
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static final String SERVICE_CLASS_PROP_NAME = "serviceClass";
+
+ /**
+ * The vendor name string
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static final String VENDOR_NAME_PROP_NAME = "vendorName";
+
+ /**
+ * The vendor URL string
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static final String VENDOR_URL_PROP_NAME = "vendorURL";
+
+ /**
+ * The device category for the service must be one of JavaPOS defined categories
+ * i.e. CashDrawer, CashChanger, MSR, MICR, ...
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static final String DEVICE_CATEGORY_PROP_NAME = "deviceCategory";
+
+ /**
+ * The JavaPOS version supported by this service (i.e. 1.4, 1.5...)
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static final String JPOS_VERSION_PROP_NAME = "jposVersion";
+
+ /**
+ * A short name for this product
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static final String PRODUCT_NAME_PROP_NAME = "productName";
+
+ /**
+ * A string description for this product
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static final String PRODUCT_DESCRIPTION_PROP_NAME = "productDescription";
+
+ /**
+ * The product's URL string
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static final String PRODUCT_URL_PROP_NAME = "productURL";
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/config/JposEntryConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/config/JposEntryConst.java
new file mode 100644
index 0000000..b81fa1e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/config/JposEntryConst.java
@@ -0,0 +1,168 @@
+package jpos.config;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.io.Serializable;
+
+/**
+ * Defines constants for standard properties names and values used to create
+ * JposEntries...
+ * @since 1.3 (Berlin 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface JposEntryConst extends RS232Const, Serializable
+{
+ //-------------------------------------------------------------------------
+ // Required properties array
+ //
+
+ /**
+ * Array of all required properties
+ * @since 1.3 (Washington 2001 meeting)
+ */
+ public static final String[] REQUIRED_PROPS =
+ {
+ JposEntry.SI_FACTORY_CLASS_PROP_NAME,
+ JposEntry.LOGICAL_NAME_PROP_NAME,
+ JposEntry.SERVICE_CLASS_PROP_NAME,
+ JposEntry.VENDOR_NAME_PROP_NAME,
+ JposEntry.VENDOR_URL_PROP_NAME,
+ JposEntry.DEVICE_CATEGORY_PROP_NAME,
+ JposEntry.JPOS_VERSION_PROP_NAME,
+ JposEntry.PRODUCT_NAME_PROP_NAME,
+ JposEntry.PRODUCT_DESCRIPTION_PROP_NAME,
+ JposEntry.PRODUCT_URL_PROP_NAME
+ };
+
+ //-------------------------------------------------------------------------
+ // Required properties default values
+ //
+
+ public static final String LOGICAL_NAME_DEFAULT_PROP_VALUE =
+ "UnknownDevice";
+
+ public static final String SI_FACTORY_CLASS_DEFAULT_PROP_VALUE =
+ "UnknownServiceInstanceFactoryClass";
+
+ public static final String SERVICE_CLASS_DEFAULT_PROP_VALUE =
+ "UnknownServiceClass";
+
+ public static final String DEVICE_CATEGORY_DEFAULT_PROP_VALUE =
+ "CashDrawer";
+
+ public static final String JPOS_VERSION_DEFAULT_PROP_VALUE = "1.5";
+
+ public static final String VENDOR_NAME_DEFAULT_PROP_VALUE =
+ "Unknown Vendor Name";
+
+ public static final String VENDOR_URL_DEFAULT_PROP_VALUE =
+ "http://www.UnknownVerdorURL.com";
+
+ public static final String PRODUCT_NAME_DEFAULT_PROP_VALUE =
+ "Unknown Product Name";
+
+ public static final String PRODUCT_URL_DEFAULT_PROP_VALUE =
+ "http://www.UnknownProductURL.com";
+
+ public static final String PRODUCT_DESCRIPTION_DEFAULT_PROP_VALUE =
+ "Unknown Product Description";
+
+ /** @return an array of all compatible JavaPOS version values */
+ public static final String[] JPOS_VERSION_PROPS =
+ { "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8" };
+
+ //-------------------------------------------------------------------------
+ // Standard properties name and values
+ //
+
+ //Property names
+
+ /** Required property indicating the BUS used for this JposEntry */
+ public static final String DEVICE_BUS_PROP_NAME = "deviceBus";
+
+ //Property values
+
+ /** Property value for deviceBus for RS232 */
+ public static final String RS232_DEVICE_BUS = "RS232";
+
+ /** Property value for deviceBus for standard Parallel ports */
+ public static final String PARALLEL_DEVICE_BUS = "Parallel";
+
+ /** Property value for deviceBus for USB */
+ public static final String USB_DEVICE_BUS = "USB";
+
+ /** Property value for deviceBus for RS485 (or SIO) */
+ public static final String RS485_DEVICE_BUS = "RS485";
+
+ /** Property value for deviceBus for HID (or Human Inferface Device) */
+ public static final String HID_DEVICE_BUS = "HID";
+
+ /** Property value for deviceBus for proprietary buses */
+ public static final String PROPRIETARY_DEVICE_BUS = "Proprietary";
+
+ /** Property value for deviceBus for other "Unknown" buses */
+ public static final String UNKNOWN_DEVICE_BUS = "Unknown";
+
+ /** Array of all the deviceBus property values */
+ public static final String[] DEVICE_BUS_VALUES =
+ {
+ RS232_DEVICE_BUS,
+ PARALLEL_DEVICE_BUS,
+ USB_DEVICE_BUS,
+ RS485_DEVICE_BUS,
+ HID_DEVICE_BUS,
+ PROPRIETARY_DEVICE_BUS,
+ UNKNOWN_DEVICE_BUS
+ };
+
+ //-------------------------------------------------------------------------
+ // Property types allowed
+ //
+
+ /** The default JposEntry property type */
+ public static final Class DEFAULT_PROP_TYPE = String.class;
+
+ /** Array of all the property types allowed for a JposEntry property */
+ public static final Class[] PROP_TYPES =
+ {
+ String.class,
+ Boolean.class,
+ Byte.class,
+ Character.class,
+ Double.class,
+ Float.class,
+ Integer.class,
+ Long.class,
+ Short.class
+ };
+
+ /** Array of all the property types allowed for a JposEntry property */
+ public static final String[] PROP_TYPES_SHORT_NAMES =
+ {
+ "String",
+ "Boolean",
+ "Byte",
+ "Character",
+ "Double",
+ "Float",
+ "Integer",
+ "Long",
+ "Short"
+ };
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/config/JposEntryRegistry.java b/org.eclipse.osbp.fork.jpos/src/jpos/config/JposEntryRegistry.java
new file mode 100644
index 0000000..030617c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/config/JposEntryRegistry.java
@@ -0,0 +1,148 @@
+package jpos.config;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.util.Enumeration;
+import java.io.File;
+
+/**
+ * This interface defines the populator used by the service connection
+ * and the JposServiceFactory to access the JavaPOS JposEntry objects.
+ * It also allows a consistent place to aggregates the defined JposEntry
+ * and allows for dynamic updates of the current set of JposEntry objects.
+ * @since 0.1 (Philly 99 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface JposEntryRegistry
+{
+ /**
+ * @return true if there is an JposEntry with the specified logical name
+ * @param logicalName the logical name for the service
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public boolean hasJposEntry( String logicalName );
+
+ /**
+ * @return an enumeration of JposEntry objects
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public Enumeration getEntries();
+
+ /**
+ * @return the JposEntry for the logicalName specified
+ * @param logicalName the logical name of the JposEntry to find
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public JposEntry getJposEntry( String logicalName );
+
+ /**
+ * Add an JposEntry for the service with logical name specified
+ * @param logicalName the logicalName of the service
+ * @param entry the JposEntry to add
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public void addJposEntry( String logicalName, JposEntry entry );
+
+ /**
+ * Add an JposEntry for the service. The logical name is obtained from the entry
+ * @param entry the JposEntry to add
+ * @see jpos.config.JposEntry#getLogicalName()
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public void addJposEntry( JposEntry entry );
+
+ /**
+ * Removes the specified JposEntry
+ * @param entry the entry to remove
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public void removeJposEntry( JposEntry entry );
+
+ /**
+ * Removes the JposEntry with the logicalName specified
+ * @param logicalName the JposEntry's logical name
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public void removeJposEntry( String logicalName );
+
+ /**
+ * Modify the JposEntry with logicalName with the new entry indicated
+ * @param logicalName the JposEntry's logical name
+ * @param newEntry the new JposEntry
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public void modifyJposEntry( String logicalName, JposEntry newEntry );
+
+ /**
+ * Adds a new JposEntryRegistryListener to the list of listeners
+ * @param l the JposEntryRegistryListener object
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public void addJposEntryRegistryListener( JposEntryRegistryListener l );
+
+ /**
+ * Removes a new JposEntryRegistryListener to the list of listeners
+ * @param l the JposEntryRegistryListener object
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public void removeJposEntryRegistryListener( JposEntryRegistryListener l );
+
+ /**
+ * Tell the JposEntryRegistry to save the current entries
+ * NOTE: the actual implementation will save it in dependent manner
+ * @since 0.1 (Philly 99 meeting)
+ * @throws java.lang.Exception if any error occurs while saving
+ */
+ public void save() throws Exception;
+
+ /**
+ * Tell the JposEntryRegistry to save the current entries to the file
+ * specified. Depending on the current JposEntryPopulator the file might
+ * be an XML or serialized or other file.
+ * @since 2.1.0
+ * @throws java.lang.Exception if any error occurs while saving or if the
+ * current populator does not support saving in a file
+ */
+ public void saveToFile( File file ) throws Exception;
+
+ /**
+ * Loads the JposEntryRegistry using the current populator
+ * NOTE: if no entries are found or an error occurs then the registry is empty
+ * @since 1.2 (NY 2K meeting)
+ */
+ public void load();
+
+ /**
+ * @return the JposRegPopulator for this registry
+ * @since 1.2 (NY 2K meeting)
+ */
+ public JposRegPopulator getRegPopulator();
+
+ /**
+ * @return the current size of the registry
+ * @since 1.3 (Tokyo 2001 meeting)
+ */
+ public int getSize();
+
+ /**
+ * @return true if the registry has already been loaded or false otherwise
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public boolean isLoaded();
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/config/JposEntryRegistryEvent.java b/org.eclipse.osbp.fork.jpos/src/jpos/config/JposEntryRegistryEvent.java
new file mode 100644
index 0000000..e4fa1f0
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/config/JposEntryRegistryEvent.java
@@ -0,0 +1,53 @@
+package jpos.config;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.util.*;
+
+/**
+ * Event class for the JposEntryRegistry
+ * @since 0.1 (Philly 99 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class JposEntryRegistryEvent extends EventObject
+{
+ /**
+ * Creates a new event
+ * @param source the source of this event
+ * @param entry the JposEntry associated with the event
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public JposEntryRegistryEvent( Object source, JposEntry entry )
+ {
+ super( source );
+ jposEntry = entry;
+ }
+
+ /**
+ * @return the JposEntry for this event
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public JposEntry getJposEntry() { return jposEntry; }
+
+ //--------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private JposEntry jposEntry = null;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/config/JposEntryRegistryListener.java b/org.eclipse.osbp.fork.jpos/src/jpos/config/JposEntryRegistryListener.java
new file mode 100644
index 0000000..bed3345
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/config/JposEntryRegistryListener.java
@@ -0,0 +1,50 @@
+package jpos.config;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.util.*;
+
+/**
+ * Listener interface to implement when registering for JposEntryEvents
+ * @since 0.1 (Philly 99 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface JposEntryRegistryListener extends EventListener
+{
+ /**
+ * Indicates that a new JposEntry was added to the registry
+ * @param event the JposEntryEvent object
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public void jposEntryAdded( JposEntryRegistryEvent event );
+
+ /**
+ * Indicates that a JposEntry was removed from the registry
+ * @param event the JposEntryEvent object
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public void jposEntryRemoved( JposEntryRegistryEvent event );
+
+ /**
+ * Indicates that a JposEntry was modified from the registry
+ * @param event the JposEntryEvent object
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public void jposEntryModified( JposEntryRegistryEvent event );
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/config/JposRegPopulator.java b/org.eclipse.osbp.fork.jpos/src/jpos/config/JposRegPopulator.java
new file mode 100644
index 0000000..df811ac
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/config/JposRegPopulator.java
@@ -0,0 +1,111 @@
+package jpos.config;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.util.Enumeration;
+import java.net.URL;
+
+/**
+ * Defines an interface to load, save JposEntries
+ * @since 1.2 (NY 2K 99 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface JposRegPopulator
+{
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /**
+ * @return a unique String ID for this JposRegPopulator instance
+ * Can be implemented in terms of the getClassName() method
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public String getUniqueId();
+
+ /**
+ * @return the fully qualified class name implementing the
+ * JposRegPopulator interface
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public String getClassName();
+
+ /**
+ * Tell the populator to save the current entries
+ * @param entries an enumeration of JposEntry objects
+ * @since 1.2 (NY 2K meeting)
+ * @throws java.lang.Exception if any error occurs while saving
+ */
+ public void save( Enumeration entries ) throws Exception;
+
+ /**
+ * Tell the populator to save the current entries in the file specified
+ * @param entries an enumeration of JposEntry objects
+ * @param fileName the file name to save entries
+ * @since 1.3 (SF 2K meeting)
+ * @throws java.lang.Exception if any error occurs while saving
+ */
+ public void save( Enumeration entries, String fileName ) throws Exception;
+
+ /**
+ * Tell the populator to load the entries
+ * @since 1.2 (NY 2K meeting)
+ */
+ public void load();
+
+ /**
+ * Loads the entries specified in the fileName
+ * @param fileName the entries file name
+ * @since 1.3 (SF 2K meeting)
+ */
+ public void load( String fileName );
+
+ /**
+ * @return the last exception (if any) during the last load or null
+ * if no exception occurred
+ * @since 2.0.0
+ */
+ public Exception getLastLoadException();
+
+ /**
+ * @return the URL pointing to the entries file loaded or saved
+ * @since 1.2 (NY 2K meeting)
+ */
+ public URL getEntriesURL();
+
+ /**
+ * @return an Enumeration of JposEntry objects
+ * @since 1.2 (NY 2K meeting)
+ */
+ public Enumeration getEntries();
+
+ /**
+ * @retun true if this populator is a composite populator or false
+ * otherwise
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public boolean isComposite();
+
+ /**
+ * @return the name of this populator. This should be a short
+ * descriptive name
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public String getName();
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/config/RS232Const.java b/org.eclipse.osbp.fork.jpos/src/jpos/config/RS232Const.java
new file mode 100644
index 0000000..c92f95b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/config/RS232Const.java
@@ -0,0 +1,158 @@
+package jpos.config;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Defines constants for RS232 buses
+ * @since 1.3 (Washington DC 2001 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface RS232Const
+{
+ //-------------------------------------------------------------------------
+ // RS232 properties name and values
+ //
+
+ //Property names
+
+ /** The RS232 "portName" property (type == String) */
+ public static final String RS232_PORT_NAME_PROP_NAME = "portName";
+
+ /** The RS232 "baudRate" property (type == int [...]) */
+ public static final String RS232_BAUD_RATE_PROP_NAME = "baudRate";
+
+ /** The RS232 "dataBits" property (type == int list [4, 5, 6, 7, 8]) */
+ public static final String RS232_DATA_BITS_PROP_NAME = "dataBits";
+
+ /** The RS232 "parity" property (type == String list [Even, Odd, None, Mark, Space]) */
+ public static final String RS232_PARITY_PROP_NAME = "parity";
+
+ /** The RS232 "stopBits" property (type == String list [1, 1.5, 2]) */
+ public static final String RS232_STOP_BITS_PROP_NAME = "stopBits";
+
+ /** The RS232 "flowControl" property (type == String list [Xon/Xoff, Hardware, None]) */
+ public static final String RS232_FLOW_CONTROL_PROP_NAME = "flowControl";
+
+ /**
+ * Array of all RS232 properties
+ * @since 1.3 (Washington 2001 meeting)
+ */
+ public static final String[] RS232_PROPS = { RS232_PORT_NAME_PROP_NAME,
+ RS232_BAUD_RATE_PROP_NAME,
+ RS232_DATA_BITS_PROP_NAME,
+ RS232_PARITY_PROP_NAME,
+ RS232_STOP_BITS_PROP_NAME,
+ RS232_FLOW_CONTROL_PROP_NAME };
+
+ //Property values
+
+ /** The RS232 "baudRate" property values as Integer objects (typical values) */
+ public static final String[] RS232_BAUD_RATE_VALUES = { "2400", "4800", "7200", "9600",
+ "14400", "19200", "38400", "57600",
+ "115200", "75", "110", "134", "150",
+ "300", "600", "1200", "1800" };
+
+ /** The RS232 "dataBits" property value of 4 */
+ public static final String RS232_DATA_BITS_4 = "4";
+
+ /** The RS232 "dataBits" property value of 5 */
+ public static final String RS232_DATA_BITS_5 = "5";
+
+ /** The RS232 "dataBits" property value of 6 */
+ public static final String RS232_DATA_BITS_6 = "6";
+
+ /** The RS232 "dataBits" property value of 7 */
+ public static final String RS232_DATA_BITS_7 = "7";
+
+ /** The RS232 "dataBits" property value of 8 */
+ public static final String RS232_DATA_BITS_8 = "8";
+
+ /** The RS232 "dataBits" property values as Integer objects */
+ public static final String[] RS232_DATA_BITS_VALUES = { RS232_DATA_BITS_8,
+ RS232_DATA_BITS_7,
+ RS232_DATA_BITS_6,
+ RS232_DATA_BITS_5,
+ RS232_DATA_BITS_4 };
+
+ /** The RS232 "parity" property value of "Even" */
+ public static final String RS232_PARITY_EVEN = "Even";
+
+ /** The RS232 "parity" property value of "Odd" */
+ public static final String RS232_PARITY_ODD = "Odd";
+
+ /** The RS232 "parity" property value of "None" */
+ public static final String RS232_PARITY_NONE = "None";
+
+ /** The RS232 "parity" property value of "Mark" */
+ public static final String RS232_PARITY_MARK = "Mark";
+
+ /** The RS232 "parity" property value of "Space" */
+ public static final String RS232_PARITY_SPACE = "Space";
+
+ /** The RS232 "parity" property values as String objects */
+ public static final String[] RS232_PARITY_VALUES = { RS232_PARITY_NONE, RS232_PARITY_EVEN,
+ RS232_PARITY_ODD, RS232_PARITY_MARK,
+ RS232_PARITY_SPACE };
+
+ /** The RS232 "stopBits" property value of 1 */
+ public static final String RS232_STOP_BITS_1 = "1";
+
+ /** The RS232 "stopBits" property value of 1.5 */
+ public static final String RS232_STOP_BITS_1_5 = "1.5";
+
+ /** The RS232 "stopBits" property value of 2 */
+ public static final String RS232_STOP_BITS_2 = "2";
+
+ /** The RS232 "stopBits" property values as Strin objects */
+ public static final String[] RS232_STOP_BITS_VALUES = { RS232_STOP_BITS_1, RS232_STOP_BITS_1_5,
+ RS232_STOP_BITS_2 };
+
+ /** The RS232 "flowControl" property value of "Xon/Xoff" */
+ public static final String RS232_FLOW_CONTROL_XON_XOFF = "Xon/Xoff";
+
+ /** The RS232 "flowControl" property value of "Hardware" */
+ public static final String RS232_FLOW_CONTROL_HARDWARE = "Hardware";
+
+ /** The RS232 "flowControl" property value of "None" */
+ public static final String RS232_FLOW_CONTROL_NONE = "None";
+
+ /** The RS232 "flowControl" property values as Strin objects */
+ public static final String[] RS232_FLOW_CONTROL_VALUES = { RS232_FLOW_CONTROL_NONE,
+ RS232_FLOW_CONTROL_XON_XOFF,
+ RS232_FLOW_CONTROL_HARDWARE };
+ //Default RS232 property values
+
+ /** The RS232 "portName" property default value */
+ public static final String DEFAULT_RS232_PORT_NAME_VALUE = "";
+
+ /** The RS232 "baudRate" property default value (type == int [...]) */
+ public static final String DEFAULT_RS232_BAUD_RATE_VALUE = "9600";
+
+ /** The RS232 "dataBits" property default value (type == int list [4, 5, 6, 7, 8]) */
+ public static final String DEFAULT_RS232_DATA_BITS_VALUE= "8";
+
+ /** The RS232 "parity" property default value (type == String list [Even, Odd, None, Mark, Space]) */
+ public static final String DEFAULT_RS232_PARITY_VALUE = RS232_FLOW_CONTROL_NONE;
+
+ /** The RS232 "stopBits" property default value (type == String list [1, 1.5, 2]) */
+ public static final String DEFAULT_RS232_STOP_BITS_VALUE = RS232_STOP_BITS_1;
+
+ /** The RS232 "flowControl" property default value (type == String list [Xon/Xoff, Hardware, None]) */
+ public static final String DEFAULT_RS232_FLOW_CONTROL_VALUE = RS232_FLOW_CONTROL_XON_XOFF;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/config/Version.java b/org.eclipse.osbp.fork.jpos/src/jpos/config/Version.java
new file mode 100644
index 0000000..ad4c1b1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/config/Version.java
@@ -0,0 +1,47 @@
+package jpos.config;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Simple Version class indicating that prints out the curent version of the JCL
+ * NOTE: This class indicates the same version number as the jpos.loader.Version
+ * and is added as a convinience
+ * @since 1.2 (NY 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public final class Version extends Object
+{
+ /**
+ * Main entry point for the Version application
+ * @param args a String[] of arguments
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static void main( String[] args )
+ {
+ System.out.println( "JavaPOS jpos.config/loader (JCL) version " +
+ jpos.loader.Version.getVersionString() );
+ }
+
+ /**
+ * @return a String of the version number of the JCL
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static String getVersionString()
+ { return jpos.loader.Version.getVersionString(); }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/AbstractRegPopulator.java b/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/AbstractRegPopulator.java
new file mode 100644
index 0000000..926cecb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/AbstractRegPopulator.java
@@ -0,0 +1,477 @@
+package jpos.config.simple;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.io.*;
+import java.util.*;
+import java.util.zip.*;
+import java.net.URL;
+
+import jpos.config.*;
+import jpos.loader.JposServiceLoader;
+import jpos.util.JposProperties;
+import jpos.util.tracing.Tracer;
+import jpos.util.tracing.TracerFactory;
+
+/**
+ * Common abstract superclass to help in the implementation of the
+ * JposRegPopulator
+ * @see jpos.util.JposProperties#JPOS_REG_POPULATOR_CLASS_PROP_NAME
+ * @since 1.2 (NY 2K 99 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public abstract class AbstractRegPopulator extends Object
+ implements JposRegPopulator
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /**
+ * Creates a AbstractRegPopulator and sets the uniqueId with the string
+ * passed
+ * @param id the String ID
+ * @since 1.3 (Washington DC 20001)
+ */
+ public AbstractRegPopulator( String id ) { setUniqueId( id ); }
+
+ //-------------------------------------------------------------------------
+ // Public abstract methods
+ //
+
+ /**
+ * Tell the populator to save the current entries
+ * @param entries an enumeration of JposEntry objects
+ * @since 1.2 (NY 2K meeting)
+ * @throws java.lang.Exception if any error occurs while saving
+ */
+ public abstract void save( Enumeration entries ) throws Exception;
+
+ /**
+ * Tell the populator to save the current entries in the file specified
+ * @param entries an enumeration of JposEntry objects
+ * @param fileName the file name to save entries
+ * @since 1.3 (SF 2K meeting)
+ * @throws java.lang.Exception if any error occurs while saving
+ */
+ public abstract void save( Enumeration entries, String fileName )
+ throws Exception;
+
+ /**
+ * Tell the populator to load the entries
+ * @since 1.2 (NY 2K meeting)
+ */
+ public abstract void load();
+
+
+ /**
+ * Loads the entries specified in the fileName
+ * @param fileName the entries file name
+ * @since 1.3 (SF 2K meeting)
+ */
+ public abstract void load( String fileName );
+
+ /**
+ * @return the URL pointing to the entries file loaded or saved
+ * @since 1.2 (NY 2K meeting)
+ */
+ public abstract URL getEntriesURL();
+
+ /**
+ * @return the name of this populator. This should be a short descriptive
+ * name
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public abstract String getName();
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /**
+ * @return a unique String ID for this JposRegPopulator instance
+ * Can be implemented in terms of the getClassName() method
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public String getUniqueId()
+ { return ( uniqueId.equals( "" ) ? getClassName() : uniqueId ); }
+
+ /**
+ * @return an Enumeration of JposEntry objects
+ * @since 1.2 (NY 2K meeting)
+ */
+ public Enumeration getEntries()
+ {
+ Vector vector = new Vector();
+ Enumeration entries = jposEntries.elements();
+
+ while( entries.hasMoreElements() )
+ vector.addElement( entries.nextElement() );
+
+ return vector.elements();
+ }
+
+ /**
+ * @retun true if this populator is a composite populator or false otherwise
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public boolean isComposite() { return false; }
+
+ /**
+ * @return a String representation of this JposRegPopulator
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public String toString() { return getName(); }
+
+ /**
+ * @return the last exception (if any) during the last load or null if no
+ * exception occurred
+ * @since 2.0.0
+ */
+ public Exception getLastLoadException() { return lastLoadException; }
+
+ //--------------------------------------------------------------------------
+ // Protected methods
+ //
+
+ /**
+ * @return a URL pointing to the entries file
+ * @param file the File that this URL will point to
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected URL createURLFromFile( File file )
+ {
+ URL url = null;
+
+ try
+ { url = new URL( "file", "", file.getAbsolutePath() ); }
+ catch( Exception e )
+ {
+ tracer.println( "Error creating URL: Exception.message=" +
+ e.getMessage() );
+ }
+
+ return url;
+ }
+
+ /**
+ * @return a URL pointing to the entries file
+ * @param zipFile the ZipFile that this URL will point to
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected URL createURLFromFile( ZipFile zipFile )
+ {
+ URL url = null;
+
+ try
+ {
+ url = new URL( "jar", "", ( new File( zipFile.getName() ) ).
+ getAbsolutePath() );
+ }
+ catch( Exception e )
+ {
+ tracer.println( "Error creating URL: Exception.message=" +
+ e.getMessage() );
+ }
+
+ return url;
+ }
+
+ /**
+ * @return the jposEntries Hashtable to allow access to subclasses
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected Hashtable getJposEntries() { return jposEntries; }
+
+ /**
+ * @return true if a populator file (or URL) is defined
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected boolean isPopulatorFileDefined()
+ {
+ boolean defined = false;
+ JposProperties jposProperties =
+ JposServiceLoader.getManager().getProperties();
+
+ if( jposProperties.
+ isPropertyDefined( JposProperties.JPOS_POPULATOR_FILE_PROP_NAME ) )
+ defined = true;
+ else
+ if( jposProperties.
+ isPropertyDefined( JposProperties.
+ JPOS_POPULATOR_FILE_URL_PROP_NAME ) )
+ defined = true;
+
+ return defined;
+ }
+
+ /**
+ * @return an InputStream object to the populator file
+ * (multiple calls will return a new stream each time)
+ * @since 1.2 (NY 2K meeting)
+ * @throws java.lang.Exception if an error ocurs while getting the
+ * InputStream object
+ */
+ protected InputStream getPopulatorFileIS() throws Exception
+ {
+ JposProperties jposProperties = JposServiceLoader.
+ getManager().getProperties();
+
+ if( jposProperties.isPropertyDefined( JposProperties.
+ JPOS_POPULATOR_FILE_PROP_NAME ) )
+ {
+ populatorFileName = jposProperties.
+ getPropertyString( JposProperties.
+ JPOS_POPULATOR_FILE_PROP_NAME );
+
+ tracer.println( "getPopulatorFileIS(): populatorFileName=" +
+ populatorFileName );
+
+ populatorIS = new FileInputStream( populatorFileName );
+ }
+ else
+ if( jposProperties.
+ isPropertyDefined( JposProperties.
+ JPOS_POPULATOR_FILE_URL_PROP_NAME ) )
+ {
+ populatorFileURL = jposProperties.
+ getPropertyString( JposProperties.
+ JPOS_POPULATOR_FILE_URL_PROP_NAME );
+
+ URL url = new URL( populatorFileURL );
+
+ populatorIS = url.openStream();
+
+ tracer.println( "getPopulatorFileIS(): populatorFileURL=" +
+ populatorFileURL );
+ }
+ else
+ {
+ String msg = "jpos.config.populatorFile OR " +
+ " jpos.config.populatorFileURL properties not defined";
+
+ tracer.println( msg );
+
+ throw new Exception( msg );
+ }
+
+ return populatorIS;
+ }
+
+ /**
+ * @return an OutputStream object to the populator file
+ * (multiple calls will return a new stream each time)
+ * @since 1.2 (NY 2K meeting)
+ * @throws java.lang.Exception if an error ocurs while getting the
+ * InputStream object
+ */
+ protected OutputStream getPopulatorFileOS() throws Exception
+ {
+ JposProperties jposProperties = JposServiceLoader.
+ getManager().getProperties();
+
+ if( jposProperties.
+ isPropertyDefined( JposProperties.JPOS_POPULATOR_FILE_PROP_NAME ) )
+ {
+ populatorFileName = jposProperties.
+ getPropertyString( JposProperties.
+ JPOS_POPULATOR_FILE_PROP_NAME );
+
+ populatorOS = new FileOutputStream( populatorFileName );
+ }
+ else
+ if( jposProperties.
+ isPropertyDefined( JposProperties.
+ JPOS_POPULATOR_FILE_URL_PROP_NAME ) )
+ {
+ populatorFileURL = jposProperties.
+ getPropertyString( JposProperties.
+ JPOS_POPULATOR_FILE_URL_PROP_NAME );
+
+ URL url = new URL( populatorFileURL );
+
+ populatorOS = url.openConnection().getOutputStream();
+ }
+ else
+ {
+ String msg = "jpos.config.populatorFile OR " +
+ "jpos.config.populatorFileURL properties not defined";
+
+ tracer.println( msg );
+
+ throw new Exception( msg );
+ }
+
+ return populatorOS;
+ }
+
+ /**
+ * @return the populatorFile names property value
+ * (returns "" if not defined)
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected String getPopulatorFileName() { return populatorFileName; }
+
+ /**
+ * @return the populatorURLFile names property value
+ * (returns "" if not defined)
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected String getPopulatorFileURL() { return populatorFileURL; }
+
+ /**
+ * Sets the unique ID for this populator
+ * @param s the String object. Needs to be unique
+ * @since 1.3 (Washington DC 2001)
+ */
+ protected void setUniqueId( String s ) { uniqueId = s; }
+
+ /**
+ * Finds the first file matching the fileName in the CLASSPATH
+ * directory or each
+ * JAR or Zip file in the CLASSPATH
+ * <b>NOTE:</b>Decorated the FileInputStream with a BufferedInputStream to
+ * improve load time...
+ * @param fileName the fileName to find
+ * @since 2.0 (Long Beach 2001)
+ */
+ protected InputStream findFileInClasspath( String fileName )
+ {
+ String classpath = System.getProperty( "java.class.path" );
+ String pathSeparator = System.getProperty( "path.separator" );
+ String fileSeparator = System.getProperty( "file.separator" );
+
+ InputStream is = null;
+
+ if( fileName.startsWith( "." ) || fileName.startsWith( fileSeparator ) )
+ {
+ try
+ { is = new BufferedInputStream( new FileInputStream( fileName ) ); }
+ catch( IOException ioe )
+ {
+ is = null;
+
+ tracer.println( "findFileInClasspath: IOException.msg=" +
+ ioe.getMessage() );
+ }
+
+ return is;
+ }
+
+ String path = "";
+
+ Vector jarZipFilesVector = new Vector();
+
+ for( StringTokenizer st = new StringTokenizer( classpath,
+ pathSeparator, false );
+ st.hasMoreTokens(); )
+ {
+ try
+ {
+ path = st.nextToken().trim();
+ if( path.equals("") ) continue;
+
+ if( ( path.length() > 4 ) &&
+ ( path.endsWith( ".zip" ) || path.endsWith( ".jar" ) ) )
+ jarZipFilesVector.addElement( path );
+ else
+ {
+ String absoluteFileName = path +
+ ( ( fileName.startsWith( fileSeparator ) ||
+ path.endsWith( fileSeparator ) ) ? "" : fileSeparator ) +
+ fileName;
+
+ is = new BufferedInputStream( new FileInputStream(
+ absoluteFileName ) );
+ break;
+ }
+ }
+ catch( Exception e ) { continue; }
+ }
+
+ if( is == null )
+ return findFileInJarZipFiles( fileName, jarZipFilesVector );
+
+ return is;
+ }
+
+ /**
+ * Finds the occurrence of the fileName in the JAR or Zip files
+ * @param fileName the file to find
+ * @param jarFilesVector a vector of JAR/Zip file names
+ * @since 2.0 (Long Beach 2001)
+ */
+ protected InputStream findFileInJarZipFiles( String fileName,
+ Vector jarZipFilesVector )
+ {
+ InputStream is = null;
+
+ for( int i = 0; i < jarZipFilesVector.size(); ++i )
+ {
+ String jarZipFileName = (String)jarZipFilesVector.elementAt( i );
+
+ try
+ {
+ ZipFile zipFile = new ZipFile( jarZipFileName );
+ Enumeration zipEntries = zipFile.entries();
+
+ while( zipEntries.hasMoreElements() )
+ {
+ ZipEntry zipEntry = (ZipEntry)zipEntries.nextElement();
+ String entryName = zipEntry.getName();
+
+ if( entryName.endsWith( fileName ) )
+ {
+ is = new BufferedInputStream( zipFile.
+ getInputStream( zipEntry ) );
+ break;
+ }
+ }
+ }
+ catch( Exception e )
+ {
+ tracer.println( "findInJarZipFiles: Exception.message=" +
+ e.getMessage() );
+ }
+
+ if( is != null ) break;
+ }
+
+ return is;
+ }
+
+ //--------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private Hashtable jposEntries = new Hashtable();
+
+ private InputStream populatorIS = null;
+ private OutputStream populatorOS = null;
+
+ private String populatorFileName = "";
+ private String populatorFileURL = "";
+
+ private String uniqueId = "";
+
+ protected Exception lastLoadException = null;
+
+ private Tracer tracer = TracerFactory.getInstance().
+ createTracer( "AbstractRegPopulator" );
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/SimpleEntry.java b/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/SimpleEntry.java
new file mode 100644
index 0000000..5e308f5
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/SimpleEntry.java
@@ -0,0 +1,606 @@
+package jpos.config.simple;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import jpos.config.JposEntry;
+
+import java.util.*;
+import java.io.Serializable;
+
+import jpos.config.*;
+import jpos.util.JposEntryUtility;
+
+/**
+ * This is a simple implementation of the JposEntry interface using a Hashtable
+ * to collect the properties
+ * @since 0.1 (Philly 99 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class SimpleEntry implements JposEntry, Serializable, Comparable
+{
+ //--------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /**
+ * Default ctor (sets the JposRegPopulator to null)
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public SimpleEntry() { regPopulator = null; }
+
+ /**
+ * One argument ctor taking the JposRegPopulator for this entry
+ * @param populator the JposRegPopulator for this entry
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public SimpleEntry( JposRegPopulator populator ) { regPopulator = populator; }
+
+ /**
+ * One argument ctor taking the JposRegPopulator for this entry
+ * @param logicalName the logical name for this entry
+ * @param populator the JposRegPopulator for this entry
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public SimpleEntry( String logicalName, JposRegPopulator populator )
+ {
+ this( populator );
+
+ addProperty( LOGICAL_NAME_PROP_NAME, logicalName );
+ }
+
+ /**
+ * One argument ctor taking the LogicalName this entry
+ * @param logicalName the logical name string for this entry
+ * @since 2.0.0
+ */
+ SimpleEntry( String logicalName ) { addProperty( LOGICAL_NAME_PROP_NAME, logicalName ); }
+
+ //--------------------------------------------------------------------------
+ // Public instance methods
+ //
+
+ /**
+ * @return count of number of properties
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public int getPropertyCount() { return properties.size(); }
+
+ /**
+ * @return an enumerator for the properties names
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public Enumeration getPropertyNames() { return properties.keys(); }
+
+ /**
+ * @return true if there is a property by the name specified
+ * @param propName the property name String
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public boolean hasPropertyWithName( String propName ) { return properties.containsKey( propName ); }
+
+ /**
+ * @return true if there is a property by the value specified
+ * NOTE: Object.equals method will be used to compare
+ * @param propValue the property's value Object
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public boolean hasPropertyWithValue( Object propValue ) { return properties.contains( propValue ); }
+
+ /**
+ * @return the property's value Object
+ * @param propName the property's propName String
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public Object getPropertyValue( String propName ) { return properties.get( propName ); }
+
+ /**
+ * @return the property's type
+ * @param propName the property's name String
+ * @since 2.0.0
+ */
+ public Class getPropertyType( String propName ) { return getPropertyValue( propName ).getClass(); }
+
+ /**
+ * Modifies the property value of the property passed
+ * @return the oldPropValue or null if this property does not exist
+ * @param propName the property name
+ * @param propValue the new property value
+ * @since 1.3 (Tokyo 2001 meeting)
+ * @throws java.lang.IllegalArgumentException if the propName or propValue is null
+ */
+ public Object modifyPropertyValue( String propName, Object propValue ) throws IllegalArgumentException
+ {
+ checkNull( propName );
+ checkNull( propValue );
+
+ if( hasPropertyWithName( propName ) == false )
+ return null;
+
+ Object oldValue = removeProperty( propName );
+
+ addProperty( propName, propValue );
+
+ return oldValue;
+ }
+
+ /**
+ * Adds a property to the JposEntry object.
+ * NOTE: any property with the same name gets overlaid
+ * @param propName the name of this property (should be unique per property)
+ * @param propValue the properties value Object
+ * @since 0.1 (Philly 99 meeting)
+ * @throws java.lang.IllegalArgumentException if the propName or propValue is null
+ */
+ public Object addProperty( String propName, Object propValue ) throws IllegalArgumentException
+ {
+ checkNull( propName );
+ checkNull( propValue );
+
+ return properties.put( propName, propValue );
+ }
+
+ /**
+ * Looks for a property with name specified and removes it. If none exist then
+ * does nothing and return null
+ * @return the value for the name passed
+ * @param propName the name String of the property to remove
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public Object removeProperty( String propName ) { return properties.remove( propName ); }
+
+ /**
+ * @return true if the two JposEntries have the same properties
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public boolean equals( JposEntry otherEntry )
+ {
+ if( otherEntry == null ) return false;
+
+ if( getPropertyCount() != otherEntry.getPropertyCount() ) return false;
+
+ Enumeration otherPropNames = otherEntry.getPropertyNames();
+
+ while( otherPropNames.hasMoreElements() )
+ {
+ String name = (String)otherPropNames.nextElement();
+ Object value = otherEntry.getPropertyValue( name );
+
+ if( !hasPropertyWithName( name ) ) return false;
+
+ if( !getPropertyValue( name ).equals( value ) ) return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * @return a copy of this JposEntry object
+ * @since 1.3 (Tokyo 2001 meeting)
+ */
+ public JposEntry copy()
+ {
+ JposEntry entryCopy = new SimpleEntry();
+
+ Enumeration entryNames = getPropertyNames();
+
+ while( entryNames.hasMoreElements() )
+ {
+ String propName = (String)entryNames.nextElement();
+ entryCopy.addProperty( propName,getPropertyValue( propName ) );
+ }
+
+ return entryCopy;
+ }
+
+ /**
+ * @return the JposRegPopulator that loads/saves this entry. If null the default
+ * populator is used
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public JposRegPopulator getRegPopulator() { return regPopulator; }
+
+ /**
+ * @return the logical name for this JposEntry. This is a shortcut for easily getting
+ * the logical name vs getting a property and passing the logical name constant
+ * @see jpos.config.JposEntry#getPropertyValue
+ * @see jpos.config.JposEntry#LOGICAL_NAME_PROP_NAME
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public String getLogicalName() { return (String)getPropertyValue( JposEntry.LOGICAL_NAME_PROP_NAME ); }
+
+ /**
+ * @return the JposEntry.Prop with name specified or null if no such property exist
+ * @param propName the property name
+ * @since 2.0.0
+ */
+ public JposEntry.Prop getProp( String propName )
+ {
+ Object propValue = getPropertyValue( propName );
+
+ if( propValue == null ) return null;
+
+ return new Prop( propName, propValue );
+ }
+
+ /**
+ * @return an Iterator over the properties in this JposEntry as JposEntry.Prop objects
+ * @since 1.3 (Washington DC 2001)
+ */
+ public Iterator getProps()
+ {
+ List list = new ArrayList();
+
+ Enumeration names = getPropertyNames();
+
+ while( names.hasMoreElements() )
+ {
+ String name = (String)names.nextElement();
+
+ list.add( new Prop( name, getPropertyValue( name ) ) );
+ }
+
+ return list.iterator();
+ }
+
+ /**
+ * Adds a new property
+ * @param prop the JposEntry.Prop to add
+ * @since 1.3 (Washington DC 2001 meeting)
+ * @throws java.lang.IllegalArgumentException if the argument is null
+ */
+ public void add( JposEntry.Prop prop ) throws IllegalArgumentException
+ {
+ checkNull( prop );
+
+ addProperty( prop.getName(), prop.getValue() );
+ }
+
+ /**
+ * Removes the property
+ * @param prop the JposEntry.Prop to remove
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public void remove( JposEntry.Prop prop ) { removeProperty( prop.getName() ); }
+
+ /**
+ * Modifies the property with name of property passed with the new value if
+ * that property currently exist in the entry otherwise does nothing
+ * @param prop the JposEntry.Prop to modify
+ * @since 2.0.0
+ * @throws java.lang.IllegalArgumentException if the prop is null
+ */
+ public void modify( JposEntry.Prop prop ) throws IllegalArgumentException
+ {
+ checkNull( prop );
+
+ if( hasPropertyWithName( prop.getName() ) == false ) return;
+
+ modifyPropertyValue( prop.getName(), prop.getValue() );
+ }
+
+ /**
+ * @return true if this entry has the property passed
+ * @param prop the JposEntry.Prop to check for
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public boolean hasProp( JposEntry.Prop prop ) { return hasPropertyWithName( prop.getName() ); }
+
+ /**
+ * @return a JposEntry.Prop object created with the <name, value, type> tripplet
+ * passed as arguments
+ * @param propName the property name
+ * @param propValue the property value
+ * @param propType the property type (valid for this value)
+ * @throws jpos.config.JposConfigException if any of the argument is null or the
+ * property value and type mismatch or this is not a valid property type
+ * @see jpos.config.JposEntryConst#PROP_TYPES
+ * @since 2.0.0
+ */
+ public JposEntry.Prop createProp( String propName, Object propValue, Class propType ) throws JposConfigException
+ {
+ if( propName == null || propValue == null || propType == null )
+ throw new JposConfigException( "Cannot create JposEntry.Prop with null argument" );
+
+ if( JposEntryUtility.validatePropValue( propValue, propType ) == false )
+ throw new JposConfigException( "Cannot create JposEntry.Prop with invalid value or type" );
+
+ return new Prop( propName, propValue );
+ }
+
+ //--------------------------------------------------------------------------
+ // Public overidden methods
+ //
+
+ /**
+ * @return true if the two JposEntries have the same properties
+ * @since 1.3 (SF 2K meeting)
+ */
+ public boolean equals( Object object )
+ {
+ if( object instanceof JposEntry )
+ return equals( (JposEntry)object );
+
+ return false;
+ }
+
+ /**
+ * @return 0 if two entries are the same -1 if this is less or 1 of more than other
+ * the comparison for > and < uses the logicalName of the entry to decide
+ * @param otherEntry the other JposEntry
+ */
+ public int compareTo( Object other )
+ {
+ if( other == null || ( (other instanceof JposEntry ) == false ) )
+ throw new RuntimeException( "Cannot compare: " + other + " with JposEntry: " + this );
+
+ JposEntry otherEntry = (JposEntry)other;
+
+ if( equals( otherEntry ) ) return 0;
+
+ return getLogicalName().compareTo( otherEntry.getLogicalName() );
+ }
+
+ /**
+ * @return a String representation of this entry
+ * @since 1.3 (SF 2K meeting)
+ */
+ public String toString()
+ {
+ StringBuffer sb = new StringBuffer();
+
+ sb.append( "<JposEntry logicalName=\"" + getPropertyValue( JposEntry.LOGICAL_NAME_PROP_NAME ) + "\">\n" );
+ sb.append( "\t<creation factoryClass=\"" + getPropertyValue( JposEntry.SI_FACTORY_CLASS_PROP_NAME ) + "\" serviceClass=\"" + getPropertyValue( JposEntry.SERVICE_CLASS_PROP_NAME ) + "\"/>\n" );
+ sb.append( "\t<vendor name=\"" + getPropertyValue( JposEntry.VENDOR_NAME_PROP_NAME ) + "\" url=" + getPropertyValue( JposEntry.VENDOR_URL_PROP_NAME ) + "\"/>\n" );
+ sb.append( "\t<jpos category=\"" + getPropertyValue( JposEntry.DEVICE_CATEGORY_PROP_NAME ) + "\" version=\"" + getPropertyValue( JposEntry.JPOS_VERSION_PROP_NAME ) + "\"/>\n" );
+ sb.append( "\t<product description=\"" + getPropertyValue( JposEntry.PRODUCT_DESCRIPTION_PROP_NAME ) + "\" name=\"" + getPropertyValue( JposEntry.PRODUCT_NAME_PROP_NAME ) + "\" url=\"" + getPropertyValue( JposEntry.PRODUCT_URL_PROP_NAME ) + "\"/>\n" );
+
+ sb.append( "\n" );
+
+ Enumeration otherPropNames = JposEntryUtility.getNonRequiredPropNames( this );
+ while( otherPropNames.hasMoreElements() )
+ {
+ String name = (String)otherPropNames.nextElement();
+ String value = getPropertyValue( name ).toString();
+ String typeClassName = JposEntryUtility.shortClassName( value.getClass() );
+
+ sb.append( "\t<prop name=\"" + name + "\" value=\"" + value +
+ "\" type=\"" + typeClassName +"\"/>\n" );
+ }
+
+ sb.append( "</JposEntry>\n" );
+
+ return sb.toString();
+ }
+
+ //--------------------------------------------------------------------------
+ // Package methods
+ //
+
+ /**
+ * Sets the JposRegPopulator that loads/saves this entry. If null the default
+ * populator is used
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ void setRegPopulator( JposRegPopulator populator ) { regPopulator = populator; }
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /**
+ * Checks that the Object argument is not null and if it is throw a IllegalArgumentException
+ * @param object the Object argument
+ * @throws java.lang.IllegalArgumentException if the object is null
+ */
+ protected static void checkNull( Object object ) throws IllegalArgumentException
+ {
+ if( object == null )
+ throw new IllegalArgumentException( "Invalid null argument passed for a JposEntry property value or name" );
+ }
+
+ //--------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private Hashtable properties = new Hashtable();
+ private transient JposRegPopulator regPopulator = null;
+
+ //-------------------------------------------------------------------------
+ // Inner classes
+ //
+
+ /**
+ * Inner class to represent a property of a JposEntry
+ * @author E. Michael Maximilien
+ * @since 1.3 (Washington DC 2001)
+ */
+ public static class Prop implements JposEntry.Prop, Comparable
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /**
+ * Creates a JposEntry.Prop object
+ * @param name the name of this property
+ * @param value the value of this property
+ * @throws java.lang.IllegalArgumentException if any of the arguments are null
+ */
+ public Prop( String name, Object value ) throws IllegalArgumentException
+ {
+ checkNull( name );
+ checkNull( value );
+
+ this.name = name;
+ this.value = value;
+ this.typeClass = value.getClass();
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the name of this property */
+ public String getName() { return name; }
+
+ /** @return the value of this property (the value is returned as an Object) */
+ public Object getValue() { return value; }
+
+ /** @return the value of this property as a String */
+ public String getValueAsString() { return String.valueOf( value ); }
+
+ /**
+ * Returns the Class object that is the type of this property value
+ * possible values returned are the java.lang wrapper classes for the
+ * primitive types e.g. Integer, Byte, Boolean, ...
+ * @return the type of this property as a java.lang.Class object
+ */
+ public Class getType() { return typeClass; }
+
+ /**
+ * Sets the name of this property
+ * @param s the String object
+ * @throws java.lang.IllegalArgumentException if the argument is null
+ */
+ public void setName( String s ) throws IllegalArgumentException
+ {
+ checkNull( s );
+
+ name = s;
+ }
+
+ /**
+ * Sets the value of this property (String). Also sets its Type.
+ * <p><b>This is the default type of any property</b></p>
+ * @param objValue the object's value
+ * @throws java.lang.IllegalArgumentException if the value is null or
+ * that this is not a valid typed property value
+ */
+ public void setValue( Object objValue ) throws IllegalArgumentException
+ {
+ checkNull( objValue );
+
+ if( JposEntryUtility.validatePropValue( objValue, objValue.getClass() ) == false )
+ throw new IllegalArgumentException( "Cannot set property named = " + getName() +
+ " with value = " + objValue +
+ " invalid value or type" );
+
+ setValue( objValue, objValue.getClass() );
+ }
+
+ /**
+ * @return true if the property is of the type specified by the Class
+ * object passed
+ * @param type the Class object
+ */
+ public boolean isOfType( Class type )
+ {
+ if( type == null || typeClass == null ) return false;
+
+ return typeClass.equals( type );
+ }
+
+ /** @return a new copy of this JposEntry.Prop object */
+ public JposEntry.Prop copy() { return new SimpleEntry.Prop( getName(), getValue() ); }
+
+ //---------------------------------------------------------------------
+ // Public overridden
+ //
+
+ /**
+ * @return true if this and otherProp have same name and value
+ * @param otherProp the other JposEntry.Prop
+ */
+ public boolean equals( Object otherProp )
+ {
+ if( otherProp == null ) return false;
+
+ if( !( otherProp instanceof JposEntry.Prop ) ) return false;
+
+ JposEntry.Prop prop = (JposEntry.Prop)otherProp;
+
+ return ( getName().equals( prop.getName() ) ) &&
+ ( getValue().equals( prop.getValue() ) );
+ }
+
+
+ /**
+ * @return 0 if two entries are the same -1 if this is less or 1 of more than other
+ * the comparison for > and < uses the logicalName of the entry to decide
+ * @param otherEntry the other JposEntry
+ */
+ public int compareTo( Object other )
+ {
+ if( other == null || ( (other instanceof JposEntry.Prop ) == false ) )
+ throw new RuntimeException( "Cannot compare: " + other + " with JposEntry.Prop: " + this );
+
+ JposEntry.Prop otherEntryProp = (JposEntry.Prop)other;
+
+ if( equals( otherEntryProp ) ) return 0;
+
+ return getName().compareTo( otherEntryProp.getName() );
+ }
+
+ /** @return a unique key for this object */
+ public int hashCode() { return getName().hashCode(); }
+
+ //---------------------------------------------------------------------
+ // Private methods
+ //
+
+ /**
+ * Sets the value of this property as an Object that must match the
+ * the type specified. Also sets its Type.
+ * @param object the Object value (must be one of wrapper for primitive types
+ * or java.lang.String)
+ * @param type the java.lang.Class object matching the object type
+ * @throws java.lang.IllegalArgumentException if the object value type does not
+ * match the Class type
+ */
+ private void setValue( Object object, Class type ) throws IllegalArgumentException
+ {
+ checkNull( object );
+ checkNull( type );
+
+ if( !object.getClass().equals( type ) )
+ throw new IllegalArgumentException( "Value and value type not in agreement for property named = " + name );
+
+ value = object;
+ typeClass = type;
+ }
+
+ //---------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private String name = "";
+ private Object value = null;
+ private Class typeClass = null;
+ }
+
+ //--------------------------------------------------------------------------
+ // Public constants
+ //
+
+ /**
+ * serialVersionUID constant to maintain serialization compatibility between releases
+ * @since 1.3 (SF 2K meeting)
+ */
+ public static final long serialVersionUID = 6937048853319310114L;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/SimpleEntryRegistry.java b/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/SimpleEntryRegistry.java
new file mode 100644
index 0000000..8717e85
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/SimpleEntryRegistry.java
@@ -0,0 +1,384 @@
+package jpos.config.simple;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.util.*;
+import java.io.*;
+
+import jpos.config.*;
+
+import jpos.util.tracing.Tracer;
+import jpos.util.tracing.TracerFactory;
+
+/**
+ * This is a simple implementation for the JposEntryRegistry using a Hashtable
+ * to collect the entries. The entry's logicalName property value is used as
+ * the key to the table and the entry itself as the value
+ * @since 0.1 (Philly 99 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class SimpleEntryRegistry extends Object implements JposEntryRegistry
+{
+ /**
+ * Default ctor
+ * @deprecated no longer used, see the 1 argument ctor
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public SimpleEntryRegistry() {}
+
+ /**
+ * One-argument constructor
+ * @param populator the JposRegPopulator used by the registry
+ * @since 1.2 (NY 2K meeting)
+ */
+ public SimpleEntryRegistry( JposRegPopulator populator )
+ { regPopulator = populator; }
+
+ //--------------------------------------------------------------------------
+ // Public methods implementing the JposEntryRegistry interface
+ //
+
+ /**
+ * @return true if there is an JposEntry with the specified logical name
+ * @param logicalName the logical name for the service
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public boolean hasJposEntry( String logicalName )
+ { return jposEntries.containsKey( logicalName ); }
+
+ /**
+ * @return an enumeration of JposEntry objects
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public Enumeration getEntries()
+ {
+ Vector vector = new Vector();
+ Enumeration entries = jposEntries.elements();
+
+ while( entries.hasMoreElements() )
+ vector.addElement( entries.nextElement() );
+
+ return vector.elements();
+ }
+
+ /**
+ * @return the JposEntry for the logicalName specified
+ * @param logicalName the logical name of the JposEntry to find
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public JposEntry getJposEntry( String logicalName )
+ { return (JposEntry)jposEntries.get( logicalName ); }
+
+ /**
+ * Modify the JposEntry with logicalName with the new entry indicated
+ * @param logicalName the JposEntry's logical name
+ * @param newEntry the new JposEntry
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public void modifyJposEntry( String logicalName, JposEntry newEntry )
+ {
+ jposEntries.put( logicalName, newEntry );
+
+ tracer.println( "Modified entry.logicalName = " + logicalName );
+
+ fireJposEntryRegistryEventModified( new JposEntryRegistryEvent(
+ this, newEntry ) );
+ }
+
+ /**
+ * Add an JposEntry for the service with logical name specified
+ * @param logicalName the logicalName of the service
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public void addJposEntry( String logicalName, JposEntry entry )
+ {
+ jposEntries.put( logicalName, entry );
+
+ tracer.println( "Added entry.logicalName = " + logicalName );
+
+ fireJposEntryRegistryEventAdded( new JposEntryRegistryEvent(
+ this, entry ) );
+ }
+
+ /**
+ * Add an JposEntry for the service. The logical name is obtained
+ * from the entry
+ * @param entry the JposEntry to add
+ * @see jpos.config.JposEntry#getLogicalName()
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public void addJposEntry( JposEntry entry )
+ {
+ addJposEntry( entry.getLogicalName(), entry );
+ }
+
+ /**
+ * Removes the specified JposEntry
+ * @param entry the entry to remove
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public void removeJposEntry( JposEntry entry )
+ {
+ Enumeration entries = jposEntries.elements();
+
+ while( entries.hasMoreElements() )
+ {
+ JposEntry jposEntry = (JposEntry)entries.nextElement();
+
+ if( jposEntry.hasPropertyWithName( JposEntry.
+ LOGICAL_NAME_PROP_NAME ) )
+ {
+ JposEntry removedEntry = (JposEntry)jposEntries.
+ remove( entry.getPropertyValue( JposEntry.
+ LOGICAL_NAME_PROP_NAME ) );
+
+ tracer.println( "Removed entry.logicalName = " +
+ entry.getLogicalName() );
+
+ fireJposEntryRegistryEventRemoved( new JposEntryRegistryEvent(
+ this, removedEntry ) );
+
+ return;
+ }
+ }
+
+ tracer.println( "Could not find entry to remove entry.logicalName = " +
+ entry.getLogicalName() );
+ }
+
+ /**
+ * Removes the JposEntry with the logicalName specified
+ * @param logicalName the JposEntry's logical name
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public void removeJposEntry( String logicalName )
+ {
+ JposEntry entry = (JposEntry)jposEntries.get( logicalName );
+
+ if( entry != null )
+ {
+ jposEntries.remove( logicalName );
+
+ fireJposEntryRegistryEventRemoved( new JposEntryRegistryEvent(
+ this, entry ) );
+ }
+ }
+
+ /**
+ * Adds a new JposEntryRegistryListener to the list of listeners
+ * @param l the JposEntryRegistryListener object
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public void addJposEntryRegistryListener( JposEntryRegistryListener l )
+ { listeners.addElement( l ); }
+
+ /**
+ * Removes a new JposEntryRegistryListener to the list of listeners
+ * @param l the JposEntryRegistryListener object
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public void removeJposEntryRegistryListener( JposEntryRegistryListener l )
+ { listeners.removeElement( l ); }
+
+ /**
+ * Tell the JposEntryRegistry to save the current entries
+ * NOTE: the actual implementation will save it in dependent manner
+ * @since 0.1 (Philly 99 meeting)
+ * @throws java.lang.Exception if any error occurs while saving
+ */
+ public void save() throws Exception
+ { getRegPopulator().save( getEntries() ); }
+
+ /**
+ * Tell the JposEntryRegistry to save the current entries to the file
+ * specified. Depending on the current JposEntryPopulator the file might
+ * be an XML or serialized or other file.
+ * @since 2.1.0
+ * @throws java.lang.Exception if any error occurs while saving or if the
+ * current populator does not support saving in a file
+ */
+ public void saveToFile( File file ) throws Exception
+ { getRegPopulator().save( getEntries(), file.getCanonicalPath() ); }
+
+ /**
+ * @return the JposRegPopulator for this registry
+ * @since 1.2 (NY 2K meeting)
+ */
+ public JposRegPopulator getRegPopulator() { return regPopulator; }
+
+ /**
+ * Loads the JposEntryRegistry using the current populator
+ * NOTE: if no entries are found or an error occurs then the
+ * registry is empty
+ * @since 1.2 (NY 2K meeting)
+ */
+ public void load()
+ {
+ getRegPopulator().load();
+ jposEntries.clear();
+
+ Enumeration entries = getRegPopulator().getEntries();
+
+ while( entries.hasMoreElements() )
+ {
+ try
+ {
+ JposEntry jposEntry = (JposEntry)entries.nextElement();
+
+ jposEntries.put( jposEntry.
+ getPropertyValue( JposEntry.
+ LOGICAL_NAME_PROP_NAME ),
+ jposEntry );
+ }
+ catch( Exception e ) { tracer.print( e ); }
+ }
+
+ loaded = true;
+ }
+
+ /**
+ * @return the current size of the registry
+ * @since 1.3 (Tokyo 2001 meeting)
+ */
+ public int getSize() { return jposEntries.size(); }
+
+ /**
+ * @return true if the registry has already been loaded or false otherwise
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public boolean isLoaded() { return loaded; }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /**
+ * @return a String with a list of all logical name of entries in the registry
+ * as well as the registry size and populator name
+ */
+ public String toString()
+ {
+ StringBuffer sb = new StringBuffer();
+
+ sb.append( "<SimpleEntryRegistry>\n" );
+
+ sb.append( "<size=\"" + getSize() + "\"\n/>" );
+ sb.append( "<populatorUniqueId=\"" + getRegPopulator().
+ getUniqueId() + "\"\n/>" );
+ sb.append( "numberOfListeners=\"" + listeners.size() + "\"\n/>" );
+
+ sb.append( "<entries>\n" );
+
+ Enumeration entries = getEntries();
+ int count = 0;
+
+ while( entries.hasMoreElements() )
+ {
+ sb.append( "<entry" + count + ".LogicalName=\"" +
+ ( (JposEntry)entries.nextElement() ).
+ getLogicalName() + "\"\n/>" );
+ count++;
+ }
+
+ sb.append( "</entries>\n" );
+
+ sb.append( "</SimpleEntryRegistry>\n" );
+
+ return sb.toString();
+ }
+
+ //-------------------------------------------------------------------------
+ // Protected methods
+ //
+
+ /**
+ * Fires a new JposEntryRegistry event when a new JposEntry is added
+ * @param e the JposEntryRegistryEvent object to fire
+ * @since 0.1 (Philly 99 meeting)
+ */
+ protected void fireJposEntryRegistryEventAdded( JposEntryRegistryEvent e )
+ {
+ tracer.println( "fireJposEntryRegistryEventAdded: " +
+ "e.getJposEntry().logicalName = " +
+ e.getJposEntry().getLogicalName() );
+
+ Vector listenersClone = (Vector)listeners.clone();
+
+ synchronized( listenersClone )
+ {
+ for( int i = 0; i < listenersClone.size(); ++i )
+ ((JposEntryRegistryListener)listenersClone.elementAt( i ) ).
+ jposEntryAdded( e );
+ }
+ }
+
+ /**
+ * Fires a new JposEntryRegistry event when a new JposEntry is added
+ * @param e the JposEntryRegistryEvent object to fire
+ * @since 0.1 (Philly 99 meeting)
+ */
+ protected void fireJposEntryRegistryEventRemoved( JposEntryRegistryEvent e )
+ {
+ tracer.println( "fireJposEntryRegistryEventRemoved: " +
+ "e.getJposEntry().logicalName = " +
+ e.getJposEntry().getLogicalName() );
+
+ Vector listenersClone = (Vector)listeners.clone();
+
+ synchronized( listenersClone )
+ {
+ for( int i = 0; i < listenersClone.size(); ++i )
+ ((JposEntryRegistryListener)listenersClone.elementAt( i ) ).
+ jposEntryRemoved( e );
+ }
+ }
+
+ /**
+ * Fires a new JposEntryRegistry event when a JposEntry is modified
+ * @param e the JposEntryRegistryEvent object to fire
+ * @since 0.1 (Philly 99 meeting)
+ */
+ protected void fireJposEntryRegistryEventModified( JposEntryRegistryEvent e )
+ {
+ tracer.println( "fireJposEntryRegistryEventModified: " +
+ "e.getJposEntry().logicalName = " +
+ e.getJposEntry().getLogicalName() );
+
+ Vector listenersClone = (Vector)listeners.clone();
+
+ synchronized( listenersClone )
+ {
+ for( int i = 0; i < listenersClone.size(); ++i )
+ ((JposEntryRegistryListener)listenersClone.elementAt( i ) ).
+ jposEntryModified( e );
+ }
+ }
+
+ //--------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ public Hashtable jposEntries = new Hashtable();
+ private Vector listeners = new Vector();
+ private JposRegPopulator regPopulator = null;
+ private boolean loaded = false;
+
+ private Tracer tracer = TracerFactory.getInstance().
+ createTracer( "SimpleEntryRegistry" );
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/SimpleRegPopulator.java b/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/SimpleRegPopulator.java
new file mode 100644
index 0000000..6a1537d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/SimpleRegPopulator.java
@@ -0,0 +1,516 @@
+package jpos.config.simple;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.io.*;
+import java.util.*;
+import java.util.zip.*;
+import java.net.URL;
+
+import jpos.util.tracing.Tracer;
+import jpos.util.tracing.TracerFactory;
+import jpos.config.*;
+import jpos.config.simple.AbstractRegPopulator;
+
+/**
+ * Simple implementation of the JposRegPopulator loading and saving from a
+ * serialized set of entries
+ * <p>
+ * <b>NOTE</b>: this class must define a public no-argument ctor so that it may be created
+ * via reflection when its defined in the jpos.properties as
+ * the jpos.config.regPopulatorClass
+ * </p>
+ * @see jpos.util.JposProperties#JPOS_REG_POPULATOR_CLASS_PROP_NAME
+ * @since 1.2 (NY 2K 99 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class SimpleRegPopulator extends AbstractRegPopulator
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /**
+ * Default ctor
+ * @since 1.2 (NY 2K meeting)
+ */
+ public SimpleRegPopulator()
+ { super( SimpleRegPopulator.class.getName() ); }
+
+ /**
+ * 1-arg ctor that takes the unique ID string
+ * @param s the unique ID string
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public SimpleRegPopulator( String s ) { super( s ); }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /**
+ * @return the fully qualified class name implementing the
+ * JposRegPopulator interface
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public String getClassName()
+ { return SimpleRegPopulator.class.getName(); }
+
+ /**
+ * Tell the populator to save the current entries
+ * @param entries an enumeration of JposEntry objects
+ * @since 1.2 (NY 2K meeting)
+ * @throws java.lang.Exception if any error occurs while saving
+ */
+ public void save( Enumeration entries ) throws Exception
+ {
+ saveJposEntries( entries );
+ }
+
+ /**
+ * Tell the populator to save the current entries in the file specified
+ * @param entries an enumeration of JposEntry objects
+ * @param fileName the file name to save entries
+ * @since 1.3 (SF 2K meeting)
+ * @throws java.lang.Exception if any error occurs while saving
+ */
+ public void save( Enumeration entries, String fileName ) throws Exception
+ {
+ File file = new File( fileName );
+ FileOutputStream fos = new FileOutputStream( file );
+
+ saveJposEntries( entries, fos );
+
+ fos.close();
+ }
+
+ /**
+ * Tell the populator to load the entries
+ * @since 1.2 (NY 2K meeting)
+ */
+ public void load()
+ {
+ getJposEntries().clear();
+ Enumeration entries = readJposEntries();
+
+ while( entries.hasMoreElements() )
+ {
+ try
+ {
+ JposEntry entry = (JposEntry)entries.nextElement();
+ String logicalName = logicalName = (String)entry.
+ getPropertyValue( JposEntry.LOGICAL_NAME_PROP_NAME );
+
+ if( logicalName != null )
+ getJposEntries().put( logicalName, entry );
+
+ lastLoadException = null;
+ }
+ catch( Exception e )
+ {
+ lastLoadException = e;
+ tracer.println( "Error loading serialized JposEntry file: " +
+ "Exception.message= " + e.getMessage() );
+ }
+ }
+ }
+
+ /**
+ * Loads the entries specified in the fileName
+ * @param fileName the entries file name
+ * @since 1.3 (SF 2K meeting)
+ */
+ public void load( String fileName )
+ {
+ try
+ {
+ getJposEntries().clear();
+ Enumeration entries = readJposEntries( new FileInputStream( fileName ) );
+
+ while( entries.hasMoreElements() )
+ {
+ JposEntry entry = (JposEntry)entries.nextElement();
+ String logicalName = (String)entry.
+ getPropertyValue( JposEntry.LOGICAL_NAME_PROP_NAME );
+
+ if( logicalName != null )
+ getJposEntries().put( logicalName, entry );
+ }
+
+ lastLoadException = null;
+ }
+ catch( Exception e )
+ {
+ lastLoadException = e;
+ tracer.println( "Error loading serialized JposEntry file: " +
+ "Exception.message=" + e.getMessage() );
+ }
+ }
+
+ /**
+ * @return the URL pointing to the entries file loaded or saved
+ * @since 1.2 (NY 2K meeting)
+ */
+ public URL getEntriesURL()
+ {
+ URL url = null;
+
+ if( serInZipFile )
+ url = createURLFromFile( zipSerFile );
+ else
+ url = createURLFromFile( serFile );
+
+ return url;
+ }
+
+ /**
+ * @return the name of this populator. This should be a short descriptive name
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public String getName() { return SIMPLE_REG_POPULATOR_NAME_STRING; }
+
+ //--------------------------------------------------------------------------
+ // Protected methods
+ //
+
+ /**
+ * Tries to save the entries as a ZipEntry in the ZipFile
+ * @param entries an Enumeration of JposEntry objects
+ * NOTE: if the the serialized entries is in a Sip/JAR file then if must be an
+ * entry in the "root" of the Sip/JAR file...
+ * Also when saving in a Zip/JAR file could get an error because the Zip/JAR file
+ * is being used by a process in Win32 environment
+ * @since 1.2 (NY 2K meeting)
+ * @throws java.lang.Exception if any problems occurs while saving
+ */
+ protected void saveSerInZipFile( Enumeration entries ) throws Exception
+ {
+ ZipOutputStream zos = new ZipOutputStream( new
+ FileOutputStream( zipSerFile.getName() + ".temp.jar" ) );
+
+ Enumeration zipEntries = zipSerFile.entries();
+
+ while( zipEntries.hasMoreElements() )
+ {
+ ZipEntry zipEntry = (ZipEntry)zipEntries.nextElement();
+
+ zos.putNextEntry( zipEntry );
+
+ if( zipEntry.getName() != serFileName )
+ {
+ InputStream is = zipSerFile.getInputStream( zipEntry );
+
+ while( is.available() > 0 )
+ {
+ byte[] byteArray = new byte[ is.available() ];
+
+ is.read( byteArray );
+
+ zos.write( byteArray );
+ }
+
+ zos.closeEntry();
+ }
+ else
+ {
+ ObjectOutputStream oos = new ObjectOutputStream( new
+ FileOutputStream( TEMP_SER_FILE_NAME ) );
+
+ while( entries.hasMoreElements() )
+ {
+ JposEntry entry = (JposEntry)entries.nextElement();
+
+ oos.writeObject( entry );
+ }
+
+ oos.flush();
+ oos.close();
+
+ FileInputStream fis = new FileInputStream( TEMP_SER_FILE_NAME );
+
+ while( fis.available() > 0 )
+ {
+ byte[] byteArray = new byte[ fis.available() ];
+
+ fis.read( byteArray );
+
+ zos.write( byteArray );
+ }
+
+ zos.closeEntry();
+ }
+ }
+
+ zos.flush();
+ zos.close();
+ }
+
+ /**
+ * Tries to save the entries in the file where they were loaded
+ * @param entries an Enumeration of JposEntry objects
+ * @since 1.2 (NY 2K meeting)
+ * @throws java.lang.Exception if any problems occurs while saving
+ */
+ protected void saveSerFile( Enumeration entries ) throws Exception
+ {
+ saveJposEntries( entries, new FileOutputStream( serFileName ) );
+ }
+
+ /**
+ * Save the JposEntry object to the OutputStream as serialized objects
+ * @param entries an enumeration of JposEntry objects
+ * @param os the OuputStream to save to
+ * @since 1.2 (NY 2K meeting)
+ * @throws java.lang.Exception if any error occurs while saving
+ */
+ protected void saveJposEntries( Enumeration entries, OutputStream os )
+ throws Exception
+ {
+ ObjectOutputStream oos = new ObjectOutputStream( os );
+
+ while( entries.hasMoreElements() )
+ {
+ JposEntry entry = (JposEntry)entries.nextElement();
+
+ oos.writeObject( entry );
+ }
+
+ oos.close();
+ }
+
+ /**
+ * @return an ObjectInputStream of the first serFileName found. The algorithm is:
+ * 1) Goes through the CLASSPATH and get the first serialized file name in the paths in order
+ * 2) If no simple ser file is found then looks in the JAR files in order
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected ObjectInputStream findSerOIS()
+ {
+ Vector classpathJarFiles = new Vector();
+
+ //Try to find the serialized file in the directory of each path in CLASSPATH
+ //As a side effect put each JAR/Zip file in the vector
+ ObjectInputStream ois = findSerOISInClasspath( classpathJarFiles );
+
+ //If no serialized file found in the directories of the path in the CLASSPATH then
+ //try to open each JAR/Zip file and see if they contain a serialized file
+ if( ois == null )
+ ois = findSerOISInJar( classpathJarFiles );
+
+ return ois;
+ }
+
+ /**
+ * Finds the first serialized JposEntry file in directory of each classpath
+ * <b>NOTE:</b>Decorated the FileInputStream with a BufferedInputStream to
+ * improve load time...
+ * @param jarZipFilesVector a vector of JAR/Zip file names
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected ObjectInputStream findSerOISInClasspath( Vector jarZipFilesVector )
+ {
+ ObjectInputStream ois = null;
+
+ String classpath = System.getProperty( "java.class.path" );
+ String pathSeparator = System.getProperty( "path.separator" );
+ String fileSeparator = System.getProperty( "file.separator" );
+
+ String path = "";
+
+ //Searches for the serialized JposEntry file
+ for( StringTokenizer st = new StringTokenizer( classpath, pathSeparator, false );
+ st.hasMoreTokens(); )
+ {
+ try
+ {
+ path = st.nextToken().trim();
+ if( path.equals("") ) continue;
+
+ if( path.length() > 4 && ( path.endsWith( ".zip" ) || path.endsWith( ".jar" ) ) )
+ jarZipFilesVector.addElement( path );
+ else
+ {
+ absoluteFileName = path + fileSeparator + serFileName;
+
+ ois = new ObjectInputStream( new BufferedInputStream( new FileInputStream( absoluteFileName ) ) );
+
+ serFile = new File( absoluteFileName );
+ serInZipFile = false;
+ break;
+ }
+ }
+ catch( Exception e ) { continue; }
+ }
+
+ return ois;
+ }
+
+ /**
+ * Finds the first serialized JposEntry file in the JAR files
+ * @param jarFilesVector a vector of JAR/Zip file names
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected ObjectInputStream findSerOISInJar( Vector jarFilesVector )
+ {
+ ObjectInputStream ois = null;
+
+ for( int i = 0; i < jarFilesVector.size(); ++i )
+ {
+ String jarFileName = (String)jarFilesVector.elementAt( i );
+
+ try
+ {
+ ZipFile zipFile = new ZipFile( jarFileName );
+ Enumeration zipEntries = zipFile.entries();
+
+ while( zipEntries.hasMoreElements() )
+ {
+ ZipEntry zipEntry = (ZipEntry)zipEntries.nextElement();
+ String entryName = zipEntry.getName();
+ if( entryName.endsWith( serFileName ) )
+ {
+ ois = new ObjectInputStream( zipFile.getInputStream( zipEntry ) );
+ zipSerFile = zipFile;
+ serInZipFile = true;
+ break;
+ }
+ }
+ }
+ catch( Exception e ) {}
+
+ if( ois != null ) break;
+ }
+
+ return ois;
+ }
+
+ /**
+ * Searches the current class path for the serialized file and un-serializes the JposEntry objects
+ * @return an Enumeration of JposEntry objects un-serializes from the file specified
+ * @param is the InputStream from which to read the serialized entries from
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected Enumeration readJposEntries( InputStream is )
+ {
+ Vector entries = new Vector();
+
+ try
+ {
+ //Added in 1.3 (SF-2K meeting) (not elegant since need to do
+ //a instanceof operation but works :-)
+ ObjectInputStream in = null;
+
+ if( is instanceof ObjectInputStream )
+ in = (ObjectInputStream)is;
+ else
+ if( is != null )
+ in = new ObjectInputStream( is );
+
+ if( in == null )
+ tracer.println( "Can't find serialized JposEntry file: " +
+ serFileName );
+ else
+ while( true )
+ entries.addElement( in.readObject() );
+
+ serFileName = absoluteFileName;
+ }
+ catch( EOFException eofe ) {}
+ catch( Exception e )
+ { tracer.println( "ERROR while reading serialized JposEntry file: " +
+ serFileName + " Exception.message=" +
+ e.getMessage() ); }
+
+ return entries.elements();
+ }
+
+ /**
+ * @return an Enumeration of JposEntry objects
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected Enumeration readJposEntries()
+ {
+ Enumeration entries = null;
+
+ if( isPopulatorFileDefined() )
+ try { entries = readJposEntries( getPopulatorFileIS() ); }
+ catch( Exception e )
+ { entries = ( new Vector() ).elements(); }
+ else
+ entries = readJposEntries( findSerOIS() );
+
+ return entries;
+ }
+
+ /**
+ *
+ * @param entries an enumeration of JposEntry objects
+ * @since 1.2 (NY 2K meeting)
+ * @throws java.lang.Exception if any error occurs while saving
+ */
+ protected void saveJposEntries( Enumeration entries ) throws Exception
+ {
+ if( isPopulatorFileDefined() )
+ saveJposEntries( entries, getPopulatorFileOS() );
+ else
+ {
+ if( serInZipFile )
+ saveSerInZipFile( entries );
+ else
+ saveSerFile( entries );
+ }
+ }
+
+ //--------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private File serFile = null;
+ private ZipFile zipSerFile = null;
+
+ private boolean serInZipFile = false;
+
+ private String absoluteFileName = "";
+ private String serFileName = DEFAULT_JPOS_SER_FILE_NAME;
+
+ private Tracer tracer = TracerFactory.getInstance().
+ createTracer( "SimpleRegPopulator" );
+
+ //--------------------------------------------------------------------------
+ // Class constants
+ //
+
+ /**
+ * The default serialized JposEntry file name
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static final String DEFAULT_JPOS_SER_FILE_NAME = "jpos.cfg";
+
+ /**
+ * A tempory file name used for temporary storage
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static final String TEMP_SER_FILE_NAME = "__jpos_temp.cfg";
+
+ /**
+ * The default name for the SimpleRegPopulator
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public static final String SIMPLE_REG_POPULATOR_NAME_STRING = "JCL Serialized Entries Populator";
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/xml/AbstractXercesRegPopulator.java b/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/xml/AbstractXercesRegPopulator.java
new file mode 100644
index 0000000..20a8147
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/xml/AbstractXercesRegPopulator.java
@@ -0,0 +1,545 @@
+package jpos.config.simple.xml;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.io.*;
+import java.util.*;
+import java.net.URL;
+import java.text.DateFormat;
+
+import java.io.PrintWriter;
+
+import org.apache.xerces.dom.DOMImplementationImpl;
+import org.apache.xerces.parsers.DOMParser;
+import org.apache.xml.serialize.OutputFormat;
+import org.apache.xml.serialize.XMLSerializer;
+
+import org.w3c.dom.*;
+
+import jpos.config.*;
+import jpos.config.simple.*;
+import jpos.util.*;
+import jpos.util.tracing.Tracer;
+import jpos.util.tracing.TracerFactory;
+
+/**
+ * This class is an abstract super class for all Xerces based parser/reg
+ * populator with functionality to serialize an enumeration of JposEntry
+ * objects into XML
+ * <p>
+ * <b>NOTE</b>: this class must define a public no-argument ctor so that it may be
+ * created via reflection when its defined in the jpos.properties as the
+ * jpos.config.regPopulatorClass
+ * </p>
+ * @see jpos.util.JposProperties#JPOS_REG_POPULATOR_CLASS_PROP_NAME
+ * @since 2.1.0
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public abstract class AbstractXercesRegPopulator
+ extends AbstractRegPopulator
+ implements XmlRegPopulator
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /**
+ * 1-arg constructor that takes the unique ID
+ * @param s the unique ID string
+ * @since 1.3 (Washington DC 2001)
+ */
+ public AbstractXercesRegPopulator( String s ) { super( s ); }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /**
+ * Tell the populator to save the current entries
+ * @param entries an enumeration of JposEntry objects
+ * @since 1.2 (NY 2K meeting)
+ * @throws java.lang.Exception if any error occurs while saving
+ */
+ public void save( Enumeration entries ) throws Exception
+ {
+ if( isPopulatorFileDefined() )
+ convertJposEntriesToXml( entries, getPopulatorFileOS() );
+ else
+ convertJposEntriesToXml( entries,
+ new FileOutputStream( getDefaultXmlFileName() ) );
+ }
+
+ /**
+ * Tell the populator to save the current entries in the file specified
+ * @param entries an enumeration of JposEntry objects
+ * @param xmlFileName the XML file name to save entries
+ * @since 1.3 (SF 2K meeting)
+ * @throws java.lang.Exception if any error occurs while saving
+ */
+ public void save( Enumeration entries, String xmlFileName )
+ throws Exception
+ {
+ File xmlFile = new File( xmlFileName );
+ FileOutputStream fos = new FileOutputStream( xmlFile );
+
+ convertJposEntriesToXml( entries, fos );
+
+ fos.close();
+ }
+
+ /**
+ * @return the URL pointing to the entries file loaded or saved
+ * @since 1.2 (NY 2K meeting)
+ */
+ public URL getEntriesURL()
+ {
+ URL url = null;
+
+ if( getPopulatorFileURL() != null &&
+ !getPopulatorFileURL().equals( "" ) )
+ try
+ { url = new URL( getPopulatorFileURL() ); }
+ catch( Exception e )
+ {
+ tracer.println( "getEntriesURL: Exception.message=" +
+ e.getMessage() );
+ }
+ else
+ url = createURLFromFile( new File( getPopulatorFileName() ) );
+
+ //<temp>
+ tracer.println( "getPopulatorFileURL()=" + getPopulatorFileURL() );
+ tracer.println( "getPopulatorFileName()=" + getPopulatorFileName() );
+ //</temp>
+
+ return url;
+ }
+
+ //--------------------------------------------------------------------------
+ // Protected methods
+ //
+
+ /** @return the Tracer object */
+ protected Tracer getTracer() { return tracer; }
+
+ /**
+ * @return the default XML file name that this populator will save
+ * entries to
+ */
+ protected String getDefaultXmlFileName() { return xmlFileName; }
+
+ /**
+ * Converts an Enumeration of JposEntry objects to XML
+ * @param entries an Enumeration of JposEntry objects
+ * @param os the OutputStream to stream the entries to
+ * @exception java.lang.Exception if something goes wrong serializing
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected void convertJposEntriesToXml( Enumeration entries,
+ OutputStream os )
+ throws Exception
+ {
+ Document document = getParser().getDocument();
+ serializeDocument( document, entries, os );
+ }
+
+ /**
+ * @return the DOM parser object
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected DOMParser getParser() { return domParser; }
+
+ /**
+ * Serializes the JposEntry objects to an XML document and save to OutputStream
+ * @param document the XML document object
+ * @param entries an Enumeration of JposEntry objects
+ * @param os the OuputStream object
+ * @exception java.lang.Exception anything goes wrong while saving
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected void serializeDocument( Document document,
+ Enumeration entries,
+ OutputStream os ) throws Exception
+ {
+ Document newDoc = createEmptyDocument();
+
+ insertJposEntriesInDoc( newDoc, entries );
+
+ insertDateSavedComment( newDoc );
+
+ OutputFormat outFormat = new OutputFormat( "xml", "UTF-8", true );
+
+ outFormat.setStandalone( false );
+ outFormat.setIndenting( true );
+ outFormat.setIndent( 4 );
+ outFormat.setPreserveSpace( true );
+ outFormat.setLineWidth( 0 );
+
+ insertDTDInfo( newDoc, outFormat );
+
+ PrintWriter outWriter = null;
+ try
+ {
+ outWriter = new PrintWriter
+ (new BufferedWriter(new OutputStreamWriter(os, "UTF-8")));
+ }
+ catch( UnsupportedEncodingException ex )
+ {
+ tracer.println( "Error making PrintWriter: " +
+ "UnsupportedEncodingException.message = " +
+ ex.getMessage() );
+ }
+
+ if( outWriter != null )
+ {
+ XMLSerializer xmlSerializer = new XMLSerializer( outWriter, outFormat );
+ xmlSerializer.serialize( newDoc );
+ }
+ }
+
+ /**
+ * @return a String with the document type definition value. For DTD this
+ * would be the DTD relative path/file and for schemas the XSD
+ * relative path/file
+ * @since 2.1.0
+ */
+ protected String getDoctypeValue() { return "jpos/res/jcl.dtd"; }
+
+ /**
+ * Inset DTD information in the XML Document object
+ * @param doc the XML Document object
+ * @param outFormat the OuputFormat object
+ * @exception java.lang.Exception in case something goes wrong
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected void insertDTDInfo( Document doc, OutputFormat outFormat ) throws Exception
+ {
+ String publicId = OutputFormat.whichDoctypePublic( doc );
+ String systemId = OutputFormat.whichDoctypeSystem( doc );
+
+ outFormat.setDoctype( "JposEntries", getDoctypeValue() );
+ }
+
+ /**
+ * @return an empty XML Document object
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected Document createEmptyDocument()
+ {
+ DOMImplementationImpl domImpImpl = (DOMImplementationImpl)
+ DOMImplementationImpl.getDOMImplementation();
+ DocumentType docType = domImpImpl.
+ createDocumentType( "JposEntries",
+ "-//JavaPOS//DTD//EN",
+ getDoctypeValue() );
+
+ Document doc = domImpImpl.createDocument( null, "JposEntries", docType );
+
+ return doc;
+ }
+
+ /**
+ * Inserts date and info saved in the XML Document object
+ * @param document the XML Document object
+ * @exception java.lang.Exception in case something goes wrong
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected void insertDateSavedComment( Document document )
+ throws Exception
+ {
+ String dateString = DateFormat.getInstance().
+ format( new Date( System.currentTimeMillis() ) );
+
+ String commentString =
+ "Saved by JavaPOS jpos.config/loader (JCL) version " +
+ Version.getVersionString() + " on " + dateString;
+
+ Comment comment = document.createComment( commentString );
+
+ document.getDocumentElement().
+ insertBefore( comment, document.getDocumentElement().getFirstChild() );
+
+ document.getDocumentElement().
+ insertBefore( document.createTextNode( "\n" ), comment );
+
+ document.getDocumentElement().
+ appendChild( document.createTextNode( "\n" ) );
+ }
+
+ /**
+ * Appends the <creation> element to the document
+ * @param doc the XML Document object
+ * @param jposEntryElement the <JposEntryElement> XML Element object
+ * @param jposEntry the JposEntry object
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected void appendCreationElement( Document doc,
+ Element jposEntryElement,
+ JposEntry jposEntry )
+ {
+ jposEntryElement.appendChild( doc.createTextNode( " " + " " ) );
+
+ Element creationElement = doc.createElement( "creation" );
+
+ Attr factoryClassAttr = doc.createAttribute( "factoryClass" );
+ Attr serviceClassAttr = doc.createAttribute( "serviceClass" );
+
+ factoryClassAttr.setValue( (String)jposEntry.
+ getPropertyValue( "serviceInstanceFactoryClass" ) );
+
+ serviceClassAttr.setValue( (String)jposEntry.
+ getPropertyValue( "serviceClass" ) );
+
+ creationElement.setAttributeNode( factoryClassAttr );
+ creationElement.setAttributeNode( serviceClassAttr );
+
+ jposEntryElement.appendChild( creationElement );
+ jposEntryElement.appendChild( doc.createTextNode( "\n" ) );
+ }
+
+ /**
+ * Appends the <vendor> element to the document
+ * @param doc the XML Document object
+ * @param jposEntryElement the <JposEntryElement> XML Element object
+ * @param jposEntry the JposEntry object
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected void appendVendorElement( Document doc, Element jposEntryElement,
+ JposEntry jposEntry )
+ {
+ jposEntryElement.appendChild( doc.createTextNode( " " + " " ) );
+
+ Element vendorElement = doc.createElement( "vendor" );
+
+ Attr nameAttr = doc.createAttribute( "name" );
+ Attr urlAttr = doc.createAttribute( "url" );
+
+ nameAttr.setValue( (String)jposEntry.getPropertyValue( "vendorName" ) );
+ urlAttr.setValue( (String)jposEntry.getPropertyValue( "vendorURL" ) );
+
+ vendorElement.setAttributeNode( nameAttr );
+ vendorElement.setAttributeNode( urlAttr );
+
+ jposEntryElement.appendChild( vendorElement );
+ jposEntryElement.appendChild( doc.createTextNode( "\n" ) );
+ }
+
+ /**
+ * Appends the <jpos> element to the document
+ * @param doc the XML Document object
+ * @param jposEntryElement the <JposEntryElement> XML Element object
+ * @param jposEntry the JposEntry object
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected void appendJposElement( Document doc, Element jposEntryElement,
+ JposEntry jposEntry )
+ {
+ jposEntryElement.appendChild( doc.createTextNode( " " + " " ) );
+
+ Element jposElement = doc.createElement( "jpos" );
+
+ Attr versionAttr = doc.createAttribute( "version" );
+ Attr categoryAttr = doc.createAttribute( "category" );
+
+ versionAttr.setValue( (String)jposEntry.
+ getPropertyValue( "jposVersion" ) );
+
+ categoryAttr.setValue( (String)jposEntry.
+ getPropertyValue( "deviceCategory" ) );
+
+ jposElement.setAttributeNode( versionAttr );
+ jposElement.setAttributeNode( categoryAttr );
+
+ jposEntryElement.appendChild( jposElement );
+ jposEntryElement.appendChild( doc.createTextNode( "\n" ) );
+ }
+
+ /**
+ * Appends the <product> element to the document
+ * @param doc the XML Document object
+ * @param jposEntryElement the <JposEntryElement> XML Element object
+ * @param jposEntry the JposEntry object
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected void appendProductElement( Document doc,
+ Element jposEntryElement,
+ JposEntry jposEntry )
+ {
+ jposEntryElement.appendChild( doc.createTextNode( " " + " " ) );
+
+ Element productElement = doc.createElement( "product" );
+
+ Attr nameAttr = doc.createAttribute( "name" );
+ Attr descriptionAttr = doc.createAttribute( "description" );
+ Attr urlAttr = doc.createAttribute( "url" );
+
+ nameAttr.setValue( (String)jposEntry.getPropertyValue( "productName" ) );
+
+ descriptionAttr.
+ setValue( (String)jposEntry.getPropertyValue( "productDescription" ) );
+
+ urlAttr.setValue( (String)jposEntry.getPropertyValue( "productURL" ) );
+
+ productElement.setAttributeNode( nameAttr );
+ productElement.setAttributeNode( descriptionAttr );
+ productElement.setAttributeNode( urlAttr );
+
+ jposEntryElement.appendChild( productElement );
+ jposEntryElement.appendChild( doc.createTextNode( "\n" ) );
+ }
+
+ /**
+ * Appends the <prop> element to the document
+ * @param doc the XML Document object
+ * @param jposEntryElement the <JposEntryElement> XML Element object
+ * @param propName the property name
+ * @param propValue the property value
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected void appendPropElement( Document doc, Element jposEntryElement,
+ String propName, Object propValue )
+ {
+ jposEntryElement.appendChild( doc.createTextNode( " " + " " ) );
+
+ Element propElement = doc.createElement( "prop" );
+
+ Attr nameAttr = doc.createAttribute( "name" );
+ Attr valueAttr = doc.createAttribute( "value" );
+ Attr typeAttr = doc.createAttribute( "type" );
+
+ nameAttr.setValue( propName );
+ valueAttr.setValue( propValue.toString() );
+ typeAttr.setValue( JposEntryUtility.
+ shortClassName( propValue.getClass() ) );
+
+ propElement.setAttributeNode( nameAttr );
+ propElement.setAttributeNode( valueAttr );
+ propElement.setAttributeNode( typeAttr );
+
+ jposEntryElement.appendChild( propElement );
+ jposEntryElement.appendChild( doc.createTextNode( "\n" ) );
+ }
+
+ /**
+ * Appends non-required properties name and value
+ * @param doc the XML Document object
+ * @param jposEntryElement the <JposEntryElement> XML Element object
+ * @param jposEntry the JposEntry object
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected void appendPropElements( Document doc, Element jposEntryElement,
+ JposEntry jposEntry )
+ {
+ jposEntryElement.appendChild( doc.
+ createTextNode( "\n" + " " + " " ) );
+
+ String comment = "Other non JavaPOS required property" +
+ " (mostly vendor properties and bus specific " +
+ "properties i.e. RS232 )";
+
+ jposEntryElement.appendChild( doc.createComment( comment ) );
+
+ jposEntryElement.appendChild( doc.createTextNode( "\n" ) );
+
+ Enumeration props = jposEntry.getPropertyNames();
+
+ while( props.hasMoreElements() )
+ {
+ String propName = (String)props.nextElement();
+
+ if( !JposEntryUtility.isRequiredPropName( propName ) )
+ appendPropElement( doc, jposEntryElement, propName,
+ jposEntry.getPropertyValue( propName ) );
+ }
+ }
+
+ /**
+ * Insert the <JposEntryElement> in the XML document object
+ * @param doc the XML Document object
+ * @param jposEntryElement the <JposEntryElement> XML Element object
+ * @param jposEntry the JposEntry object
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected void insertJposEntryInDoc( Document doc, Element jposEntryElement,
+ JposEntry jposEntry )
+ {
+ appendCreationElement( doc, jposEntryElement, jposEntry );
+ appendVendorElement( doc, jposEntryElement, jposEntry );
+ appendJposElement( doc, jposEntryElement, jposEntry );
+ appendProductElement( doc, jposEntryElement, jposEntry );
+ appendPropElements( doc, jposEntryElement, jposEntry );
+
+ doc.getDocumentElement().
+ appendChild( doc.createTextNode( "\n" + " " ) );
+ doc.getDocumentElement().
+ appendChild( jposEntryElement );
+ doc.getDocumentElement().
+ appendChild( doc.createTextNode( "\n" + " " ) );
+ }
+
+ /**
+ * Insert an Enumeration of <JposEntryElement> objects in the XML document
+ * @param doc the XML Document object
+ * @param entries an Enumeration of JposEntry objects
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected void insertJposEntriesInDoc( Document doc, Enumeration entries )
+ {
+ while( entries.hasMoreElements() )
+ {
+ JposEntry jposEntry = (JposEntry)entries.nextElement();
+
+ if( JposEntryUtility.isValidJposEntry( jposEntry ) )
+ {
+ doc.getDocumentElement().
+ appendChild( doc.createTextNode( "\n" + " " ) );
+
+ Element jposEntryElement = doc.createElement( "JposEntry" );
+
+ Attr logicalNameAttr = doc.createAttribute( "logicalName" );
+ logicalNameAttr.setValue( (String)jposEntry.
+ getPropertyValue( "logicalName" ) );
+
+ jposEntryElement.setAttributeNode( logicalNameAttr );
+
+ jposEntryElement.appendChild( doc.createTextNode( "\n" ) );
+
+ insertJposEntryInDoc( doc, jposEntryElement, jposEntry );
+ }
+ }
+ }
+
+ //--------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ protected String xmlFileName = DEFAULT_XML_FILE_NAME;
+
+ protected DOMParser domParser = new DOMParser();
+
+ private Tracer tracer = TracerFactory.getInstance().
+ createTracer( "AbstractXercesRegPopulator" );
+
+ //--------------------------------------------------------------------------
+ // Public constants
+ //
+
+ public static final String DTD_FILE_PATH = "jpos" + File.separator + "res";
+ public static final String DTD_FILE_NAME = DTD_FILE_PATH + File.separator + "jcl.dtd";
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/xml/SimpleXmlRegPopulator.java b/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/xml/SimpleXmlRegPopulator.java
new file mode 100644
index 0000000..55e6951
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/xml/SimpleXmlRegPopulator.java
@@ -0,0 +1,133 @@
+package jpos.config.simple.xml;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.util.*;
+import java.net.URL;
+
+import jpos.config.simple.AbstractRegPopulator;
+
+/**
+ * Simple implementation of the JposRegPopulator that loads and saves the entries
+ * in XML using the "jpos/res/jcl.dtd" DTD and the XML4J (Xerces) API
+ * <p>
+ * <b>NOTE</b>: this class must define a public no-argument ctor so that it may be created
+ * via reflection when its defined in the jpos.properties as
+ * the jpos.config.regPopulatorClass
+ * </p>
+ * @see jpos.util.JposProperties#JPOS_REG_POPULATOR_CLASS_PROP_NAME
+ * @since 1.2 (NY 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class SimpleXmlRegPopulator extends AbstractRegPopulator
+ implements XmlRegPopulator
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /**
+ * Default ctor
+ * @since 1.2 (NY 2K meeting)
+ */
+ public SimpleXmlRegPopulator()
+ { super( SimpleXmlRegPopulator.class.getName() ); }
+
+ /**
+ * 1-arg constructor that takes the unique ID
+ * @param s the unique ID string
+ * @since 1.3 (Washington DC 2001)
+ */
+ public SimpleXmlRegPopulator( String s ) { super( s ); }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /**
+ * @return the fully qualified class name implementing the JposRegPopulator interface
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public String getClassName() { return SimpleXmlRegPopulator.class.getName(); }
+
+ /**
+ * Tell the populator to save the current entries
+ * @param entries an enumeration of JposEntry objects
+ * @since 1.2 (NY 2K meeting)
+ * @throws java.lang.Exception if any error occurs while saving
+ */
+ public void save( Enumeration entries ) throws Exception
+ { regPopulator.save( entries ); }
+
+ /**
+ * Tell the populator to save the current entries in the file specified
+ * @param entries an enumeration of JposEntry objects
+ * @param fileName the file name to save entries
+ * @since 1.3 (SF 2K meeting)
+ * @throws java.lang.Exception if any error occurs while saving
+ */
+ public void save( Enumeration entries, String fileName ) throws Exception
+ { regPopulator.save( entries, fileName ); }
+
+ /**
+ * Tell the populator to load the entries
+ * @since 1.2 (NY 2K meeting)
+ */
+ public void load() { regPopulator.load(); }
+
+
+ /**
+ * Loads the entries specified in the fileName
+ * @param fileName the entries file name
+ * @since 1.3 (SF 2K meeting)
+ */
+ public void load( String fileName ) { regPopulator.load( fileName ); }
+
+ /**
+ * @return an Enumeration of JposEntry objects
+ * NOTE: need to overridde this method here because need to forward call
+ * to the regPopulator instance
+ * @since 1.2 (NY 2K meeting)
+ */
+ public Enumeration getEntries() { return regPopulator.getEntries(); }
+
+ /**
+ * @return the URL pointing to the entries file loaded or saved
+ * @since 1.2 (NY 2K meeting)
+ */
+ public URL getEntriesURL() { return regPopulator.getEntriesURL(); }
+
+ /**
+ * @return the name of this populator. This should be a short descriptive name
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public String getName() { return regPopulator.getName(); }
+
+ /**
+ * @return the last exception (if any) during the last load or null if no exception occurred
+ * @since 2.0.0
+ */
+ public Exception getLastLoadException() { return regPopulator.getLastLoadException(); }
+
+ //--------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private XmlRegPopulator regPopulator = new XercesRegPopulator();
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/xml/Xerces2RegPopulator.java b/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/xml/Xerces2RegPopulator.java
new file mode 100644
index 0000000..2d26c1b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/xml/Xerces2RegPopulator.java
@@ -0,0 +1,527 @@
+package jpos.config.simple.xml;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.Reader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.parsers.SAXParser;
+import javax.xml.parsers.SAXParserFactory;
+
+import org.xml.sax.Attributes;
+import org.xml.sax.ContentHandler;
+import org.xml.sax.EntityResolver;
+import org.xml.sax.ErrorHandler;
+import org.xml.sax.InputSource;
+import org.xml.sax.SAXException;
+import org.xml.sax.SAXParseException;
+import org.xml.sax.XMLReader;
+import org.xml.sax.helpers.DefaultHandler;
+
+import org.apache.xerces.jaxp.SAXParserFactoryImpl;
+
+import jpos.config.JposEntry;
+import jpos.config.JposConfigException;
+import jpos.config.simple.SimpleEntry;
+import jpos.util.JposEntryUtility;
+import jpos.util.tracing.Tracer;
+import jpos.util.tracing.TracerFactory;
+
+/**
+ * This class implements a SAX parser for the JCL XML DB supporting both:
+ * <ol>
+ * <li>DTD definition: jpos/res/jcl.dtd</li>
+ * <li>XML Schemas: jpos/res/jcl.xsd</li>
+ * </ol>
+ * <p>
+ * <b>NOTE</b>: this class must define a public no-argument ctor so that it may be
+ * created via reflection when its defined in the jpos.properties as the
+ * jpos.config.regPopulatorClass
+ * </p>
+ * @see jpos.util.JposProperties#JPOS_REG_POPULATOR_CLASS_PROP_NAME
+ * @since 2.1.0
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class Xerces2RegPopulator extends AbstractXercesRegPopulator
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /**
+ * Default ctor
+ * @since 1.2 (NY 2K meeting)
+ */
+ public Xerces2RegPopulator()
+ { super( XercesRegPopulator.class.getName() ); }
+
+ /**
+ * 1-arg constructor that takes the unique ID
+ * @param s the unique ID string
+ * @since 2.1.0
+ */
+ public Xerces2RegPopulator( String s ) { super( s ); }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /**
+ * @return the fully qualified class name implementing the
+ * JposRegPopulator interface
+ * @since 2.1.0
+ */
+ public String getClassName()
+ { return Xerces2RegPopulator.class.getName(); }
+
+ /**
+ * Tell the populator to load the entries
+ * @since 2.1.0
+ */
+ public void load()
+ {
+ try
+ {
+ //<temp>NEED TO REPLACE WITH A METHOD THAT FIGURES OUT FILE NAME</temp>
+ //<temp>needed to set file name</temp>
+ InputStream is = getPopulatorFileIS();
+ //<temp/>
+
+ load( getPopulatorFileName() );
+ //<temp/>
+ }
+ catch( Exception e )
+ {
+ tracer.println( "Error while loading populator file Exception.message: " +
+ e.getMessage() );
+ lastLoadException = e;
+ }
+ }
+
+ /**
+ * Loads the entries specified in the xmlFileName
+ * @param xmlFileName the XML file name
+ * @since 2.1.0
+ */
+ public void load( String xmlFileName )
+ {
+ Reader reader = null;
+
+ try
+ {
+ reader = new FileReader( new File( xmlFileName ) );
+ InputSource inputSource = new InputSource( reader );
+
+ XMLReader xmlReader = getSAXParser().getXMLReader();
+
+ initXMLReader( xmlReader );
+
+ xmlReader.setErrorHandler( errorHandler );
+ xmlReader.setContentHandler( contentHandler );
+ xmlReader.setEntityResolver( entityResolver );
+
+ jposEntryList.clear();
+ lastLoadException = null;
+
+ xmlReader.parse( inputSource );
+
+ Iterator entries = jposEntryList.iterator();
+ while( entries.hasNext() )
+ {
+ JposEntry jposEntry = (JposEntry)entries.next();
+ getJposEntries().put( jposEntry.getLogicalName(), jposEntry );
+ }
+ }
+ catch( FileNotFoundException fne )
+ {
+ tracer.println( "Could not find file: " + xmlFileName );
+ lastLoadException = fne;
+ }
+ catch( ParserConfigurationException pce )
+ {
+ tracer.println( "Could not create and configure SAX parser/factory"
+ + pce.getMessage() );
+ lastLoadException = pce;
+ }
+ catch( IOException ioe )
+ {
+ tracer.println( "Error while parsing XML file:IOException.msg=" +
+ ioe.getMessage() );
+ lastLoadException = ioe;
+ }
+ catch( SAXException se )
+ {
+ tracer.println( "Error creating or using the SAXParser:" +
+ "SAXException.message=" + se.getMessage() );
+ lastLoadException = se;
+ }
+ finally
+ {
+ try{ if( reader != null ) reader.close(); }
+ catch( IOException ioe )
+ {
+ tracer.println( "load( " + xmlFileName + ") IOException.msg=" +
+ ioe.getMessage() );
+ }
+ }
+ }
+
+ /**
+ * @return the name of this populator.
+ * This should be a short descriptive name
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public String getName() { return XERCES2_REG_POPULATOR_NAME_STRING; }
+
+ //--------------------------------------------------------------------------
+ // Protected methods
+ //
+
+ /**
+ * @return a SAXParser object creating and initializing SAXParserFactory
+ * and necessary objects if they are not yet created
+ * @since 2.1.0
+ * @throws javax.xml.parsers.ParserConfigurationException if the parser
+ * factory not be properly configured
+ * @throws org.xml.sax.SAXException if the SAXParser could not be created
+ */
+ protected SAXParser getSAXParser() throws ParserConfigurationException,
+ SAXException
+ {
+ if( saxParser == null )
+ {
+ SAXParserFactory factory = new SAXParserFactoryImpl();
+ saxParser = factory.newSAXParser();
+ }
+
+ return saxParser;
+ }
+
+ /**
+ * Initializes XMLReader instance
+ * @param xmlReader the XMLReader instance
+ * @throws org.xml.sax.SAXException
+ */
+ protected void initXMLReader( XMLReader xmlReader ) throws SAXException
+ {
+ xmlReader.setFeature( "http://xml.org/sax/features/namespaces", true );
+ xmlReader.setFeature( "http://xml.org/sax/features/validation", true );
+ }
+
+ //--------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private XMLReader xmlReader = null;
+ private SAXParser saxParser = null;
+
+ private ErrorHandler errorHandler = this.new JposErrorHandler();
+ private ContentHandler contentHandler = this.new JposContentHandler();
+ private EntityResolver entityResolver = this.new JposEntityResolver();
+
+ private List jposEntryList = new LinkedList();
+
+ private Tracer tracer = TracerFactory.getInstance().
+ createTracer( "Xerces2RegPopulator", true );
+
+ //--------------------------------------------------------------------------
+ // Public constants
+ //
+
+ public static final String XERCES2_REG_POPULATOR_NAME_STRING =
+ "JCL XML Entries Populator 2";
+
+ //--------------------------------------------------------------------------
+ // Inner classes
+ //
+
+ /**
+ * SAX XML Handler interface---essentially implements the XML parser/driver
+ * @author E. Michael Maximilien
+ */
+ protected class JposContentHandler extends DefaultHandler
+ implements ContentHandler
+ {
+ //----------------------------------------------------------------------
+ // Public methods
+ //
+
+ public void startDocument() throws SAXException
+ {
+ tracer.println( "<startDocument/>" );
+ }
+
+ public void endDocument() throws SAXException
+ {
+ tracer.println( "<endDocument/>" );
+ }
+
+ public void startElement( String namespaceUri, String localName,
+ String qName, Attributes attributes )
+ throws SAXException
+ {
+ tracer.println( "<startElement qName=\"" + qName + "\"/>" );
+
+ if( qName.equals( "JposEntries" ) )
+ {
+ jposEntryList.clear();
+ currentEntry = null;
+ }
+ else
+ if( qName.equals( "JposEntry" ) )
+ currentEntry = createEntry( attributes );
+ else
+ if( qName.equals( "creation" ) )
+ addCreationProp( currentEntry, attributes );
+ else
+ if( qName.equals( "vendor" ) )
+ addVendorProp( currentEntry, attributes );
+ else
+ if( qName.equals( "jpos" ) )
+ addJposProp( currentEntry, attributes );
+ else
+ if( qName.equals( "product" ) )
+ addProductProp( currentEntry, attributes );
+ else
+ if( qName.equals( "prop" ) )
+ addProp( currentEntry, attributes );
+ else
+ {
+ tracer.println( "Invalid qName=" + qName );
+ throw new SAXException( "Invalid qName=" + qName );
+ }
+
+ }
+
+ public void endElement( String namespaceUri, String localName,
+ String qName ) throws SAXException
+ {
+ tracer.println( "<endElement qName=\"" + qName + "\"/>" );
+
+ if( qName.equals( "JposEntry" ) )
+ jposEntryList.add( currentEntry );
+ }
+
+ //----------------------------------------------------------------------
+ // Protected methods
+ //
+
+ protected JposEntry createEntry( Attributes attributes )
+ throws SAXException
+ {
+ String logicalName = attributes.getValue( "logicalName" );
+
+ return new SimpleEntry( logicalName, Xerces2RegPopulator.this );
+ }
+
+ protected void addCreationProp( JposEntry entry,
+ Attributes attributes )
+ throws SAXException
+ {
+ String factoryClass = attributes.getValue( "factoryClass" );
+ String serviceClass = attributes.getValue( "serviceClass" );
+
+ //TODO: Check values
+
+ currentEntry.addProperty( JposEntry.SI_FACTORY_CLASS_PROP_NAME,
+ factoryClass );
+ currentEntry.addProperty( JposEntry.SERVICE_CLASS_PROP_NAME,
+ serviceClass );
+ }
+
+ protected void addVendorProp( JposEntry entry,
+ Attributes attributes )
+ throws SAXException
+ {
+ String factoryClass = attributes.getValue( "name" );
+ String serviceClass = attributes.getValue( "url" );
+
+ //TODO: Check values
+
+ currentEntry.addProperty( JposEntry.VENDOR_NAME_PROP_NAME,
+ factoryClass );
+
+ currentEntry.addProperty( JposEntry.VENDOR_URL_PROP_NAME,
+ serviceClass );
+ }
+
+ protected void addJposProp( JposEntry entry,
+ Attributes attributes )
+ throws SAXException
+ {
+ String category = attributes.getValue( "category" );
+ String version = attributes.getValue( "version" );
+
+ //TODO: Check values
+
+ currentEntry.addProperty( JposEntry.DEVICE_CATEGORY_PROP_NAME,
+ category );
+
+ currentEntry.addProperty( JposEntry.JPOS_VERSION_PROP_NAME,
+ version );
+ }
+
+ protected void addProductProp( JposEntry entry,
+ Attributes attributes )
+ throws SAXException
+ {
+ String description = attributes.getValue( "description" );
+ String name = attributes.getValue( "name" );
+ String url = attributes.getValue( "url" );
+
+ //TODO: Check values
+
+ currentEntry.addProperty( JposEntry.PRODUCT_DESCRIPTION_PROP_NAME,
+ description );
+
+ currentEntry.addProperty( JposEntry.PRODUCT_NAME_PROP_NAME,
+ name );
+
+ currentEntry.addProperty( JposEntry.PRODUCT_URL_PROP_NAME,
+ url );
+ }
+
+ protected void addProp( JposEntry entry,
+ Attributes attributes )
+ throws SAXException
+ {
+ String name = attributes.getValue( "name" );
+ String valueString = attributes.getValue( "value" );
+ String typeString = attributes.getValue( "type" );
+
+ if( typeString == null || typeString.equals( "" ) )
+ typeString = "String";
+
+ try
+ {
+
+ Class typeClass = JposEntryUtility.
+ propTypeFromString( attributes.getValue( "type" ) );
+
+ Object value = JposEntryUtility.parsePropValue( valueString, typeClass );
+
+ //TODO: Check values
+
+ JposEntry.Prop prop = currentEntry.
+ createProp( name, value, typeClass );
+ currentEntry.add( prop );
+ }
+ catch( JposConfigException jce )
+ {
+ String msg = "Invalid prop: name=" + name + ":value=" +
+ valueString;
+ tracer.println( msg );
+ throw new SAXException( msg );
+ }
+ }
+
+ //----------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private JposEntry currentEntry = null;
+ }
+
+ /**
+ * JposEntityResolver to resolve XML schema
+ * @author E. Michael Maximilien
+ * @version 2.1.0
+ */
+ public class JposEntityResolver implements EntityResolver
+ {
+ /**
+ * @return the XML schema as an InputSource if it is found in a JAR
+ * file in the CLASSPATH otherwise
+ * return null
+ */
+ public InputSource resolveEntity( String publicId, String systemId )
+ {
+ tracer.println( "JposEntityResolver:resolveEntity:publicId=" +
+ publicId );
+
+ tracer.println( "JposEntityResolver:resolveEntity:systemId=" +
+ systemId );
+
+ if( publicId.equals( getDoctypeValue() ) )
+ {
+ InputStream is =
+ getClass().getResourceAsStream( getDoctypeValue() );
+
+ if( is != null )
+ return new InputSource( new InputStreamReader( is ) );
+ }
+
+ return null;
+ }
+ }
+
+ /**
+ * SAX XML Handler interface
+ * @author E. Michael Maximilien
+ */
+ protected class JposErrorHandler extends Object implements ErrorHandler
+ {
+ //----------------------------------------------------------------------
+ // Private/protected methods
+ //
+
+ private String createMessage( String header, SAXParseException spe )
+ {
+ return header + "parsing XML file:SAXParseException.message = " +
+ spe.getMessage();
+ }
+
+ //----------------------------------------------------------------------
+ // Public methods
+ //
+
+ public void error( SAXParseException spe ) throws SAXException
+ {
+ String message = createMessage( "JposErrorHandler:Error:", spe );
+ tracer.print( message );
+
+ throw new SAXException( message );
+ }
+
+ public void fatalError( SAXParseException spe ) throws SAXException
+ {
+ String message = createMessage( "JposErrorHandler:FatalError:", spe );
+ tracer.print( message );
+
+ throw new SAXException( message );
+ }
+
+ public void warning( SAXParseException spe ) throws SAXException
+ {
+ String message = createMessage( "JposErrorHandler:Warning:", spe );
+ tracer.print( message );
+
+ throw new SAXException( message );
+ }
+ }
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/xml/XercesRegPopulator.java b/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/xml/XercesRegPopulator.java
new file mode 100644
index 0000000..1a4d588
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/xml/XercesRegPopulator.java
@@ -0,0 +1,464 @@
+package jpos.config.simple.xml;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.io.*;
+import java.util.*;
+
+import java.io.FileInputStream;
+
+import org.w3c.dom.*;
+
+import org.xml.sax.InputSource;
+
+import jpos.config.*;
+import jpos.config.simple.*;
+import jpos.util.*;
+import jpos.util.tracing.Tracer;
+import jpos.util.tracing.TracerFactory;
+
+/**
+ * Simple implementation of the JposRegPopulator that loads and saves
+ * the entries in XML using the "jpos/res/jcl.dtd" DTD and the XML4J
+ * (Xerces) API
+ * NOTE: this class must define a public no-argument ctor so that it may be
+ * created via reflection when its defined in the jpos.properties as
+ * the jpos.config.regPopulatorClass
+ * @see jpos.util.JposProperties#JPOS_REG_POPULATOR_CLASS_PROP_NAME
+ * @since 1.2 (NY 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class XercesRegPopulator extends AbstractXercesRegPopulator
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /**
+ * Default ctor
+ * @since 1.2 (NY 2K meeting)
+ */
+ public XercesRegPopulator()
+ { super( XercesRegPopulator.class.getName() ); }
+
+ /**
+ * 1-arg constructor that takes the unique ID
+ * @param s the unique ID string
+ * @since 1.3 (Washington DC 2001)
+ */
+ public XercesRegPopulator( String s ) { super( s ); }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /**
+ * @return the fully qualified class name implementing the
+ * JposRegPopulator interface
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public String getClassName()
+ { return XercesRegPopulator.class.getName(); }
+
+ /**
+ * Tell the populator to load the entries
+ * @since 1.2 (NY 2K meeting)
+ */
+ public void load()
+ {
+ tracer.println( "load(): isPopulatorFileDefined=" +
+ isPopulatorFileDefined() );
+
+ if( isPopulatorFileDefined() == false )
+ {
+ getJposEntries().clear();
+ xmlFileName = DEFAULT_XML_FILE_NAME;
+ load( xmlFileName );
+
+ return;
+ }
+
+ try
+ {
+ getJposEntries().clear();
+
+ domParser.setEntityResolver(new XercesRegPopulator.JPOSDTDEntityResolver());
+
+ domParser.parse( new InputSource( getPopulatorFileIS() ) );
+
+ Document document = domParser.getDocument();
+
+ Enumeration entries = extractJposEntries( document );
+
+ while( entries.hasMoreElements() )
+ {
+ JposEntry jposEntry = (JposEntry)entries.nextElement();
+
+ if( jposEntry.hasPropertyWithName( JposEntry.
+ LOGICAL_NAME_PROP_NAME ) )
+ getJposEntries().put( jposEntry.getLogicalName(),
+ jposEntry );
+ }
+
+ lastLoadException = null;
+ }
+ catch( Exception e )
+ {
+ lastLoadException = e;
+ tracer.println( "Error loading XML file. Exception.msg = " +
+ e.getMessage() );
+ }
+ finally
+ { }
+ }
+
+ /**
+ * Loads the entries specified in the xmlFileName
+ * @param xmlFileName the XML file name
+ * @since 1.3 (SF 2K meeting)
+ */
+ public void load( String xmlFileName )
+ {
+ tracer.println( "load: xmlFileName=" + xmlFileName );
+
+ InputStream is = null;
+ File xmlFile = new File( xmlFileName );
+
+ try
+ {
+ if( xmlFile.exists() )
+ is = new FileInputStream( xmlFile );
+ else
+ is = findFileInClasspath( xmlFileName );
+
+ if (is == null)
+ {
+ is = getClass().getClassLoader().getResourceAsStream(xmlFileName);
+ }
+
+ if( is == null )
+ {
+ getJposEntries().clear();
+
+ tracer.println( "Could not find file: " + xmlFileName +
+ " in path or CLASSPATH" );
+
+ lastLoadException = new FileNotFoundException( xmlFileName );
+
+ return;
+ }
+
+ lastLoadException = null;
+ }
+ catch( Exception e )
+ {
+ lastLoadException = e;
+ tracer.println( "Error loading XML file. Exception.message = " +
+ e.getMessage() );
+ }
+
+ try
+ {
+ getJposEntries().clear();
+
+ domParser.setEntityResolver(new XercesRegPopulator.JPOSDTDEntityResolver());
+
+ domParser.parse( new InputSource( is ) );
+
+ Document document = domParser.getDocument();
+
+ Enumeration entries = extractJposEntries( document );
+
+ while( entries.hasMoreElements() )
+ {
+ JposEntry jposEntry = (JposEntry)entries.nextElement();
+
+ if( jposEntry.hasPropertyWithName( JposEntry.
+ LOGICAL_NAME_PROP_NAME ) )
+ getJposEntries().put( jposEntry.getLogicalName(),
+ jposEntry );
+ }
+
+ lastLoadException = null;
+
+ }
+ catch( Exception e )
+ {
+ lastLoadException = e;
+ tracer.println( "Error loading XML file. Exception.message = " +
+ e.getMessage() );
+ }
+ finally
+ { }
+ }
+
+ /**
+ * @return the name of this populator. This should be a short descriptive name
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public String getName() { return XERCES_REG_POPULATOR_NAME_STRING; }
+
+ //--------------------------------------------------------------------------
+ // Protected methods
+ //
+
+ /**
+ * @return an enumeration of JposEntry objects read from the XML document object
+ * @param document the XML document object
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected Enumeration extractJposEntries( Document document )
+ {
+ Vector entries = new Vector();
+
+ NodeList nodeList = document.getElementsByTagName( "JposEntry" );
+
+ String currentEntryLogicalName = "";
+
+ try
+ {
+ for( int i = 0; i < nodeList.getLength(); ++i )
+ {
+ Node node = nodeList.item( i );
+
+ if( node.getNodeType() != Node.ELEMENT_NODE )
+ continue;
+
+ JposEntry jposEntry = new SimpleEntry();
+
+ Element jposEntryElement = (Element)node;
+
+ currentEntryLogicalName = jposEntryElement.
+ getAttribute( "logicalName" );
+ jposEntry.addProperty( "logicalName", currentEntryLogicalName );
+
+ NodeList childList = nodeList.item( i ).getChildNodes();
+
+ for( int j = 0; j < childList.getLength(); ++j )
+ {
+ Node child = childList.item( j );
+
+ if( child.getNodeType() != Node.ELEMENT_NODE )
+ continue;
+
+ Element element = (Element)child;
+
+ String elementName = element.getNodeName();
+
+ if( elementName.equals( "creation" ) )
+ extractCreationAttr( jposEntry, element );
+ else
+ if( elementName.equals( "vendor" ) )
+ extractVendorAttr( jposEntry, element );
+ else
+ if( elementName.equals( "jpos" ) )
+ extractJposAttr( jposEntry, element );
+ else
+ if( elementName.equals( "product" ) )
+ extractProductAttr( jposEntry, element );
+ else
+ extractPropAttr( jposEntry, element );
+ }
+
+ if( JposEntryUtility.isValidJposEntry( jposEntry ) )
+ entries.addElement( jposEntry );
+ else
+ {
+ String msg = "JposEntry with logicalName: " +
+ currentEntryLogicalName +
+ " is not valid (missing required properties)";
+ throw new JposConfigException( msg );
+ }
+ }
+ }
+ catch( JposConfigException jce )
+ {
+ tracer.println( "Skipping invalid entry with logicalName: " +
+ currentEntryLogicalName );
+ tracer.println( "--->JposConfigException.message = " +
+ jce.getMessage() );
+
+ tracer.print( jce );
+
+ if( jce.getOrigException() != null )
+ tracer.print( jce.getOrigException() );
+ }
+
+ return entries.elements();
+ }
+
+ /**
+ * Get the <creation> element attributes and adds corresponding
+ * properties to JposEntry
+ * @param jposEntry the entry to add properties to
+ * @param element the <creation> XML element
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected void extractCreationAttr( JposEntry jposEntry, Element element )
+ {
+ jposEntry.addProperty( "serviceInstanceFactoryClass",
+ element.getAttribute( "factoryClass" ) );
+
+ jposEntry.addProperty( "serviceClass",
+ element.getAttribute( "serviceClass" ) );
+ }
+
+ /**
+ * Get the <vendor> element attributes and adds corresponding
+ * properties to JposEntry
+ * @param jposEntry the entry to add properties to
+ * @param element the <vendor> XML element
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected void extractVendorAttr( JposEntry jposEntry, Element element )
+ {
+ jposEntry.addProperty( "vendorName", element.getAttribute( "name" ) );
+ jposEntry.addProperty( "vendorURL", element.getAttribute( "url" ) );
+ }
+
+ /**
+ * Get the <jpos> element attributes and adds corresponding properties
+ * to JposEntry
+ * @param jposEntry the entry to add properties to
+ * @param element the <jpos> XML element
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected void extractJposAttr( JposEntry jposEntry, Element element )
+ {
+ jposEntry.addProperty( "jposVersion",
+ element.getAttribute( "version" ) );
+
+ jposEntry.addProperty( "deviceCategory",
+ element.getAttribute( "category" ) );
+ }
+
+ /**
+ * Get the <product> element attributes and adds corresponding
+ * properties to JposEntry
+ * @param jposEntry the entry to add properties to
+ * @param element the <product> XML element
+ * @since 1.2 (NY 2K meeting)
+ */
+ protected void extractProductAttr( JposEntry jposEntry, Element element )
+ {
+ jposEntry.addProperty( "productName", element.getAttribute( "name" ) );
+
+ jposEntry.addProperty( "productDescription",
+ element.getAttribute( "description" ) );
+
+ jposEntry.addProperty( "productURL", element.getAttribute( "url" ) );
+ }
+
+ /**
+ * Get the <prop> element attributes and adds corresponding properties
+ * to JposEntry
+ * @param jposEntry the entry to add properties to
+ * @param element the <prop> XML element
+ * @since 1.2 (NY 2K meeting)
+ * @throws jpos.config.JposConfigException if the property value does
+ * not match the type or is not a valid value (like for instance
+ * an invalid number)
+ */
+ protected void extractPropAttr( JposEntry jposEntry, Element element )
+ throws JposConfigException
+ {
+ String propName = element.getAttribute( "name" );
+ String propValueString = element.getAttribute( "value" );
+ String propTypeString = element.getAttribute( "type" );
+
+ if( propTypeString.equals( "" ) ) propTypeString = "String";
+
+ Object propValue = null;
+ Class propType = null;
+
+ try
+ {
+ propType = Class.forName( ( propTypeString.
+ startsWith( "java.lang." ) ?
+ propTypeString :
+ "java.lang." + propTypeString ) );
+ }
+ catch( ClassNotFoundException cnfe )
+ {
+ throw new JposConfigException( "Invalid property type: " +
+ propTypeString +
+ " for property named: " +
+ propName , cnfe );
+ }
+
+ if( JposEntryUtility.isValidPropType( propType ) == false )
+ throw new JposConfigException( "Invalid property type: " +
+ propTypeString +
+ " for property named: " +
+ propName );
+
+ propValue = JposEntryUtility.
+ parsePropValue( propValueString, propType );
+
+ if( JposEntryUtility.validatePropValue( propValue, propType ) == false )
+ throw new JposConfigException( "Invalid property type: " +
+ propTypeString +
+ " for property named: " +
+ propName );
+
+ jposEntry.add( jposEntry.createProp( propName, propValue, propType ) );
+ }
+
+ /**
+ * JposDTDEntityResolver to resolve DTD
+ */
+ public class JPOSDTDEntityResolver implements org.xml.sax.EntityResolver
+ {
+ /**
+ * @return the DTD as an InputSource if it is found in a JAR
+ * file in the CLASSPATH otherwise return null
+ */
+ public org.xml.sax.InputSource resolveEntity(String publicId, String systemId) throws org.xml.sax.SAXException, java.io.IOException
+ {
+ if (publicId.equals("-//JavaPOS//DTD//EN"))
+ {
+ InputStream is = getClass().getResourceAsStream( DTD_JAR_FILE_NAME );
+
+ if (is != null)
+ {
+ return (new org.xml.sax.InputSource(new InputStreamReader(is)));
+ }
+ }
+
+ return null;
+ }
+
+ }
+
+ //--------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private Tracer tracer = TracerFactory.getInstance().
+ createTracer( "XercesRegPopulator" );
+
+ //--------------------------------------------------------------------------
+ // Public constants
+ //
+
+ public static final String DTD_JAR_FILE_NAME = "/jpos/res/jcl.dtd";
+
+ public static final String XERCES_REG_POPULATOR_NAME_STRING =
+ "JCL XML Entries Populator";
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/xml/XmlRegPopulator.java b/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/xml/XmlRegPopulator.java
new file mode 100644
index 0000000..ee3af98
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/config/simple/xml/XmlRegPopulator.java
@@ -0,0 +1,40 @@
+package jpos.config.simple.xml;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import jpos.config.JposRegPopulator;
+
+/**
+ * Defines an interface to load, save JposEntries
+ * @since 1.2 (NY 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface XmlRegPopulator extends JposRegPopulator
+{
+ //-------------------------------------------------------------------------
+ // Class constants
+ //
+
+ /**
+ * Default name to save entries if the XML populator is chosen but
+ * no populator file is specified
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static final String DEFAULT_XML_FILE_NAME = "jpos.xml";
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/epson/EpsonLineDisplayConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/epson/EpsonLineDisplayConst.java
new file mode 100644
index 0000000..c79f06f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/epson/EpsonLineDisplayConst.java
@@ -0,0 +1,48 @@
+package jpos.epson;
+
+public abstract interface EpsonLineDisplayConst {
+ // Field descriptor #4 I
+ public static final int DISP_DI_OUTPUT = 100;
+
+ // Field descriptor #4 I
+ public static final int DISP_DI_GRAPHIC = 101;
+
+ // Field descriptor #4 I
+ public static final int DISP_DI_SETLINESPACE = 102;
+
+ // Field descriptor #4 I
+ public static final int DISP_DI_SETFONT = 103;
+
+ // Field descriptor #4 I
+ public static final int DISP_DI_GETMODE = 104;
+
+ // Field descriptor #4 I
+ public static final int DISP_DI_GW_STYLE = 105;
+
+ // Field descriptor #4 I
+ public static final int DISP_DI_MODE_CHARACTER = 0;
+
+ // Field descriptor #4 I
+ public static final int DISP_DI_MODE_GRAPHICS = 1;
+
+ // Field descriptor #4 I
+ public static final int DISP_DI_FONT_A = 0;
+
+ // Field descriptor #4 I
+ public static final int DISP_DI_FONT_B = 1;
+
+ // Field descriptor #4 I
+ public static final int DISP_DI_GW_NORMAL = 0;
+
+ // Field descriptor #4 I
+ public static final int DISP_DI_GW_TRANSPARENT = 1;
+
+ // Field descriptor #4 I
+ public static final int DISP_DI_DUMMY = 0;
+
+ // Field descriptor #4 I
+ public static final int UPOS_EDISP_TOOMANYDEFGLYPH = 3001;
+
+ // Field descriptor #4 I
+ public static final int UPOS_EDISP_TOOMANYWINDOW = 3002;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/epson/EpsonPOSPrinterConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/epson/EpsonPOSPrinterConst.java
new file mode 100644
index 0000000..df2d17f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/epson/EpsonPOSPrinterConst.java
@@ -0,0 +1,392 @@
+package jpos.epson;
+
+public abstract interface EpsonPOSPrinterConst {
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_GET_SUPPORT_FUNCTION = 1;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_BINARY_CONVERSION = 2;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_CODE128_TYPE = 3;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_OUTPUT_NORMAL = 100;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_OUTPUT_REALTIME = 101;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_PANEL_SWITCH = 110;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_RECOVER_ERROR = 120;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_HARDWARE_RESET = 121;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_PRINT_FLASH_BITMAP = 200;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_PRINT_FLASH_BITMAP2 = 201;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_DELETE_NVIMAGE = 210;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_SELECT_SLIP = 300;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_SLIP_EMPHASIS = 310;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_LABEL_SET_PRINT_MODE = 400;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_LABEL_SET_COUNT_MODE = 401;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_LABEL_PRINT_COUNT = 402;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_LABEL_SET_COUNT_VALUE = 403;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_DELAYED_CUT = 500;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_CUT_AND_FEED_TOF = 501;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_RING_BUZZER = 600;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_GET_BATTERY_STATUS = 610;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_SELECT_PAGE_MODE = 700;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_SET_PAPERLAYOUT = 710;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_GET_PAPERLAYOUT = 711;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_OPERATION_MODE = 750;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_RING_BUZZER_WITH_TIME = 800;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_SET_BITMAP_PRINTING_TYPE = 1500;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_SOUND_MELODY = 1200;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_SET_SLIP_ROTATE_FONT_TYPE = 1700;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_PRINT_FRANKING = 1800;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_GET_OFFLINE_CONDITION = 1900;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_SELECT_SLIP_PAPER_TYPE = 2000;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_DUMMY = 0;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_VALIDATION = 1;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_EMPHASIS = 2;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_LABEL = 4;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_BLACK_MARK = 8;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_GB18030 = 16;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_PEELER = 32;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_BATTERY = 64;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_SOUTHASIA = 128;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_BC_NONE = 0;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_BC_NIBBLE = 1;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_BC_DECIMAL = 2;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_CODE_A = 0;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_CODE_B = 1;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_CODE_C = 2;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_DELETE_ALL = -1;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_SLIP_FULLSLIP = 0;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_SLIP_VALIDATION = 1;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_DISABLE_EMPHASIS = 0;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_ENABLE_EMPHASIS = 1;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_LABEL_RIGHT_SPACE = 0;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_LABEL_RIGHT_ZERO = 1;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_LABEL_LEFT_SPACE = 2;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_POWERED_BY_AC = 256;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_POWERED_BY_BATTERY = 512;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_BATTERY_FULL = 16;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_BATTERY_NEAR_MIDDLE = 128;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_BATTERY_MIDDLE = 8;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_BATTERY_NEAR_LOW = 64;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_BATTERY_LOW = 32;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_BATTERY_NEAR_EMPTY = 4;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_BATTERY_CLOSE_EMPTY = 2;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_BATTERY_REMOVED = 1;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_NORMAL_DOT_PAGE_MODE = 0;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_HALF_DOT_PAGE_MODE = 1;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_BITMAP_PRINTING_NORMAL = 0;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_BITMAP_PRINTING_MULTI_TONE = 1;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_SOUND_PATTERN_1 = 1;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_SOUND_PATTERN_2 = 2;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_SOUND_PATTERN_3 = 3;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_SOUND_PATTERN_4 = 4;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_SOUND_PATTERN_5 = 5;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_SOUND_PATTERN_ERROR = 100;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_SOUND_PATTERN_NOPAPER = 101;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_ROTATE_FONT_A = 0;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_ROTATE_FONT_B = 1;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_CONDITION_ONLINE = 0;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_CONDITION_RECEIPT_ONLY_OFFLINE = 1;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_CONDITION_SLIP_ONLY_OFFLINE = 2;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_CONDITION_OFFLINE_EXECUTE = 3;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_CONDITION_RECOVERBLE = 4;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_CONDITION_UNRECOVERBLE = 5;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_SLIP_PAPER_NORMAL = 1;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_SLIP_PAPER_COPY = 2;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_OPERATION_MODE_SERIAL = 0;
+
+ // Field descriptor #4 I
+ public static final int PTR_DI_OPERATION_MODE_PEEL_OFF = 1;
+
+ // Field descriptor #4 I
+ public static final int PTR_DIE_RESPONSE = 0;
+
+ // Field descriptor #4 I
+ public static final int PTR_DIE_SET_BITMAP_MODE = 110;
+
+ // Field descriptor #4 I
+ public static final int PTR_DIE_BUTTON_OPERATION = 210;
+
+ // Field descriptor #4 I
+ public static final int PTR_DIE_LABEL_REMOVAL = 211;
+
+ // Field descriptor #4 I
+ public static final int PTR_DIE_LABEL_REMOVE_OK = 212;
+
+ // Field descriptor #4 I
+ public static final int PTR_DIE_LABEL_JAM = 213;
+
+ // Field descriptor #4 I
+ public static final int PTR_DIE_MEMORY = 1;
+
+ // Field descriptor #4 I
+ public static final int PTR_DIE_VRAM = 2;
+
+ // Field descriptor #4 I
+ public static final int PTR_DIE_NVRAM = 3;
+
+ // Field descriptor #4 I
+ public static final int PTR_SUE_POWERED_BY_AC = 100001;
+
+ // Field descriptor #4 I
+ public static final int PTR_SUE_POWERED_BY_BATTERY = 100002;
+
+ // Field descriptor #4 I
+ public static final int PTR_SUE_BATTERY_FULL = 100003;
+
+ // Field descriptor #4 I
+ public static final int PTR_SUE_BATTERY_NEAR_MIDDLE = 100009;
+
+ // Field descriptor #4 I
+ public static final int PTR_SUE_BATTERY_MIDDLE = 100004;
+
+ // Field descriptor #4 I
+ public static final int PTR_SUE_BATTERY_NEAR_LOW = 100010;
+
+ // Field descriptor #4 I
+ public static final int PTR_SUE_BATTERY_LOW = 100011;
+
+ // Field descriptor #4 I
+ public static final int PTR_SUE_BATTERY_NEAR_EMPTY = 100005;
+
+ // Field descriptor #4 I
+ public static final int PTR_SUE_BATTERY_CLOSE_EMPTY = 100006;
+
+ // Field descriptor #4 I
+ public static final int PTR_SUE_BATTERY_OK = 100007;
+
+ // Field descriptor #4 I
+ public static final int PTR_SUE_BATTERY_REMOVED = 100008;
+
+ // Field descriptor #4 I
+ public static final int UPOS_EPTR_UNRECOVERABLE = 5001;
+
+ // Field descriptor #4 I
+ public static final int UPOS_EPTR_CUTTER = 5002;
+
+ // Field descriptor #4 I
+ public static final int UPOS_EPTR_MECHANICAL = 5003;
+
+ // Field descriptor #4 I
+ public static final int UPOS_EPTR_AUTOMATICAL = 5004;
+
+ // Field descriptor #4 I
+ public static final int UPOS_EPTR_LABEL_JAM = 5005;
+
+ // Field descriptor #4 I
+ public static final int UPOS_EPTR_LABEL_REMOVAL = 5006;
+
+ // Field descriptor #4 I
+ public static final int UPOS_EPTR_BUTTON_OPERATION = 5007;
+
+ // Field descriptor #4 I
+ public static final int UPOS_EPTR_POWER_OFF = 5008;
+
+ // Field descriptor #4 I
+ public static final int UPOS_EPTR_RESTART = 5009;
+
+ // Field descriptor #4 I
+ public static final int UPOS_EPTR_INITIALIZING = 5010;
+
+ // Field descriptor #4 I
+ public static final int UPOS_EPTR_CLEAR = 5011;
+
+ // Field descriptor #4 I
+ public static final int UPOS_EPTR_REMOVE_BUTTON = 5012;
+
+ // Field descriptor #4 I
+ public static final int UPOS_EPTR_FIRMWARE_UPDATING = 5013;
+
+ // Field descriptor #4 I
+ public static final int UPOS_EPTR_FIRMWARE_PROCESS = 5014;
+
+ // Field descriptor #4 I
+ public static final int PTR_BARCODE_TYPE_NONE = 0;
+
+ // Field descriptor #4 I
+ public static final int PTR_BARCODE_TYPE_1D = 1;
+
+ // Field descriptor #4 I
+ public static final int PTR_BARCODE_TYPE_2D = 2;
+
+ // Field descriptor #4 I
+ public static final int PTR_BARCODE_TYPE_TEXT = 3;
+
+ // Field descriptor #4 I
+ public static final int PTR_BARCODE_TYPE_COMPOSIT = 4;
+
+ // Field descriptor #4 I
+ public static final int PTR_BARCODE_TYPE_OTHER = 5;
+
+ // Field descriptor #4 I
+ public static final int PTR_BARCODE_TYPE_UNKNOWN = 99;
+
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/events/DataEvent.java b/org.eclipse.osbp.fork.jpos/src/jpos/events/DataEvent.java
new file mode 100644
index 0000000..e25efb1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/events/DataEvent.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// DataEvent
+//
+// Class defining the Data Event generated by JavaPOS device
+// controls.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.events;
+
+public class DataEvent extends JposEvent
+{
+ public DataEvent(Object source, int status)
+ {
+ super(source);
+
+ this.status = status;
+ }
+
+ public int getStatus()
+ {
+ return status;
+ }
+
+ protected int status;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/events/DataListener.java b/org.eclipse.osbp.fork.jpos/src/jpos/events/DataListener.java
new file mode 100644
index 0000000..989687f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/events/DataListener.java
@@ -0,0 +1,26 @@
+/////////////////////////////////////////////////////////////////////
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// DataListener
+//
+// Interface to implement to support JavaPOS Data Events.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.events;
+
+public interface DataListener extends java.util.EventListener
+{
+ public void dataOccurred(DataEvent e);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/events/DirectIOEvent.java b/org.eclipse.osbp.fork.jpos/src/jpos/events/DirectIOEvent.java
new file mode 100644
index 0000000..122017f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/events/DirectIOEvent.java
@@ -0,0 +1,64 @@
+/////////////////////////////////////////////////////////////////////
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// DirectIOEvent
+//
+// Class defining the DirectIO Event generated by JavaPOS device
+// controls.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.events;
+
+public class DirectIOEvent extends JposEvent
+{
+ public DirectIOEvent(Object source, int eventNumber, int data,
+ Object object)
+ {
+ super(source);
+
+ this.eventNumber = eventNumber;
+ this.data = data;
+ this.object = object;
+ }
+
+ public int getEventNumber()
+ {
+ return eventNumber;
+ }
+
+ public int getData()
+ {
+ return data;
+ }
+
+ public void setData(int data)
+ {
+ this.data = data;
+ }
+
+ public Object getObject()
+ {
+ return object;
+ }
+
+ public void setObject(Object object)
+ {
+ this.object = object;
+ }
+
+ protected int eventNumber;
+ protected int data;
+ protected Object object;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/events/DirectIOListener.java b/org.eclipse.osbp.fork.jpos/src/jpos/events/DirectIOListener.java
new file mode 100644
index 0000000..a9caa69
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/events/DirectIOListener.java
@@ -0,0 +1,26 @@
+/////////////////////////////////////////////////////////////////////
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// DirectIOListener
+//
+// Interface to implement to support JavaPOS DirectIO Events.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.events;
+
+public interface DirectIOListener extends java.util.EventListener
+{
+ public void directIOOccurred(DirectIOEvent e);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/events/ErrorEvent.java b/org.eclipse.osbp.fork.jpos/src/jpos/events/ErrorEvent.java
new file mode 100644
index 0000000..4fe143b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/events/ErrorEvent.java
@@ -0,0 +1,66 @@
+/////////////////////////////////////////////////////////////////////
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// ErrorEvent
+//
+// Class defining the Error Event generated by JavaPOS device
+// controls.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.events;
+
+public class ErrorEvent extends JposEvent
+{
+ public ErrorEvent(Object source, int errorCode, int errorCodeExtended,
+ int errorLocus, int errorResponse)
+ {
+ super(source);
+
+ this.errorCode = errorCode;
+ this.errorCodeExtended = errorCodeExtended;
+ this.errorLocus = errorLocus;
+ this.errorResponse = errorResponse;
+ }
+
+ public int getErrorCode()
+ {
+ return errorCode;
+ }
+
+ public int getErrorCodeExtended()
+ {
+ return errorCodeExtended;
+ }
+
+ public int getErrorLocus()
+ {
+ return errorLocus;
+ }
+
+ public int getErrorResponse()
+ {
+ return errorResponse;
+ }
+
+ public void setErrorResponse(int errorResponse)
+ {
+ this.errorResponse = errorResponse;
+ }
+
+ protected int errorCode;
+ protected int errorCodeExtended;
+ protected int errorLocus;
+ protected int errorResponse;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/events/ErrorListener.java b/org.eclipse.osbp.fork.jpos/src/jpos/events/ErrorListener.java
new file mode 100644
index 0000000..fb26261
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/events/ErrorListener.java
@@ -0,0 +1,26 @@
+/////////////////////////////////////////////////////////////////////
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// ErrorListener
+//
+// Interface to implement to support JavaPOS Error Events.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.events;
+
+public interface ErrorListener extends java.util.EventListener
+{
+ public void errorOccurred(ErrorEvent e);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/events/JposEvent.java b/org.eclipse.osbp.fork.jpos/src/jpos/events/JposEvent.java
new file mode 100644
index 0000000..0f9ac9b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/events/JposEvent.java
@@ -0,0 +1,57 @@
+/////////////////////////////////////////////////////////////////////
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// JposEvent
+//
+// Base class for all events generated by JavaPOS device controls.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+// 98-11-02 Added getSequenceNumber() method. BS
+// 99-10-04 Added initialization of when field. BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.events;
+
+public abstract class JposEvent extends java.util.EventObject
+{
+ public JposEvent(Object source)
+ {
+ super(source);
+ updateSequenceNumber();
+ when = System.currentTimeMillis();
+ }
+
+ public synchronized final void updateSequenceNumber()
+ {
+ sequenceNumber = incrSequenceNumber();
+ }
+
+ public static final synchronized long incrSequenceNumber()
+ {
+ return ++globalSequenceNumber;
+ }
+
+ public final long getSequenceNumber()
+ {
+ return sequenceNumber;
+ }
+
+ public long getWhen()
+ {
+ return when;
+ }
+
+ protected long sequenceNumber;
+ private static long globalSequenceNumber = 0;
+ private long when;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/events/OutputCompleteEvent.java b/org.eclipse.osbp.fork.jpos/src/jpos/events/OutputCompleteEvent.java
new file mode 100644
index 0000000..ec4c13e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/events/OutputCompleteEvent.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// OutputCompleteEvent
+//
+// Class defining the Output Complete Event generated by JavaPOS
+// device controls.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.events;
+
+public class OutputCompleteEvent extends JposEvent
+{
+ public OutputCompleteEvent(Object source, int outputID)
+ {
+ super(source);
+
+ this.outputID = outputID;
+ }
+
+ public int getOutputID()
+ {
+ return(outputID);
+ }
+
+ protected int outputID;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/events/OutputCompleteListener.java b/org.eclipse.osbp.fork.jpos/src/jpos/events/OutputCompleteListener.java
new file mode 100644
index 0000000..687fbcb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/events/OutputCompleteListener.java
@@ -0,0 +1,27 @@
+/////////////////////////////////////////////////////////////////////
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// OutputCompleteListener
+//
+// Interface to implement to support JavaPOS Output Complete
+// Events.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.events;
+
+public interface OutputCompleteListener extends java.util.EventListener
+{
+ public void outputCompleteOccurred(OutputCompleteEvent e);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/events/StatusUpdateEvent.java b/org.eclipse.osbp.fork.jpos/src/jpos/events/StatusUpdateEvent.java
new file mode 100644
index 0000000..4504854
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/events/StatusUpdateEvent.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// StatusUpdateEvent
+//
+// Class defining the Status Update Event generated by JavaPOS
+// device controls.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.events;
+
+public class StatusUpdateEvent extends JposEvent
+{
+ public StatusUpdateEvent(Object source, int status)
+ {
+ super(source);
+
+ this.status = status;
+ }
+
+ public int getStatus()
+ {
+ return status;
+ }
+
+ protected int status;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/events/StatusUpdateListener.java b/org.eclipse.osbp.fork.jpos/src/jpos/events/StatusUpdateListener.java
new file mode 100644
index 0000000..f2bcf34
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/events/StatusUpdateListener.java
@@ -0,0 +1,26 @@
+/////////////////////////////////////////////////////////////////////
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// StatusUpdateListener
+//
+// Interface to implement to support JavaPOS Status Update Events.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.events;
+
+public interface StatusUpdateListener extends java.util.EventListener
+{
+ public void statusUpdateOccurred(StatusUpdateEvent e);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/events/TransitionEvent.java b/org.eclipse.osbp.fork.jpos/src/jpos/events/TransitionEvent.java
new file mode 100644
index 0000000..11f6439
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/events/TransitionEvent.java
@@ -0,0 +1,66 @@
+/////////////////////////////////////////////////////////////////////
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// TransitionEvent
+//
+// Class defining the Transition Event generated by the JavaPOS
+// Electronic Value RW control.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.events;
+
+public class TransitionEvent extends JposEvent
+{
+ public TransitionEvent(Object source,
+ int eventNumber,
+ int data,
+ String string)
+ {
+ super(source);
+
+ this.eventNumber = eventNumber;
+ this.data = data;
+ this.string = string;
+ }
+
+ public int getEventNumber()
+ {
+ return eventNumber;
+ }
+
+ public int getData()
+ {
+ return data;
+ }
+
+ public void setData(int data)
+ {
+ this.data = data;
+ }
+
+ public String getString()
+ {
+ return string;
+ }
+
+ public void setString(String string)
+ {
+ this.string = string;
+ }
+
+ protected int eventNumber;
+ protected int data;
+ protected String string;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/events/TransitionListener.java b/org.eclipse.osbp.fork.jpos/src/jpos/events/TransitionListener.java
new file mode 100644
index 0000000..4eb53f2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/events/TransitionListener.java
@@ -0,0 +1,26 @@
+/////////////////////////////////////////////////////////////////////
+//
+// THIS SOFTWARE IS PROVIDED AS IS. THE JAVAPOS WORKING GROUP MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
+// NON-INFRINGEMENT. INDIVIDUAL OR CORPORATE MEMBERS OF THE JAVAPOS
+// WORKING GROUP SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED AS A RESULT
+// OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.
+//
+// TransitionListener
+//
+// Interface to implement to support JavaPOS Transition Events.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.events;
+
+public interface TransitionListener extends java.util.EventListener
+{
+ public void transitionOccurred(TransitionEvent e);
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/loader/JposLoaderException.java b/org.eclipse.osbp.fork.jpos/src/jpos/loader/JposLoaderException.java
new file mode 100644
index 0000000..8a1dc30
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/loader/JposLoaderException.java
@@ -0,0 +1,54 @@
+package jpos.loader;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import jpos.JposException;
+
+/**
+ * Defines an Exception class for JCL loader related classes/interfaces and
+ * implementing classes
+ * @since 2.0.0
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class JposLoaderException extends JposException
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /**
+ * Creates a JposLoaderException with the description passed
+ * @param description the description String
+ */
+ public JposLoaderException( String description )
+ {
+ super( 0, description );
+ }
+
+ /**
+ * Creates a JposLoaderException with the description passed and
+ * the original exception that caused this one
+ * @param description the description String
+ * @param origException the exception that originally caused this one
+ */
+ public JposLoaderException( String description, Exception origException )
+ {
+ super( 0, description, origException );
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/loader/JposServiceBinder.java b/org.eclipse.osbp.fork.jpos/src/jpos/loader/JposServiceBinder.java
new file mode 100644
index 0000000..dddff06
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/loader/JposServiceBinder.java
@@ -0,0 +1,84 @@
+/*
+ *
+ * Copyright (c) 2011 - 2016 - Loetz GmbH & Co KG, 69115 Heidelberg, Germany
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Initial contribution:
+ * Loetz GmbH & Co. KG
+ *
+ */
+package jpos.loader;
+
+import java.util.Hashtable;
+
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Reference;
+import org.osgi.service.component.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.ReferencePolicy;
+import org.slf4j.Logger;
+
+/**
+ * The JposServiceBinder to concrete vendor implementations.
+ * Please provide a vendor specific implementation of interface {@link JposServiceInstanceFactory}.
+ * Simply create a plug-in bundle containing all vendor jars in a folder,
+ * export all necessary packages and supply a component description in the OSGI-INF folder that
+ * provides the service of interface {@link JposServiceInstanceFactory}.
+ * For Epson the component xml looks like this:
+ * <?xml version="1.0" encoding="UTF-8"?>
+ * <scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0" name="jp.co.epson.uposcommon.creator.EpsonJposServiceInstanceFactory">
+ * <implementation class="jp.co.epson.uposcommon.creator.EpsonJposServiceInstanceFactory"/>
+ * <service>
+ * <provide interface="jpos.loader.JposServiceInstanceFactory"/>
+ * </service>
+ * </scr:component>
+ */
+@Component
+public class JposServiceBinder {
+
+ /** The log. */
+ private static Logger log = org.slf4j.LoggerFactory
+ .getLogger(jpos.loader.JposServiceBinder.class);
+
+ /** The si instance factory map. */
+ private static Hashtable<String, JposServiceInstanceFactory> siFactoryTable = new Hashtable<>();
+
+ /**
+ * Bind factory service.
+ *
+ * @param siInstanceFactory
+ * the serviceInstanceFactory
+ */
+ @Reference(cardinality = ReferenceCardinality.MULTIPLE, policy = ReferencePolicy.DYNAMIC)
+ public synchronized void bindFactoryService(final JposServiceInstanceFactory siInstanceFactory) {
+ JposServiceBinder.siFactoryTable.put(siInstanceFactory.getClass().getCanonicalName(), siInstanceFactory);
+ log.debug("Jpos ServiceInstanceFactory "+siInstanceFactory.getClass().getCanonicalName()+" added");
+ }
+
+ /**
+ * Unbind factory service.
+ *
+ * @param siInstanceFactory
+ * the serviceInstanceFactory
+ */
+ public synchronized void unbindFactoryService(
+ final JposServiceInstanceFactory siInstanceFactory) {
+ if(JposServiceBinder.siFactoryTable.contains(siInstanceFactory)) {
+ JposServiceBinder.siFactoryTable.remove(siInstanceFactory.getClass().getCanonicalName());
+ }
+ log.debug("Jpos ServiceInstanceFactory "+siInstanceFactory.getClass().getCanonicalName()+" removed");
+ }
+
+ /**
+ * Gets the serviceInstanceFactory.
+ *
+ * @return serviceInstanceFactory
+ */
+ public static Hashtable<String, JposServiceInstanceFactory> getSiFactoryTable() {
+ return JposServiceBinder.siFactoryTable;
+ }
+
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/loader/JposServiceConnection.java b/org.eclipse.osbp.fork.jpos/src/jpos/loader/JposServiceConnection.java
new file mode 100644
index 0000000..3e6d4bd
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/loader/JposServiceConnection.java
@@ -0,0 +1,56 @@
+package jpos.loader;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import jpos.JposException;
+
+/**
+ * Interface defining a JposServiceConnection. Used to connect, disconnect
+ * and access a JavaPOS service
+ * @since 0.1 (Philly 99 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface JposServiceConnection
+{
+ /**
+ * @return the JposService associated with this connection
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public JposServiceInstance getService();
+
+ /**
+ * @return the logical name of the JposService associated with this connection
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public String getLogicalName();
+
+ /**
+ * Tries to make the connection with the associated JposService
+ * @since 0.1 (Philly 99 meeting)
+ * @throws jpos.JposException if any errors occurs with trying to make this connection
+ */
+ public void connect() throws JposException;
+
+ /**
+ * Tries to end the connection with the associated service
+ * @since 0.1 (Philly 99 meeting)
+ * @throws jpos.JposException if any errors occurs with trying to end this connection
+ */
+ public void disconnect() throws JposException;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/loader/JposServiceInstance.java b/org.eclipse.osbp.fork.jpos/src/jpos/loader/JposServiceInstance.java
new file mode 100644
index 0000000..1254ad9
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/loader/JposServiceInstance.java
@@ -0,0 +1,39 @@
+package jpos.loader;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import jpos.JposException;
+
+/**
+ * All services must implement this interface (it is also extended
+ * by the jpos.services.BaseService interface which must be implemented
+ * by all JavaPOS services). The one method define in this interface
+ * is used to indicate to the service that its connection has been dropped
+ * @since 0.1 (Philly 99 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface JposServiceInstance
+{
+ /**
+ * Indicate the ServiceInstance that its connection has been dropped
+ * @since 0.1 (Philly 99 meeting)
+ * @throws jpos.JposException if any error occurs
+ */
+ public void deleteInstance() throws JposException;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/loader/JposServiceInstanceFactory.java b/org.eclipse.osbp.fork.jpos/src/jpos/loader/JposServiceInstanceFactory.java
new file mode 100644
index 0000000..81997fb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/loader/JposServiceInstanceFactory.java
@@ -0,0 +1,43 @@
+package jpos.loader;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import jpos.JposException;
+import jpos.config.JposEntry;
+
+/**
+ * Defines the ServiceInstanceFactory. Service providers must provide
+ * a class that implements this interface and that has a default ctor.
+ * The jpos.config implementation will use reflection to create an
+ * instance of that class as the factory class and call its createInstance
+ * method to create the services
+ * @since 0.1 (Philly 99 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface JposServiceInstanceFactory
+{
+ /**
+ * @return a JposServiceInstance using the logicalName and the entry provided
+ * @param logicalName the logicalName for the service
+ * @param entry the JposEntry instance containing info necessary for creating the service
+ * @since 0.1 (Philly 99 meeting)
+ * @throws jpos.JposException if any error occurs
+ */
+ public JposServiceInstance createInstance( String logicalName, JposEntry entry ) throws JposException;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/loader/JposServiceLoader.java b/org.eclipse.osbp.fork.jpos/src/jpos/loader/JposServiceLoader.java
new file mode 100644
index 0000000..a40649f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/loader/JposServiceLoader.java
@@ -0,0 +1,163 @@
+package jpos.loader;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import jpos.JposConst;
+import jpos.JposException;
+
+import jpos.util.*;
+import jpos.util.tracing.Tracer;
+import jpos.util.tracing.TracerFactory;
+
+import java.lang.reflect.*;
+
+/**
+ * The JavaPOS JposServiceLoader class. It creates an instance of the
+ * installed JposServiceFactory or default to the SimpleServiceFactory
+ * and is used by the controls to create JposServiceConnection object
+ * that are used to bind the controls to the actual loaded services.
+ * Modification history
+ * @since 0.1 (Philly 99 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public final class JposServiceLoader extends Object
+{
+ //--------------------------------------------------------------------------
+ // Class variables
+ //
+
+ private static Tracer tracer = TracerFactory.getInstance().
+ createTracer( "JposServiceLoader" );
+
+ private static JposServiceManager manager = null;
+
+ /**
+ * Static initializer.
+ * Creates the manager by getting the property
+ * JPOS_SERVICE_MANAGER_CLASS_PROP_NAME. If this property is not defined
+ * then defaults to the SimpleServiceManager
+ * NOTE: since the JposServiceManager interface was moved to the
+ * jpos.loader package then we define 2 property to specify the custom
+ * serviceManager one with the previous jpos.config prefix and the other
+ * with the correct jpos.loader prefix
+ * @see jpos.util.JposProperties#JPOS_SERVICE_MANAGER_CLASS_PROP_NAME
+ * @see jpos.util.JposProperties#JPOS_SERVICE_MANAGER_CLASS_PROP_NAME2
+ * @since 0.1 (Philly 99 meeting)
+ * @see jpos.loader.simple.SimpleServiceManager
+ */
+ static
+ {
+ JposProperties jposProperties = new DefaultProperties();
+ jposProperties.loadJposProperties();
+
+ boolean customManagerDefined = false;
+ String customManagerClassName = "";
+
+ if( jposProperties.isPropertyDefined( JposProperties.
+ JPOS_SERVICE_MANAGER_CLASS_PROP_NAME ) )
+ {
+ customManagerDefined = true;
+ customManagerClassName = jposProperties.
+ getPropertyString( JposProperties.
+ JPOS_SERVICE_MANAGER_CLASS_PROP_NAME );
+ }
+ else
+ if( jposProperties.isPropertyDefined( JposProperties.
+ JPOS_SERVICE_MANAGER_CLASS_PROP_NAME2 ) )
+ {
+ customManagerDefined = true;
+ customManagerClassName =
+ jposProperties.
+ getPropertyString( JposProperties.
+ JPOS_SERVICE_MANAGER_CLASS_PROP_NAME2 );
+ }
+
+ if( customManagerDefined )
+ {
+ tracer.println( "Custom manager is defined: className= " +
+ customManagerClassName );
+
+ try
+ {
+ Class managerClass = Class.forName( customManagerClassName );
+
+ Class arg1Class = Class.forName( "jpos.util.JposProperties" );
+ Class[] argsClass = { arg1Class };
+
+ Constructor oneArgCtor = managerClass.
+ getConstructor( argsClass );
+
+ Object[] args = { jposProperties };
+
+ manager = (JposServiceManager)oneArgCtor.newInstance( args );
+ }
+ catch( Exception e )
+ {
+ tracer.println( "Error creating instance of specified " +
+ "jpos.config.serviceManagerClass class: " +
+ customManagerClassName );
+
+ tracer.println( "Using default manager class: " +
+ "jpos.loader.simple.SimpleServiceManager" );
+
+ manager = new jpos.loader.simple.
+ SimpleServiceManager( jposProperties );
+ }
+ }
+ else
+ manager = new jpos.loader.simple.
+ SimpleServiceManager( jposProperties );
+
+ manager.getEntryRegistry().load();
+
+ tracer.println( "manager.getEntryRegistry().load() OK" );
+ }
+
+ /**
+ * @return a service connection for the logicalName specified
+ * @param logicalName the logical name of the service to find
+ * @throws jpos.JposException if any error occurs
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public static JposServiceConnection findService( String logicalName )
+ throws JposException
+ {
+ if( manager == null )
+ {
+ String msg = "Did not find a valid " +
+ JposProperties.JPOS_SERVICE_MANAGER_CLASS_PROP_NAME +
+ " to create";
+
+ tracer.println( msg );
+
+ throw new JposException( JposConst.JPOS_E_NOSERVICE, msg );
+ }
+
+ tracer.println( "findService: " + logicalName );
+
+ return manager.createConnection( logicalName );
+ }
+
+ /**
+ * @return the JposServiceManager associated with the
+ * running of the JposServiceLoader
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public static JposServiceManager getManager() { return manager; }
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/loader/JposServiceManager.java b/org.eclipse.osbp.fork.jpos/src/jpos/loader/JposServiceManager.java
new file mode 100644
index 0000000..6473e51
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/loader/JposServiceManager.java
@@ -0,0 +1,93 @@
+package jpos.loader;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import jpos.JposException;
+
+import jpos.util.JposProperties;
+import jpos.config.JposEntryRegistry;
+import jpos.config.JposRegPopulator;
+import jpos.profile.Profile;
+import jpos.profile.ProfileRegistry;
+import jpos.profile.ProfileException;
+
+/**
+ * An implementation of the jpos.config must provide an implementation of
+ * this interface which is used to create the JposServiceConnection objects.
+ * This also provides a way to access the JposEntryPopulator to allow for
+ * dynamic updates of the currently configured JposEntry objects.
+ * @since 0.1 (Philly 99 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface JposServiceManager
+{
+ /**
+ * @return a JposServiceConnection for the service with the logical name specified
+ * This should use the populator to see if there exist any entry with the logical
+ * name provided, get the entry and create the JposServiceConnection
+ * @since 0.1 (Philly 99 meeting)
+ * @throws jpos.JposException if an error occurs while creating this connection
+ */
+ public JposServiceConnection createConnection( String logicalName ) throws JposException;
+
+ /**
+ * @return the JposEntryRegistry object that this factory uses to allow entries to be
+ * querried and added dynamically
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public JposEntryRegistry getEntryRegistry();
+
+ /**
+ * @return the JposProperties object containing access to all Jpos properties
+ * @since 1.2 (NY 2K meeting)
+ */
+ public JposProperties getProperties();
+
+ /**
+ * @return the JposRegPopulator object used to populate the registry
+ * @since 1.2 (NY 2K meeting)
+ */
+ public JposRegPopulator getRegPopulator();
+
+ /**
+ * @return the ProfileRegistry currently loaded
+ * @since 1.3 (SF 2K meeting)
+ */
+ public ProfileRegistry getProfileRegistry();
+
+ /**
+ * Tries to load the Profile by specified in the file. If successful returns
+ * it and adds it to the ProfileRegistry otherwise throw exception
+ * @return the profile specified in the XML profile file after loading it
+ * @param xmlProfileFileName the file name for the XML profile
+ * @exception jpos.profile.ProfileException if the profile could not be loaded from file
+ * @since 1.3 (SF 2K meeting)
+ */
+ public Profile loadProfile( String xmlProfileFileName ) throws ProfileException;
+
+ /**
+ * Ask the manager to reload the registry by reloading the properties file
+ * creating a new registry and repopulating the registry. Also creates sets
+ * the JposRegPopulator for the registry as a side-effect
+ * NOTE: this method should only be used if at runtime the properties and/or
+ * populator files have changed
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public void reloadEntryRegistry();
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/loader/Version.java b/org.eclipse.osbp.fork.jpos/src/jpos/loader/Version.java
new file mode 100644
index 0000000..90d86c5
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/loader/Version.java
@@ -0,0 +1,50 @@
+package jpos.loader;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Simple Version class indicating that prints out the curent version of the JCL
+ * @since 1.2 (NY 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public final class Version extends Object
+{
+ /**
+ * Main entry point for the Version application
+ * @param args a String[] of arguments
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static void main( String[] args )
+ {
+ System.out.println( "JavaPOS jpos.config/loader (JCL) version " +
+ JCL_VERSION_STRING );
+ }
+
+ /**
+ * @return a String of the version number of the JCL
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static String getVersionString() { return JCL_VERSION_STRING; }
+
+ //--------------------------------------------------------------------------
+ // Class variables
+ //
+
+ private static final String JCL_VERSION_STRING = "2.2.0";
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/loader/simple/SimpleServiceConnection.java b/org.eclipse.osbp.fork.jpos/src/jpos/loader/simple/SimpleServiceConnection.java
new file mode 100644
index 0000000..ba14b06
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/loader/simple/SimpleServiceConnection.java
@@ -0,0 +1,148 @@
+package jpos.loader.simple;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.util.*;
+import java.lang.reflect.*;
+
+import jpos.Activator;
+import jpos.JposConst;
+import jpos.JposException;
+import jpos.loader.*;
+import jpos.config.*;
+import jpos.util.tracing.Tracer;
+import jpos.util.tracing.TracerFactory;
+
+/**
+ * This is a simple implementation of the JposServiceConnection interface
+ * @since 0.1 (Philly 99 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class SimpleServiceConnection extends Object
+ implements JposServiceConnection
+{
+ /**
+ * Creates a new SimpleServiceConnection by passing the logicalName,
+ * the associated JposEntry and JposServiceInstanceFactory
+ * @param logicalName the logicalName for this connection
+ * @param entry the JposEntry matching this logicalName
+ * @param siFactoryClassName the class name implememting the
+ * JposServiceInstanceFactory interface
+ * @since 0.1 (Philly 99 meeting)
+ */
+ SimpleServiceConnection( String logicalName, JposEntry entry,
+ String siFactoryClassName )
+ {
+ this.logicalName = logicalName;
+ this.entry = entry;
+ this.siFactoryClassName = siFactoryClassName;
+ }
+
+ /**
+ * @return the JposServiceInstance for this connection (it's null
+ * util a succesful connection)
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public JposServiceInstance getService() { return service; }
+
+ /**
+ * @return the logicalName of the JposServiceInstance of this connection
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public String getLogicalName() { return logicalName; }
+
+ /**
+ * Connects this service by trying to create the JposServiceInstance
+ * @since 0.1 (Philly 99 meeting)
+ * @throws jpos.JposException if the service throws a exception while
+ * disconnecting
+ */
+ public void connect() throws JposException
+ {
+ try
+ {
+ Class[] parameterTypes = new Class[ 2 ];
+ parameterTypes[ 0 ] = Class.forName( "java.lang.String" );
+ parameterTypes[ 1 ] = Class.forName( "jpos.config.JposEntry");
+
+ JposServiceInstanceFactory siFactory = null;
+
+ if( JposServiceBinder.getSiFactoryTable().containsKey( siFactoryClassName ) )
+ siFactory = JposServiceBinder.getSiFactoryTable().get( siFactoryClassName );
+ // the classic approach
+ else
+ {
+ Class<?> instanceClass = Class.forName( siFactoryClassName );
+ Constructor<?> defaultCtor = instanceClass.
+ getConstructor( new Class[ 0 ] );
+ siFactory = (JposServiceInstanceFactory)defaultCtor.
+ newInstance( new Object[ 0 ] );
+ JposServiceBinder.getSiFactoryTable().put( siFactoryClassName, siFactory );
+ }
+
+ service = (JposServiceInstance)siFactory.
+ createInstance( logicalName, entry );
+ }
+ catch( Exception e )
+ {
+ String msg = "Could not connect to service with logicalName = " +
+ logicalName + ": Exception.message=" + e.getMessage();
+
+ tracer.println( msg );
+
+ throw new JposException( JposConst.JPOS_E_NOSERVICE, msg, e );
+ }
+ }
+
+ /**
+ * Disconnect this connection
+ * @since 0.1 (Philly 99 meeting)
+ * @throws jpos.JposException if the service throws a exception while disconnecting
+ */
+ public void disconnect() throws JposException
+ {
+ if( service != null )
+ {
+ service.deleteInstance();
+ service = null;
+ }
+
+ tracer.println( "Disconnected to service OK" );
+ }
+
+ /**
+ * Add a finalizer method in case the service connection is garbage collected
+ * and the service of this connection has not been disconnected
+ * @since 0.1 (Philly 99 meeting)
+ * @throws jpos.JposException if the service throws a exception while disconnecting
+ */
+ protected void finalize() throws JposException { disconnect(); }
+
+ //--------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private JposServiceInstance service = null;
+ private JposEntry entry = null;
+ private String logicalName = null;
+ private String siFactoryClassName = null;
+
+ private Tracer tracer = TracerFactory.getInstance().
+ createTracer( "SimpleServiceConnection" );
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/loader/simple/SimpleServiceManager.java b/org.eclipse.osbp.fork.jpos/src/jpos/loader/simple/SimpleServiceManager.java
new file mode 100644
index 0000000..4e54389
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/loader/simple/SimpleServiceManager.java
@@ -0,0 +1,272 @@
+package jpos.loader.simple;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import jpos.JposConst;
+import jpos.JposException;
+
+import jpos.loader.*;
+import jpos.config.*;
+import jpos.config.simple.*;
+import jpos.profile.*;
+import jpos.util.*;
+import jpos.util.tracing.Tracer;
+import jpos.util.tracing.TracerFactory;
+
+/**
+ * This is a simple implementation of the JposServiceManager interface
+ * @since 0.1 (Philly 99 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class SimpleServiceManager extends Object
+implements JposServiceManager
+{
+ //--------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /**
+ * Default ctor
+ * NOTE: necessary because it will be used by jpos.config.JposServiceLoader
+ * to create the simple factory
+ * @deprecated replaced by 1-argument ctor
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public SimpleServiceManager()
+ {
+ getProperties().loadJposProperties();
+ init();
+ }
+
+ /**
+ * One argument ctor
+ * @param properties the JposProperties for this manager
+ * NOTE: this could be an instance of the simple
+ * jpos.loader.DefaultProperties or a this class could also create its own
+ * JposProperties object
+ */
+ public SimpleServiceManager( JposProperties properties )
+ {
+ jposProperties = properties;
+ init();
+ }
+
+ //--------------------------------------------------------------------------
+ // Private instance methods
+ //
+
+ /**
+ * Initializes all the manager objects
+ * @since 1.2 (NY 2K meeting)
+ */
+ private void init() { initEntryRegistry(); }
+
+ /**
+ * Initializes the registry object and also loads the property
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ private void initEntryRegistry()
+ {
+ initRegPopulator();
+ entryRegistry = new SimpleEntryRegistry( regPopulator );
+ }
+
+ /**
+ * Initializes the JposRegPopulator to be used by this manager
+ * If the a JposRegPopulator is defined then try to use it otherwise use default
+ * @since 1.2 (NY 2K meeting)
+ */
+ private void initRegPopulator()
+ {
+ JposProperties properties = getProperties();
+
+ if( properties.isPropertyDefined( JposProperties.
+ JPOS_REG_POPULATOR_CLASS_PROP_NAME ) )
+ {
+ String regPopulatorClassName = properties.
+ getPropertyString( JposProperties.
+ JPOS_REG_POPULATOR_CLASS_PROP_NAME );
+
+ try
+ {
+ Class regPopulatorClass = Class.forName( regPopulatorClassName );
+
+ regPopulator = (JposRegPopulator)regPopulatorClass.newInstance();
+ }
+ catch( Exception e )
+ {
+ tracer.println( "Could not create populator by name: " +
+ regPopulatorClassName + " Exception.message= " +
+ e.getMessage() );
+ regPopulator = new SimpleRegPopulator();
+ }
+ }
+ else
+ if( properties.hasMultiProperty( JposPropertiesConst.JPOS_CONFIG_POPULATOR_CLASS_MULTIPROP_NAME ) )
+ regPopulator = new DefaultCompositeRegPopulator();
+ else
+ regPopulator = new SimpleRegPopulator();
+ }
+
+ /**
+ * @return the ProfileFactory (lazilly creating it, if necessary)
+ * @since 2.1.0
+ */
+ private ProfileFactory getProfileFactory()
+ {
+ if( profileFactory == null )
+ profileFactory = new XercesProfileFactory();
+
+ return profileFactory;
+ }
+
+ //---------------------------------------------------------------------------
+ // Public instance methods
+ //
+
+ /**
+ * @return the JposEntryRegistry object
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public JposEntryRegistry getEntryRegistry() { return entryRegistry; }
+
+ /**
+ * @return the JposProperties object containing access to all
+ * Jpos properties
+ * @since 1.2 (NY 2K meeting)
+ */
+ public JposProperties getProperties() { return jposProperties; }
+
+ /**
+ * @return the JposRegPopulator object used to populate the registry
+ * @since 1.2 (NY 2K meeting)
+ */
+ public JposRegPopulator getRegPopulator() { return regPopulator; }
+
+ /**
+ * @return a ServiceConnection used to connect to the service
+ * @param logicalName the logical name of the service to find
+ * @since 0.1 (Philly 99 meeting)
+ * @throws jpos.config.JposException
+ */
+ public JposServiceConnection createConnection( String logicalName )
+ throws JposException
+ {
+ JposServiceConnection sc = null;
+
+ try
+ {
+ JposEntry jposEntry = (JposEntry)entryRegistry.
+ getJposEntry( logicalName );
+
+ if( jposEntry == null )
+ throw new JposException( JposConst.JPOS_E_NOEXIST,
+ "Service does not exist in loaded JCL registry" );
+
+ String siFactoryClassName =
+ (String)jposEntry.getPropertyValue( JposEntry.
+ SI_FACTORY_CLASS_PROP_NAME );
+
+ sc = new SimpleServiceConnection( logicalName,
+ jposEntry,
+ siFactoryClassName );
+ }
+ catch( JposException je )
+ {
+ tracer.println( "createConnection: JposException.msg=" +
+ je.getMessage() );
+ throw je;
+ }
+ catch( Exception e )
+ {
+ tracer.println( "createConnection: Exception.msg=" +
+ e.getMessage() );
+ throw new JposException( JposConst.JPOS_E_NOSERVICE,
+ "Could not find service" );
+ }
+
+ return sc;
+ }
+
+ /**
+ * @return the current ProfileRegistry
+ * @since 1.3 (SF 2K meeting)
+ */
+ public ProfileRegistry getProfileRegistry()
+ {
+ if( profileRegistry == null )
+ profileRegistry = new DefaultProfileRegistry();
+
+ return profileRegistry;
+ }
+
+ /**
+ * Tries to load the Profile by specified in the file. If successful
+ * returns it and adds it to the ProfileRegistry otherwise throw exception
+ * @return the profile specified in the XML profile file after loading it
+ * @param xmlProfileFileName the file name for the XML profile
+ * @exception jpos.profile.ProfileException if the profile could not be
+ * loaded from file
+ * @since 1.3 (SF 2K meeting)
+ */
+ public Profile loadProfile( String xmlProfileFileName )
+ throws ProfileException
+ {
+ Profile profile = getProfileFactory().
+ createProfile( xmlProfileFileName );
+
+ if( profile != null )
+ profileRegistry.addProfile( profile );
+
+ return profile;
+ }
+
+ /**
+ * Ask the manager to reload the registry by reloading the properties file
+ * creating a new registry and repopulating the registry. Also creates sets
+ * the JposRegPopulator for the registry as a side-effect
+ * NOTE: this method should only be used if at runtime the properties and/or
+ * populator files have changed
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public void reloadEntryRegistry()
+ {
+ getProperties().loadJposProperties();
+ initEntryRegistry();
+
+ getEntryRegistry().load();
+
+ tracer.println( "Sucessfully reloaded registry" );
+ }
+
+ //--------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private JposRegPopulator regPopulator = null;
+ private SimpleEntryRegistry entryRegistry = null;
+
+ private ProfileRegistry profileRegistry = null;
+ private ProfileFactory profileFactory = null;
+
+ private JposProperties jposProperties = new DefaultProperties();
+
+ private Tracer tracer = TracerFactory.getInstance().
+ createTracer( "SimpleServiceManager" );
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/AbstractPropType.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/AbstractPropType.java
new file mode 100644
index 0000000..f411c89
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/AbstractPropType.java
@@ -0,0 +1,82 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.io.Serializable;
+
+/**
+ * Default implementation of the PropType
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public abstract class AbstractPropType extends Object
+ implements PropType, Serializable
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Default ctor */
+ AbstractPropType() {}
+
+ //-------------------------------------------------------------------------
+ // Public abstract methods
+ //
+
+ /** @return a String representation of this PropType */
+ public abstract String toString();
+
+ /** @return a Java class that defines this type */
+ public abstract Class getJavaTypeClass();
+
+ /**
+ * @return true if the object passed is of this PropType
+ * @param obj the Java Object
+ */
+ public abstract boolean isValidValue( Object obj );
+
+ /**
+ * @return true if the PropValue passed is of this PropType
+ * @param propValue the PropValue
+ */
+ public abstract boolean isValidValue( PropValue obj );
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return a String description of this PropType (can be HTML text) */
+ public String getDescription() { return description; }
+
+ //-------------------------------------------------------------------------
+ // Package setter methods
+ //
+
+ /**
+ * Sets the String description of this PropType (can be HTML text)
+ * @param s the String
+ */
+ void setDescription( String s ) { description = s; }
+
+ //-------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private String description = "";
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/BooleanPropType.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/BooleanPropType.java
new file mode 100644
index 0000000..83d1bfc
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/BooleanPropType.java
@@ -0,0 +1,83 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.io.Serializable;
+
+/**
+ * Defines a Boolean property type
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class BooleanPropType extends AbstractPropType implements PropType, Serializable
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Default ctor */
+ BooleanPropType() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static PropType getInstance()
+ {
+ if( instance == null )
+ instance = new BooleanPropType();
+
+ return instance;
+ }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return a String representation of this PropType */
+ public String toString() { return "BooleanPropType"; }
+
+ /** @return a Java class that defines this type */
+ public Class getJavaTypeClass() { return ( new Boolean( false ) ).getClass(); }
+
+ /**
+ * @return true if the object passed is of this PropType
+ * @param boolean the boolean primitive type
+ */
+ public boolean isValidValue( boolean b ) { return true; }
+
+ /**
+ * @return true if the object passed is of this PropType
+ * @param obj the Java Object
+ */
+ public boolean isValidValue( Object obj ) { return ( obj instanceof Boolean ); }
+
+ /**
+ * @return true if the PropValue passed is of this PropType
+ * @param propValue the PropValue
+ */
+ public boolean isValidValue( PropValue propValue ) { return isValidValue( propValue.getValue() ); }
+
+ //-------------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static PropType instance = null;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/CharacterPropType.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/CharacterPropType.java
new file mode 100644
index 0000000..362e10f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/CharacterPropType.java
@@ -0,0 +1,83 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.io.Serializable;
+
+/**
+ * Defines a Character property type
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class CharacterPropType extends AbstractPropType implements PropType, Serializable
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Default ctor */
+ CharacterPropType() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static PropType getInstance()
+ {
+ if( instance == null )
+ instance = new CharacterPropType();
+
+ return instance;
+ }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return a String representation of this PropType */
+ public String toString() { return "CharacterPropType"; }
+
+ /** @return a Java class that defines this type */
+ public Class getJavaTypeClass() { return ( new Character( 'c' ) ).getClass(); }
+
+ /**
+ * @return true if the object passed is of this PropType
+ * @param char the char primitive type
+ */
+ public boolean isValidValue( char c ) { return true; }
+
+ /**
+ * @return true if the object passed is of this PropType
+ * @param obj the Java Object
+ */
+ public boolean isValidValue( Object obj ) { return ( obj instanceof Character ); }
+
+ /**
+ * @return true if the PropValue passed is of this PropType
+ * @param propValue the PropValue
+ */
+ public boolean isValidValue( PropValue propValue ) { return isValidValue( propValue.getValue() ); }
+
+ //-------------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static PropType instance = null;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultDevCatInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultDevCatInfo.java
new file mode 100644
index 0000000..ca99db8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultDevCatInfo.java
@@ -0,0 +1,90 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Default implementation of the DevCatInfo interface
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+class DefaultDevCatInfo extends Object implements DevCatInfo
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /**
+ * Creates a DevCatInfo with the <Profile, DevCat> parameter
+ * @param profile the Profile
+ * @param devCat the DevCat
+ */
+ DefaultDevCatInfo( Profile profile, DevCat devCat )
+ {
+ this.profile = profile;
+ this.devCat = devCat;
+ }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the Profile associated with this DevCatInfo */
+ public Profile getProfile() { return profile; }
+
+ /** @return the DevCat */
+ public DevCat getDevCat() { return devCat; }
+
+ /** @return the list of standard properties for this DevCat */
+ public PropInfoList getStandardProps() { return standardProps; }
+
+ /** @return the list of required properties for this DevCat */
+ public PropInfoList getRequiredProps() { return requiredProps; }
+
+ /** @return the list of optional properties for this DevCat */
+ public PropInfoList getOptionalProps() { return optionalProps; }
+
+ /** @return the String representation of this DevCat */
+ public String toString()
+ {
+ StringBuffer sb = new StringBuffer();
+
+ sb.append( "<DevCatInfo>\n" );
+ sb.append( " <Profile name = " + profile.getName() +
+ " vendorName = " + profile.getVendorName() + "/>\n" );
+ sb.append( " <DevCat name = " + devCat.toString() + "/>\n" );
+ sb.append( "</DevCatInfo>\n" );
+
+ return sb.toString();
+ }
+
+ //-------------------------------------------------------------------------
+ // Package methods
+ //
+
+ //-------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private Profile profile = null;
+ private DevCat devCat = null;
+
+ private PropInfoList standardProps = new DefaultPropInfoList();
+ private PropInfoList requiredProps = new DefaultPropInfoList();
+ private PropInfoList optionalProps = new DefaultPropInfoList();
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultDevCatInfoList.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultDevCatInfoList.java
new file mode 100644
index 0000000..cce6353
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultDevCatInfoList.java
@@ -0,0 +1,111 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.util.*;
+
+/**
+ * Defines a simple list of DevCatInfo objects
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien
+ */
+class DefaultDevCatInfoList extends Object implements DevCatInfoList
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Default ctor */
+ public DefaultDevCatInfoList() {}
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the current size of this list */
+ public int getSize() { return list.size(); }
+
+ /** @return true if this list is empty */
+ public boolean isEmpty() { return list.isEmpty(); }
+
+ /**
+ * Adds a new DevCatInfo to this list
+ * @param devCatInfo the devCatInfo to add
+ */
+ public void add( DevCatInfo devCatInfo ) { list.add( devCatInfo ); }
+
+ /**
+ * Removes the DevCatInfo to this list
+ * @param devCatInfo the devCatInfo to remove
+ */
+ public void remove( DevCatInfo devCatInfo ) { list.remove( devCatInfo ); }
+
+ /** Removes all DevCatInfo in this list */
+ public void removeAll() { list.clear(); }
+
+ /**
+ * @return true if the DevCatInfo is already in the list
+ * @param devCatInfo the devCatInfo
+ */
+ public boolean contains( DevCatInfo devCatInfo ) { return list.contains( devCatInfo ); }
+
+ /** @return an DevCatInfoList.Iterator object for this list */
+ public DevCatInfoList.Iterator iterator() { return this.new DefaultIterator(); }
+
+ //-------------------------------------------------------------------------
+ // Inner interfaces
+ //
+
+ /**
+ * Simple interface to iterate through the list
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ * @since 1.3 (SF 2K meeting)
+ */
+ class DefaultIterator extends Object implements DevCatInfoList.Iterator
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Default ctor */
+ DefaultIterator() { iterator = list.iterator(); }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the next DevCatInfo in the iterator */
+ public DevCatInfo next() { return (DevCatInfo)iterator.next(); }
+
+ /** @return true if there is a next DevCatInfo in the iterator */
+ public boolean hasNext() { return iterator.hasNext(); }
+
+ //---------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private java.util.Iterator iterator = null;
+ }
+
+ //-------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private List list = new ArrayList();
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultDevCatV.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultDevCatV.java
new file mode 100644
index 0000000..602f84d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultDevCatV.java
@@ -0,0 +1,169 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Defines a default a Visitor interface for the DevCat hiearchy
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class DefaultDevCatV extends Object implements DevCatVisitor
+{
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /**
+ * Visits a DevCat
+ * @param devCat the DevCat
+ */
+ public void visitBumpBar( DevCat devCat ) {}
+
+ /**
+ * Visits a CashChanger DevCat
+ * @param devCat the DevCat
+ */
+ public void visitCashChanger( DevCat devCat ) {}
+
+ /**
+ * Visits a CashDrawer DevCat
+ * @param devCat the DevCat
+ */
+ public void visitCashDrawer( DevCat devCat ) {}
+
+ /**
+ * Visits a CheckScanner DevCat
+ * @param devCat the DevCat
+ */
+ public void visitCheckScanner( DevCat devCat ) {}
+
+ /**
+ * Visits a CAT DevCat
+ * @param devCat the DevCat
+ */
+ public void visitCAT( DevCat devCat ) {}
+
+ /**
+ * Visits a CoinDispenser DevCat
+ * @param devCat the DevCat
+ */
+ public void visitCoinDispenser( DevCat devCat ) {}
+
+ /**
+ * Visits a FiscalPrinter DevCat
+ * @param devCat the DevCat
+ */
+ public void visitFiscalPrinter( DevCat devCat ) {}
+
+ /**
+ * Visits a HardTotals DevCat
+ * @param devCat the DevCat
+ */
+ public void visitHardTotals( DevCat devCat ) {}
+
+ /**
+ * Visits a Keylock DevCat
+ * @param devCat the DevCat
+ */
+ public void visitKeylock( DevCat devCat ) {}
+
+ /**
+ * Visits a LineDisplay DevCat
+ * @param devCat the DevCat
+ */
+ public void visitLineDisplay( DevCat devCat ) {}
+
+ /**
+ * Visits a MICR DevCat
+ * @param devCat the DevCat
+ */
+ public void visitMICR( DevCat devCat ) {}
+
+ /**
+ * Visits a MotionSensor DevCat
+ * @param devCat the DevCat
+ */
+ public void visitMotionSensor( DevCat devCat ) {}
+
+ /**
+ * Visits a MSR DevCat
+ * @param devCat the DevCat
+ */
+ public void visitMSR( DevCat devCat ) {}
+
+ /**
+ * Visits a Pinpad DevCat
+ * @param devCat the DevCat
+ */
+ public void visitPinpad( DevCat devCat ) {}
+
+ /**
+ * Visits a POSKeyboard DevCat
+ * @param devCat the DevCat
+ */
+ public void visitPOSKeyboard( DevCat devCat ) {}
+
+ /**
+ * Visits a POSPower DevCat
+ * @param devCat the DevCat
+ */
+ public void visitPOSPower( DevCat devCat ) {}
+
+ /**
+ * Visits a POSPrinter DevCat
+ * @param devCat the DevCat
+ */
+ public void visitPOSPrinter( DevCat devCat ) {}
+
+ /**
+ * Visits a RemoteOrderDisplay DevCat
+ * @param devCat the DevCat
+ */
+ public void visitRemoteOrderDisplay( DevCat devCat ) {}
+
+ /**
+ * Visits a Scanner DevCat
+ * @param devCat the DevCat
+ */
+ public void visitScanner( DevCat devCat ) {}
+
+ /**
+ * Visits a SignatureCapture DevCat
+ * @param devCat the DevCat
+ */
+ public void visitSignatureCapture( DevCat devCat ) {}
+
+ /**
+ * Visits a Scale DevCat
+ * @param devCat the DevCat
+ */
+ public void visitScale( DevCat devCat ) {}
+
+ /**
+ * Visits a ToneIndicator DevCat
+ * @param devCat the DevCat
+ */
+ public void visitToneIndicator( DevCat devCat ) {}
+
+ /**
+ * Visits a PointCardRW DevCat
+ * @param devCat the DevCat
+ */
+ public void visitPointCardRW( DevCat devCat ) {}
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultProfile.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultProfile.java
new file mode 100644
index 0000000..24fa18e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultProfile.java
@@ -0,0 +1,124 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.io.Serializable;
+import java.net.URL;
+
+/**
+ * Defines a Profile which is an abstract definition of a set of JposEntry
+ * objects and each entry's required set of properties
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+class DefaultProfile extends Object implements Profile, Serializable
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /**
+ * Creates a profile with name passed
+ * @param name the Profile's name
+ */
+ DefaultProfile( String name ) { this.name = name; }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the unique name of this profile */
+ public String getName() { return name; }
+
+ /** @return the version of this profile */
+ public String getVersion() { return version; }
+
+ /** @return a String description of this profile */
+ public String getDescription() { return description; }
+
+ /** @return the vendor name of this profile */
+ public String getVendorName() { return vendorName; }
+
+ /** @return the URL for this vendor */
+ public URL getVendorUrl() { return vendorUrl; }
+
+ /** @return the list of DevCatInfo for this profile */
+ public DevCatInfoList getDevCatInfoList() { return devCatInfoList; }
+
+ //-------------------------------------------------------------------------
+ // Public overridden methods
+ //
+
+ /** @return a String representation of this Profile */
+ public String toString()
+ {
+ StringBuffer sb = new StringBuffer();
+
+ sb.append( "<Profile name='" + getName() + "'>\n" );
+
+ sb.append( " <ProfileInfo version='" + getVersion() + "' vendorName='" + getVendorName() + "'\n" );
+ sb.append( " vendorUrl=" + ( getVendorUrl() == null ? "'null'" : "'" + getVendorUrl().toString() + "'" ) + "\n" );
+ sb.append( " description='" + getDescription() + "'/>\n" );
+
+ sb.append( "</Profile>" );
+
+ return sb.toString();
+ }
+
+ //-------------------------------------------------------------------------
+ // Package setter methods
+ //
+
+ /**
+ * Sets the the version of this profile
+ * @param s the String object
+ */
+ void setVersion( String s ) { version = s; }
+
+ /**
+ * @return a String description of this profile
+ * @param s the String
+ */
+ void setDescription( String s ) { description = s; }
+
+ /**
+ * Sets the vendorName
+ * @param s the String vendor name
+ */
+ void setVendorName( String s ) { vendorName = s; }
+
+ /**
+ * Sets the URL for this vendor
+ * @param url the URL
+ */
+ void setVendorUrl( URL url ) { vendorUrl = url; }
+
+ //-------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private String name = "";
+ private String version = "";
+ private String description = "";
+
+ private String vendorName = "";
+ private URL vendorUrl = null;
+
+ private DevCatInfoList devCatInfoList = new DefaultDevCatInfoList();
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultProfileRegistry.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultProfileRegistry.java
new file mode 100644
index 0000000..4aa8651
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultProfileRegistry.java
@@ -0,0 +1,98 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.util.*;
+
+/**
+ * Default implementation of the ProfileRegistry using a Hashtable
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class DefaultProfileRegistry extends Object implements ProfileRegistry
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Default ctor*/
+ public DefaultProfileRegistry() {}
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the size of the registry */
+ public int getSize() { return table.size(); }
+
+ /** @return true if the registry is empty or not */
+ public boolean isEmpty() { return table.isEmpty(); }
+
+ /**
+ * @return true if there is an Profile with the specified logical name
+ * @param profileName the unique name of this profile
+ */
+ public boolean hasProfile( String profileName ) { return table.containsKey( profileName ); }
+
+ /**
+ * @return true if there is an Profile with the specified logical name
+ * @param profile the profile
+ */
+ public boolean hasProfile( Profile profile ) { return table.containsValue( profile ); }
+
+ /** @return an enumeration of Profile objects */
+ public Enumeration getProfiles() { return table.elements(); }
+
+ /**
+ * @return the Profile for the profileName specified
+ * @param profileName the unique name of this profile
+ */
+ public Profile getProfile( String profileName ) { return (Profile)table.get( profileName ); }
+
+ /**
+ * Add an Profile for the service with logical name specified
+ * @param profile the profile
+ */
+ public void addProfile( Profile profile ) { table.put( profile.getName(), profile ); }
+
+ /**
+ * Add an Profile for the service with logical name specified
+ * @param profileName the unique name of this profile
+ * @param profile the profile
+ */
+ public void addProfile( String profileName, Profile profile ) { table.put( profileName, profile ); }
+
+ /**
+ * Removes the specified Profile
+ * @param profile the profile to remove
+ */
+ public void removeProfile( Profile profile ) { table.remove( profile.getName() ); }
+
+ /**
+ * Removes the Profile with the profileName specified
+ * @param profileName the unique name of this profile
+ */
+ public void removeProfile( String profileName ) { table.remove( profileName ); }
+
+ //-------------------------------------------------------------------------
+ // Instance varaibles
+ //
+
+ private Hashtable table = new Hashtable();
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultPropInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultPropInfo.java
new file mode 100644
index 0000000..c589b34
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultPropInfo.java
@@ -0,0 +1,129 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.io.Serializable;
+
+/**
+ * Default implementation of the PropInfo interface
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+class DefaultPropInfo extends Object implements PropInfo, Serializable
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /**
+ * Creates a PropInfo with name and profile passed
+ * @param name the PropInfo name
+ * @param profile the Profile for this PropInfo
+ */
+ public DefaultPropInfo( String name, Profile profile )
+ {
+ this.name = name;
+ this.profile = profile;
+ }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the Profile associated with this PropInfo */
+ public Profile getProfile() { return profile; }
+
+ /** @return the name of this property (MUST be unique per profile) */
+ public String getName() { return name; }
+
+ /** @return the type of this property */
+ public PropType getType() { return type; }
+
+ /** @return the default value for this property */
+ public PropValue getDefaultValue() { return defaultValue; }
+
+ /** @return the list of possible values for this property */
+ public PropValueList getValues() { return values; }
+
+ /** @return the DevCat that this property can be applied to */
+ public DevCat getDevCat() { return devCat; }
+
+ /** @return the PropInfoViewer for this property */
+ public PropInfoViewer getViewer() { return viewer; }
+
+ /** @return a description of this PropInfo (this can be HTML formated) */
+ public String getDescription() { return description; }
+
+ /** @return a short description of this PropInfo (this can be HTML formated) */
+ public String getShortDescription() { return shortDescription; }
+
+ //-------------------------------------------------------------------------
+ // Package setter methods
+ //
+
+ /**
+ * Sets the type of this property
+ * @param type the PropType
+ */
+ void setType( PropType type ) { this.type = type; }
+
+ /**
+ * Sets the default value for this property
+ * @param propValue the PropValue
+ */
+ void setDefaultValue( PropValue value ) { defaultValue = value; }
+
+ /**
+ * Sets the DevCat that this property can be applied to
+ * @param devCat the DevCat
+ */
+ void setDevCat( DevCat devCat ) { this.devCat = devCat; }
+
+ /**
+ * Sets the PropInfoViewer for this property
+ * @param viewer the PropInfoViewer
+ */
+ void setViewer( PropInfoViewer viewer ) { this.viewer = viewer; }
+
+ /**
+ * Sets the description of this PropInfo (this can be HTML formated)
+ * @param s the String
+ */
+ void setDescription( String s ) { description = s; }
+
+ /**
+ * Sets a short description of this PropInfo used as TootipText (this can be HTML formated)
+ * @param s the String
+ */
+ void setShortDescription( String s ) { shortDescription = s; }
+
+ //-------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private Profile profile = null;
+ private String name = "";
+ private PropType type = null;
+ private PropValue defaultValue = null;
+ private PropValueList values = new DefaultPropValueList();
+ private DevCat devCat = null;
+ private PropInfoViewer viewer = null;
+ private String description = "";
+ private String shortDescription = "";
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultPropInfoList.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultPropInfoList.java
new file mode 100644
index 0000000..b85bc93
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultPropInfoList.java
@@ -0,0 +1,111 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.util.*;
+
+/**
+ * Defines a simple list of PropInfo objects
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+class DefaultPropInfoList extends Object implements PropInfoList
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Default ctor */
+ public DefaultPropInfoList() {}
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the current size of this list */
+ public int getSize() { return list.size(); }
+
+ /** @return true if this list is empty */
+ public boolean isEmpty() { return list.isEmpty(); }
+
+ /**
+ * Adds a new PropInfo to this list
+ * @param propInfo the propInfo to add
+ */
+ public void add( PropInfo propInfo ) { list.add( propInfo ); }
+
+ /**
+ * Removes the PropInfo to this list
+ * @param propInfo the propInfo to remove
+ */
+ public void remove( PropInfo propInfo ) { list.remove( propInfo ); }
+
+ /** Removes all PropInfo in this list */
+ public void removeAll() { list.clear(); }
+
+ /**
+ * @return true if the PropInfo is already in the list
+ * @param propInfo the propInfo
+ */
+ public boolean contains( PropInfo propInfo ) { return list.contains( propInfo ); }
+
+ /** @return an PropInfoList.Iterator object for this list */
+ public PropInfoList.Iterator iterator() { return this.new DefaultIterator(); }
+
+ //-------------------------------------------------------------------------
+ // Inner interfaces
+ //
+
+ /**
+ * Simple interface to iterate through the list
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ * @since 1.3 (SF 2K meeting)
+ */
+ class DefaultIterator extends Object implements PropInfoList.Iterator
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Default ctor */
+ DefaultIterator() { iterator = list.iterator(); }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the next PropInfo in the iterator */
+ public PropInfo next() { return (PropInfo)iterator.next(); }
+
+ /** @return true if there is a next PropInfo in the iterator */
+ public boolean hasNext() { return iterator.hasNext(); }
+
+ //---------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private java.util.Iterator iterator = null;
+ }
+
+ //-------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private List list = new ArrayList();
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultPropValue.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultPropValue.java
new file mode 100644
index 0000000..233025a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultPropValue.java
@@ -0,0 +1,78 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.io.Serializable;
+
+/**
+ * Class implementing the PropValue interface
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+class DefaultPropValue extends Object implements PropValue, Serializable
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /**
+ * 2-arg ctor taking Object value
+ * @param obj the Object value
+ * @param propType the PropType
+ */
+ DefaultPropValue( Object obj, PropType propType )
+ {
+ value = obj;
+ type = propType;
+ }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the Java object that this value represents */
+ public Object getValue() { return value; }
+
+ /** @return a String representation of this value */
+ public String toString() { return value.toString(); }
+
+ /** @return the PropType for this PropValue */
+ public PropType getType() { return type; }
+
+ /**
+ * @return true if this and the other value are equal
+ * @param other the other PropValue
+ */
+ public boolean equals( Object propValue )
+ {
+ if( propValue == null ) return false;
+
+ if( !( propValue instanceof PropValue ) ) return false;
+
+ return value.equals( ( (PropValue)propValue ).getValue() );
+ }
+
+ //-------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private Object value = null;
+
+ private PropType type = null;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultPropValueList.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultPropValueList.java
new file mode 100644
index 0000000..aa6f129
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DefaultPropValueList.java
@@ -0,0 +1,111 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.util.*;
+
+/**
+ * Default implementation of the PropValueList interface
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+class DefaultPropValueList extends Object implements PropValueList
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Default ctor */
+ DefaultPropValueList() {}
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the current size of this list */
+ public int getSize() { return list.size(); }
+
+ /** @return true if this list is empty */
+ public boolean isEmpty() { return list.isEmpty(); }
+
+ /**
+ * Adds a new PropValue to this list
+ * @param propValue the propValue to add
+ */
+ public void add( PropValue propValue ) { list.add( propValue ); }
+
+ /**
+ * Removes the PropValue to this list
+ * @param propValue the propValue to remove
+ */
+ public void remove( PropValue propValue ) { list.remove( propValue ); }
+
+ /** Removes all PropValue in this list */
+ public void removeAll() { list.clear(); }
+
+ /**
+ * @return true if the PropValue is already in the list
+ * @param propValue the PropValue
+ */
+ public boolean contains( PropValue propValue ) { return list.contains( propValue ); }
+
+ /** @return an PropValueList.Iterator object for this list */
+ public PropValueList.Iterator iterator() { return this.new DefaultIterator(); }
+
+ //-------------------------------------------------------------------------
+ // Inner interfaces
+ //
+
+ /**
+ * Simple interface to iterate through the list
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ * @since 1.3 (SF 2K meeting)
+ */
+ class DefaultIterator extends Object implements PropValueList.Iterator
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Default ctor */
+ DefaultIterator() { iterator = list.iterator(); }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the next PropValue in the iterator */
+ public PropValue next() { return (PropValue)iterator.next(); }
+
+ /** @return true if there is a next PropValue in the iterator */
+ public boolean hasNext() { return iterator.hasNext(); }
+
+ //---------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private java.util.Iterator iterator = null;
+ }
+
+ //-------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private List list = new ArrayList();
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/DevCat.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DevCat.java
new file mode 100644
index 0000000..25b4677
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DevCat.java
@@ -0,0 +1,177 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Defines an interface for JavaPOS device categories
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface DevCat
+{
+ //-------------------------------------------------------------------------
+ // Constants
+ //
+
+ /** Indicates the version of JavaPOS that these DevCat apply to */
+ public static final String JPOS_VERSION_STRING = "1.5";
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString();
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor );
+
+ //-------------------------------------------------------------------------
+ // Inner interfaces
+ //
+
+ /**
+ * Defines the DevCat for BumpBar
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public interface BumpBar extends DevCat {}
+
+ /**
+ * Defines the DevCat for POSPrinter
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public interface CashDrawer extends DevCat {}
+
+ /**
+ * Defines the DevCat for CAT
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public interface CAT extends DevCat {}
+
+ /**
+ * Defines the DevCat for CoinDispenser
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public interface CoinDispenser extends DevCat {}
+
+ /**
+ * Defines the DevCat for FiscalPrinter
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public interface FiscalPrinter extends DevCat {}
+
+ /**
+ * Defines the DevCat for HardTotals
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public interface HardTotals extends DevCat {}
+
+ /**
+ * Defines the DevCat for Keylock
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public interface Keylock extends DevCat {}
+
+ /**
+ * Defines the DevCat for POSPrinter
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public interface LineDisplay extends DevCat {}
+
+ /**
+ * Defines the DevCat for MICR
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public interface MICR extends DevCat {}
+
+ /**
+ * Defines the DevCat for MSR
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public interface MSR extends DevCat {}
+
+ /**
+ * Defines the DevCat for Pinpad
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public interface Pinpad extends DevCat {}
+
+ /**
+ * Defines the DevCat for POSKeyboard
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public interface POSKeyboard extends DevCat {}
+
+ /**
+ * Defines the DevCat for POSPower
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public interface POSPower extends DevCat {}
+
+ /**
+ * Defines the DevCat for POSPrinter
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public interface POSPrinter extends DevCat {}
+
+ /**
+ * Defines the DevCat for RemoteOrderDisplay
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public interface RemoteOrderDisplay extends DevCat {}
+
+ /**
+ * Defines the DevCat for Scanner
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public interface Scanner extends DevCat {}
+
+ /**
+ * Defines the DevCat for SignatureCapture
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public interface SignatureCapture extends DevCat {}
+
+ /**
+ * Defines the DevCat for ToneIndicator
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public interface ToneIndicator extends DevCat {}
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/DevCatInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DevCatInfo.java
new file mode 100644
index 0000000..f2b5a2f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DevCatInfo.java
@@ -0,0 +1,49 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Defines an interface that aggregates information for a JavaPOS device category
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface DevCatInfo
+{
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the Profile associated with this DevCatInfo */
+ public Profile getProfile();
+
+ /** @return the DevCat */
+ public DevCat getDevCat();
+
+ /** @return the list of standard properties for this DevCat */
+ public PropInfoList getStandardProps();
+
+ /** @return the list of required properties for this DevCat */
+ public PropInfoList getRequiredProps();
+
+ /** @return the list of optional properties for this DevCat */
+ public PropInfoList getOptionalProps();
+
+ /** @return the String representation of this DevCat */
+ public String toString();
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/DevCatInfoList.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DevCatInfoList.java
new file mode 100644
index 0000000..28d4c5a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DevCatInfoList.java
@@ -0,0 +1,75 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Defines a simple list of DevCatInfo objects
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface DevCatInfoList
+{
+ /** @return the current size of this list */
+ public int getSize();
+
+ /** @return true if this list is empty */
+ public boolean isEmpty();
+
+ /**
+ * Adds a new DevCatInfo to this list
+ * @param devCatInfo the devCatInfo to add
+ */
+ public void add( DevCatInfo devCatInfo );
+
+ /**
+ * Removes the DevCatInfo to this list
+ * @param devCatInfo the devCatInfo to remove
+ */
+ public void remove( DevCatInfo devCatInfo );
+
+ /** Removes all DevCatInfo in this list */
+ public void removeAll();
+
+ /**
+ * @return true if the DevCatInfo is already in the list
+ * @param devCatInfo the devCatInfo
+ */
+ public boolean contains( DevCatInfo devCatInfo );
+
+ /** @return an DevCatInfoList.Iterator object for this list */
+ public DevCatInfoList.Iterator iterator();
+
+ //-------------------------------------------------------------------------
+ // Inner interfaces
+ //
+
+ /**
+ * Simple interface to iterate through the list
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ * @since 1.3 (SF 2K meeting)
+ */
+ public interface Iterator
+ {
+ /** @return the next DevCatInfo in the iterator */
+ public DevCatInfo next();
+
+ /** @return true if there is a next DevCatInfo in the iterator */
+ public boolean hasNext();
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/DevCatVisitor.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DevCatVisitor.java
new file mode 100644
index 0000000..e6df679
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/DevCatVisitor.java
@@ -0,0 +1,169 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Defines a Visitor interface for the DevCat hiearchy
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface DevCatVisitor
+{
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /**
+ * Visits a DevCat
+ * @param devCat the DevCat
+ */
+ public void visitBumpBar( DevCat devCat );
+
+ /**
+ * Visits a CashChanger DevCat
+ * @param devCat the DevCat
+ */
+ public void visitCashChanger( DevCat devCat );
+
+ /**
+ * Visits a CashDrawer DevCat
+ * @param devCat the DevCat
+ */
+ public void visitCashDrawer( DevCat devCat );
+
+ /**
+ * Visits a CheckScanner DevCat
+ * @param devCat the DevCat
+ */
+ public void visitCheckScanner( DevCat devCat );
+
+ /**
+ * Visits a CAT DevCat
+ * @param devCat the DevCat
+ */
+ public void visitCAT( DevCat devCat );
+
+ /**
+ * Visits a CoinDispenser DevCat
+ * @param devCat the DevCat
+ */
+ public void visitCoinDispenser( DevCat devCat );
+
+ /**
+ * Visits a FiscalPrinter DevCat
+ * @param devCat the DevCat
+ */
+ public void visitFiscalPrinter( DevCat devCat );
+
+ /**
+ * Visits a HardTotals DevCat
+ * @param devCat the DevCat
+ */
+ public void visitHardTotals( DevCat devCat );
+
+ /**
+ * Visits a Keylock DevCat
+ * @param devCat the DevCat
+ */
+ public void visitKeylock( DevCat devCat );
+
+ /**
+ * Visits a LineDisplay DevCat
+ * @param devCat the DevCat
+ */
+ public void visitLineDisplay( DevCat devCat );
+
+ /**
+ * Visits a MICR DevCat
+ * @param devCat the DevCat
+ */
+ public void visitMICR( DevCat devCat );
+
+ /**
+ * Visits a MotionSensor DevCat
+ * @param devCat the DevCat
+ */
+ public void visitMotionSensor( DevCat devCat );
+
+ /**
+ * Visits a MSR DevCat
+ * @param devCat the DevCat
+ */
+ public void visitMSR( DevCat devCat );
+
+ /**
+ * Visits a Pinpad DevCat
+ * @param devCat the DevCat
+ */
+ public void visitPinpad( DevCat devCat );
+
+ /**
+ * Visits a POSKeyboard DevCat
+ * @param devCat the DevCat
+ */
+ public void visitPOSKeyboard( DevCat devCat );
+
+ /**
+ * Visits a POSPower DevCat
+ * @param devCat the DevCat
+ */
+ public void visitPOSPower( DevCat devCat );
+
+ /**
+ * Visits a POSPrinter DevCat
+ * @param devCat the DevCat
+ */
+ public void visitPOSPrinter( DevCat devCat );
+
+ /**
+ * Visits a RemoteOrderDisplay DevCat
+ * @param devCat the DevCat
+ */
+ public void visitRemoteOrderDisplay( DevCat devCat );
+
+ /**
+ * Visits a Scanner DevCat
+ * @param devCat the DevCat
+ */
+ public void visitScanner( DevCat devCat );
+
+ /**
+ * Visits a SignatureCapture DevCat
+ * @param devCat the DevCat
+ */
+ public void visitSignatureCapture( DevCat devCat );
+
+ /**
+ * Visits a Scale DevCat
+ * @param devCat the DevCat
+ */
+ public void visitScale( DevCat devCat );
+
+ /**
+ * Visits a ToneIndicator DevCat
+ * @param devCat the DevCat
+ */
+ public void visitToneIndicator( DevCat devCat );
+
+ /**
+ * Visits a PointCardReaderWriter DevCat
+ * @param devCat the DevCat
+ */
+ public void visitPointCardRW( DevCat devCat );
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/FloatPropType.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/FloatPropType.java
new file mode 100644
index 0000000..2536bca
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/FloatPropType.java
@@ -0,0 +1,83 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.io.Serializable;
+
+/**
+ * Defines a Float property type
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class FloatPropType extends AbstractPropType implements PropType, Serializable
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Default ctor */
+ FloatPropType() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static PropType getInstance()
+ {
+ if( instance == null )
+ instance = new FloatPropType();
+
+ return instance;
+ }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return a String representation of this PropType */
+ public String toString() { return "FloatPropType"; }
+
+ /** @return a Java class that defines this type */
+ public Class getJavaTypeClass() { return ( new Float( 1.0 ) ).getClass(); }
+
+ /**
+ * @return true if the object passed is of this PropType
+ * @param f the float primitive type
+ */
+ public boolean isValidValue( float f ) { return true; }
+
+ /**
+ * @return true if the object passed is of this PropType
+ * @param obj the Java Object
+ */
+ public boolean isValidValue( Object obj ) { return ( obj instanceof Float ); }
+
+ /**
+ * @return true if the PropValue passed is of this PropType
+ * @param propValue the PropValue
+ */
+ public boolean isValidValue( PropValue propValue ) { return isValidValue( propValue.getValue() ); }
+
+ //-------------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static PropType instance = null;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/IntegerPropType.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/IntegerPropType.java
new file mode 100644
index 0000000..600e48e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/IntegerPropType.java
@@ -0,0 +1,83 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.io.Serializable;
+
+/**
+ * Defines a Integer property type
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class IntegerPropType extends AbstractPropType implements PropType, Serializable
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Default ctor */
+ IntegerPropType() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static PropType getInstance()
+ {
+ if( instance == null )
+ instance = new IntegerPropType();
+
+ return instance;
+ }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return a String representation of this PropType */
+ public String toString() { return "IntegerPropType"; }
+
+ /** @return a Java class that defines this type */
+ public Class getJavaTypeClass() { return ( new Integer( 0 ) ).getClass(); }
+
+ /**
+ * @return true if the object passed is of this PropType
+ * @param i the int primitive type
+ */
+ public boolean isValidValue( int i ) { return true; }
+
+ /**
+ * @return true if the object passed is of this PropType
+ * @param obj the Java Object
+ */
+ public boolean isValidValue( Object obj ) { return ( obj instanceof Integer ); }
+
+ /**
+ * @return true if the PropValue passed is of this PropType
+ * @param propValue the PropValue
+ */
+ public boolean isValidValue( PropValue propValue ) { return isValidValue( propValue.getValue() ); }
+
+ //-------------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static PropType instance = null;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/JposDevCats.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/JposDevCats.java
new file mode 100644
index 0000000..c279ffc
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/JposDevCats.java
@@ -0,0 +1,1378 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.util.*;
+
+/**
+ * Defines an interface for JavaPOS device categories
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class JposDevCats extends Object
+{
+ //-------------------------------------------------------------------------
+ // Private class constants
+ //
+
+ private static final Hashtable DEVCAT_TABLE = new Hashtable();
+
+ //-------------------------------------------------------------------------
+ // Class constants
+ //
+
+ public static final DevCat UNKNOWN_DEVCAT =
+ JposDevCats.Unknown.getInstance();
+
+ public static final DevCat BUMPBAR_DEVCAT =
+ JposDevCats.BumpBar.getInstance();
+
+ public static final DevCat CASHCHANGER_DEVCAT =
+ JposDevCats.CashChanger.getInstance();
+
+ public static final DevCat CASHDRAWER_DEVCAT =
+ JposDevCats.CashDrawer.getInstance();
+
+ public static final DevCat CHECKSCANNER_DEVCAT =
+ JposDevCats.CheckScanner.getInstance();
+
+ public static final DevCat CAT_DEVCAT =
+ JposDevCats.CAT.getInstance();
+
+ public static final DevCat COINDISPENSER_DEVCAT =
+ JposDevCats.CoinDispenser.getInstance();
+
+ public static final DevCat FISCALPRINTER_DEVCAT =
+ JposDevCats.FiscalPrinter.getInstance();
+
+ public static final DevCat HARDTOTALS_DEVCAT =
+ JposDevCats.HardTotals.getInstance();
+
+ public static final DevCat KEYLOCK_DEVCAT =
+ JposDevCats.Keylock.getInstance();
+
+ public static final DevCat LINEDISPLAY_DEVCAT =
+ JposDevCats.LineDisplay.getInstance();
+
+ public static final DevCat MICR_DEVCAT =
+ JposDevCats.MICR.getInstance();
+
+ public static final DevCat MOTIONSENSOR_DEVCAT =
+ JposDevCats.MotionSensor.getInstance();
+
+ public static final DevCat MSR_DEVCAT =
+ JposDevCats.MSR.getInstance();
+
+ public static final DevCat PINPAD_DEVCAT =
+ JposDevCats.Pinpad.getInstance();
+
+ public static final DevCat POINTCARDRW_DEVCAT =
+ JposDevCats.PointCardRW.getInstance();
+
+ public static final DevCat POSKEYBOARD_DEVCAT =
+ JposDevCats.POSKeyboard.getInstance();
+
+ public static final DevCat POSPOWER_DEVCAT =
+ JposDevCats.POSPower.getInstance();
+
+ public static final DevCat POSPRINTER_DEVCAT =
+ JposDevCats.POSPrinter.getInstance();
+
+ public static final DevCat REMOTEORDERDISPLAY_DEVCAT =
+ JposDevCats.RemoteOrderDisplay.getInstance();
+
+ public static final DevCat SCANNER_DEVCAT =
+ JposDevCats.Scanner.getInstance();
+
+ public static final DevCat SCALE_DEVCAT =
+ JposDevCats.Scale.getInstance();
+
+ public static final DevCat SIGNATURECAPTURE_DEVCAT =
+ JposDevCats.SignatureCapture.getInstance();
+
+ public static final DevCat TONEINDICATOR_DEVCAT =
+ JposDevCats.ToneIndicator.getInstance();
+
+
+ //-------------------------------------------------------------------------
+ // Class constants
+ //
+
+ /** An array of all of the JavaPOS DevCat */
+ public static final DevCat[] DEVCAT_ARRAY =
+ { BUMPBAR_DEVCAT, CASHCHANGER_DEVCAT,
+ CASHDRAWER_DEVCAT, CHECKSCANNER_DEVCAT,
+ CAT_DEVCAT, COINDISPENSER_DEVCAT,
+ FISCALPRINTER_DEVCAT, HARDTOTALS_DEVCAT,
+ KEYLOCK_DEVCAT, LINEDISPLAY_DEVCAT,
+ MICR_DEVCAT, MOTIONSENSOR_DEVCAT,
+ MSR_DEVCAT, PINPAD_DEVCAT,
+ POSKEYBOARD_DEVCAT, POSPOWER_DEVCAT,
+ POSPRINTER_DEVCAT,
+ REMOTEORDERDISPLAY_DEVCAT, SCANNER_DEVCAT,
+ SCALE_DEVCAT, SIGNATURECAPTURE_DEVCAT,
+ TONEINDICATOR_DEVCAT,
+ POINTCARDRW_DEVCAT };
+
+ //-------------------------------------------------------------------------
+ // Static initializer
+ //
+
+ static
+ {
+ DEVCAT_TABLE.put( BUMPBAR_DEVCAT.toString(), BUMPBAR_DEVCAT );
+ DEVCAT_TABLE.put( CASHCHANGER_DEVCAT.toString(), CASHCHANGER_DEVCAT );
+ DEVCAT_TABLE.put( CASHDRAWER_DEVCAT.toString(), CASHDRAWER_DEVCAT );
+ DEVCAT_TABLE.put( CHECKSCANNER_DEVCAT.toString(), CHECKSCANNER_DEVCAT );
+ DEVCAT_TABLE.put( CAT_DEVCAT.toString(), CAT_DEVCAT );
+ DEVCAT_TABLE.put( COINDISPENSER_DEVCAT.toString(),
+ COINDISPENSER_DEVCAT );
+ DEVCAT_TABLE.put( FISCALPRINTER_DEVCAT.toString(),
+ FISCALPRINTER_DEVCAT );
+ DEVCAT_TABLE.put( HARDTOTALS_DEVCAT.toString(), HARDTOTALS_DEVCAT );
+ DEVCAT_TABLE.put( KEYLOCK_DEVCAT.toString(), KEYLOCK_DEVCAT );
+ DEVCAT_TABLE.put( LINEDISPLAY_DEVCAT.toString(), LINEDISPLAY_DEVCAT );
+ DEVCAT_TABLE.put( MICR_DEVCAT.toString(), MICR_DEVCAT );
+ DEVCAT_TABLE.put( MOTIONSENSOR_DEVCAT.toString(), MOTIONSENSOR_DEVCAT );
+ DEVCAT_TABLE.put( MSR_DEVCAT.toString(), MSR_DEVCAT );
+ DEVCAT_TABLE.put( PINPAD_DEVCAT.toString(), PINPAD_DEVCAT );
+ DEVCAT_TABLE.put( POINTCARDRW_DEVCAT.toString(),
+ POINTCARDRW_DEVCAT );
+ DEVCAT_TABLE.put( POSKEYBOARD_DEVCAT.toString(), POSKEYBOARD_DEVCAT );
+ DEVCAT_TABLE.put( POSPOWER_DEVCAT.toString(), POSPOWER_DEVCAT );
+ DEVCAT_TABLE.put( POSPRINTER_DEVCAT.toString(), POSPRINTER_DEVCAT );
+ DEVCAT_TABLE.put( REMOTEORDERDISPLAY_DEVCAT.toString(),
+ REMOTEORDERDISPLAY_DEVCAT );
+ DEVCAT_TABLE.put( SCANNER_DEVCAT.toString(), SCANNER_DEVCAT );
+ DEVCAT_TABLE.put( SCALE_DEVCAT.toString(), SCALE_DEVCAT );
+ DEVCAT_TABLE.put( SIGNATURECAPTURE_DEVCAT.toString(),
+ SIGNATURECAPTURE_DEVCAT );
+ DEVCAT_TABLE.put( TONEINDICATOR_DEVCAT.toString(),
+ TONEINDICATOR_DEVCAT );
+ }
+
+ //-------------------------------------------------------------------------
+ // Class methods
+ //
+
+ /**
+ * @return the DevCat for the String name passed
+ * @param devCatString the String name for this DevCat
+ */
+ public static DevCat getDevCatForName( String devCatName )
+ {
+ if( DEVCAT_TABLE.containsKey( devCatName ) )
+ return (DevCat)DEVCAT_TABLE.get( devCatName );
+
+ return UNKNOWN_DEVCAT;
+ }
+
+ //-------------------------------------------------------------------------
+ // Inner classes
+ //
+
+ /**
+ * Defines the super class for all DevCat
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static abstract class AbstractDevCat extends Object
+ implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Public overriden methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public abstract String toString();
+
+ /**
+ * @return true if these two DevCat are the same JavaPOS device
+ * category
+ * @param obj the other object to compare to
+ */
+ public boolean equals( Object obj )
+ {
+ if( obj == null ) return false;
+
+ if( !( obj instanceof DevCat ) ) return false;
+
+ return toString().equals( obj.toString() );
+ }
+ }
+
+ /**
+ * Defines an Unknown DevCat
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class Unknown extends AbstractDevCat implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ Unknown() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.Unknown();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "Unknown"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor ) {}
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for BumpBar
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien
+ */
+ public static class BumpBar extends AbstractDevCat implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ BumpBar() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.BumpBar();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "BumpBar"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitBumpBar( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for CashChanger
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class CashChanger extends AbstractDevCat implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ CashChanger() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.CashChanger();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "CashChanger"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitCashChanger( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for CashDrawer
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class CashDrawer extends AbstractDevCat implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ CashDrawer() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.CashDrawer();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "CashDrawer"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitCashDrawer( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for CheckScanner
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class CheckScanner extends AbstractDevCat
+ implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ CheckScanner() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.CheckScanner();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "CheckScanner"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitCheckScanner( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for CAT
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class CAT extends AbstractDevCat implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ CAT() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.CAT();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "CAT"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitCAT( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for CoinDispenser
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class CoinDispenser extends AbstractDevCat
+ implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ CoinDispenser() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.CoinDispenser();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "CoinDispenser"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitCoinDispenser( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for FiscalPrinter
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class FiscalPrinter extends AbstractDevCat
+ implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ FiscalPrinter() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.FiscalPrinter();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "FiscalPrinter"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitFiscalPrinter( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for HardTotals
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class HardTotals extends AbstractDevCat implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ HardTotals() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.HardTotals();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "HardTotals"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitHardTotals( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for Keylock
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class Keylock extends AbstractDevCat implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ Keylock() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.Keylock();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "Keylock"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitKeylock( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for LineDisplay
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class LineDisplay extends AbstractDevCat implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ LineDisplay() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.LineDisplay();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "LineDisplay"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitLineDisplay( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for MICR
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class MICR extends AbstractDevCat implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ MICR() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.MICR();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "MICR"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitMICR( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for MotionSensor
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class MotionSensor extends AbstractDevCat
+ implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ MotionSensor() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.MotionSensor();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "MotionSensor"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitMotionSensor( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for MSR
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class MSR extends AbstractDevCat implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ MSR() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.MSR();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "MSR"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitMSR( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for Pinpad
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class Pinpad extends AbstractDevCat implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ Pinpad() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.Pinpad();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "Pinpad"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitPinpad( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for POSKeyboard
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class POSKeyboard extends AbstractDevCat implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ POSKeyboard() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.POSKeyboard();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "POSKeyboard"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitPOSKeyboard( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for POSPower
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class POSPower extends AbstractDevCat implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ POSPower() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.POSPower();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "POSPower"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitPOSPower( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for POSPrinter
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class POSPrinter extends AbstractDevCat implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ POSPrinter() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.POSPrinter();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "POSPrinter"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitPOSPrinter( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for RemoteOrderDisplay
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class RemoteOrderDisplay extends AbstractDevCat
+ implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ RemoteOrderDisplay() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.RemoteOrderDisplay();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "RemoteOrderDisplay"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitRemoteOrderDisplay( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for Scanner
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class Scanner extends AbstractDevCat implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ Scanner() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.Scanner();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "Scanner"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitScanner( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for SignatureCapture
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class SignatureCapture extends AbstractDevCat
+ implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ SignatureCapture() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.SignatureCapture();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "SignatureCapture"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitSignatureCapture( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for Scale
+ * @since 2.1
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class Scale extends AbstractDevCat implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ Scale() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.Scale();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "Scale"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitScale( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for ToneIndicator
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class ToneIndicator extends AbstractDevCat
+ implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ ToneIndicator() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.ToneIndicator();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "ToneIndicator"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitToneIndicator( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+
+ /**
+ * Defines the DevCat for PointCardRW
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ public static class PointCardRW extends AbstractDevCat
+ implements DevCat
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor package to avoid ctor */
+ PointCardRW() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static DevCat getInstance()
+ {
+ if( instance == null )
+ instance = new JposDevCats.PointCardRW();
+
+ return instance;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the String representation of this DevCat */
+ public String toString() { return "PointCardRW"; }
+
+ /**
+ * Accepts a DevCat Visitor object
+ * @param visitor the DevCat Visitor object
+ */
+ public void accept( DevCatVisitor visitor )
+ { visitor.visitPointCardRW( this ); }
+
+ //---------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static DevCat instance = null;
+ }
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/Profile.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/Profile.java
new file mode 100644
index 0000000..07a0a4d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/Profile.java
@@ -0,0 +1,52 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.net.URL;
+
+/**
+ * Defines a Profile which is an abstract definition of a set of JposEntry
+ * objects and each entry's required set of properties
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface Profile
+{
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the unique name of this profile */
+ public String getName();
+
+ /** @return the version of this profile */
+ public String getVersion();
+
+ /** @return a String description of this profile */
+ public String getDescription();
+
+ /** @return the vendor name of this profile */
+ public String getVendorName();
+
+ /** @return the URL for this vendor */
+ public URL getVendorUrl();
+
+ /** @return the list of DevCatInfo for this profile */
+ public DevCatInfoList getDevCatInfoList();
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/ProfileConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/ProfileConst.java
new file mode 100644
index 0000000..62bd765
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/ProfileConst.java
@@ -0,0 +1,41 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Defines constants used for the jpos.profile package
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface ProfileConst
+{
+ //-------------------------------------------------------------------------
+ // Public class constants
+ //
+
+ public static final PropType STRING_PROP_TYPE = StringPropType.getInstance();
+ public static final PropType INTEGER_PROP_TYPE = IntegerPropType.getInstance();
+ public static final PropType FLOAT_PROP_TYPE = FloatPropType.getInstance();
+ public static final PropType BOOLEAN_PROP_TYPE = BooleanPropType.getInstance();
+ public static final PropType CHARACTER_PROP_TYPE = CharacterPropType.getInstance();
+
+ public static final PropType[] PROPTYPE_ARRAY = { STRING_PROP_TYPE, INTEGER_PROP_TYPE, FLOAT_PROP_TYPE,
+ BOOLEAN_PROP_TYPE, CHARACTER_PROP_TYPE };
+
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/ProfileException.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/ProfileException.java
new file mode 100644
index 0000000..3aeb1bf
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/ProfileException.java
@@ -0,0 +1,57 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Defines an exception class for the jpos.profile sub-system
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class ProfileException extends Exception
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /**
+ * 1-arg ctor
+ * @param msg the exception's message
+ */
+ public ProfileException( String msg ) { super( msg ); }
+
+ /**
+ * 2 args ctor
+ * @param msg the exception's message
+ * @param origException the original exception causing this one
+ */
+ public ProfileException( String msg, Exception e ) { this( msg ); origException = e; }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the original exception causing this one */
+ public Exception getOrigException() { return origException; }
+
+ //-------------------------------------------------------------------------
+ // Private instance variables
+ //
+
+ private Exception origException = null;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/ProfileFactory.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/ProfileFactory.java
new file mode 100644
index 0000000..a3c8266
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/ProfileFactory.java
@@ -0,0 +1,35 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Defines an interface for creating Profile objects
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface ProfileFactory
+{
+ /**
+ * @return a Profile object created parsing the XML file provided
+ * @param xmlProfileFile the XML profile file
+ * @exception jpos.profile.ProfileException if there is an error loading the profile
+ * @since 1.3 (SF 2K meeting)
+ */
+ public Profile createProfile( String xmlProfileFileName ) throws ProfileException;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/ProfileRegistry.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/ProfileRegistry.java
new file mode 100644
index 0000000..47d6a49
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/ProfileRegistry.java
@@ -0,0 +1,81 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.util.Enumeration;
+
+/**
+ * Defines a registry for aggregating Profile objects
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface ProfileRegistry
+{
+ /** @return the size of the registry */
+ public int getSize();
+
+ /** @return true if the registry is empty or not */
+ public boolean isEmpty();
+
+ /**
+ * @return true if there is an Profile with the specified logical name
+ * @param profileName the unique name of this profile
+ */
+ public boolean hasProfile( String profileName );
+
+ /**
+ * @return true if there is an Profile with the specified logical name
+ * @param profile the profile
+ */
+ public boolean hasProfile( Profile profile );
+
+ /** @return an enumeration of Profile objects */
+ public Enumeration getProfiles();
+
+ /**
+ * @return the Profile for the profileName specified
+ * @param profileName the unique name of this profile
+ */
+ public Profile getProfile( String profileName );
+
+ /**
+ * Add an Profile for the service with logical name specified
+ * @param profile the profile
+ */
+ public void addProfile( Profile profile );
+
+ /**
+ * Add an Profile for the service with logical name specified
+ * @param profileName the unique name of this profile
+ * @param profile the profile
+ */
+ public void addProfile( String profileName, Profile profile );
+
+ /**
+ * Removes the specified Profile
+ * @param profile the profile to remove
+ */
+ public void removeProfile( Profile profile );
+
+ /**
+ * Removes the Profile with the profileName specified
+ * @param profileName the unique name of this profile
+ */
+ public void removeProfile( String profileName );
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/PropInfo.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/PropInfo.java
new file mode 100644
index 0000000..00e8441
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/PropInfo.java
@@ -0,0 +1,59 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Defines a JposEntry property info which is a set of properties information
+ * for a JposEntry
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface PropInfo
+{
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the name of this property */
+ public String getName();
+
+ /** @return the type of this property */
+ public PropType getType();
+
+ /** @return the default value for this property */
+ public PropValue getDefaultValue();
+
+ /** @return the list of possible values for this property */
+ public PropValueList getValues();
+
+ /** @return the DevCat that this property can be applied to */
+ public DevCat getDevCat();
+
+ /** @return the PropInfoViewer for this property */
+ public PropInfoViewer getViewer();
+
+ /** @return the Profile associated with this PropInfo */
+ public Profile getProfile();
+
+ /** @return a description of this PropInfo (this can be HTML formated) */
+ public String getDescription();
+
+ /** @return a short description of this PropInfo (this can be HTML formated) */
+ public String getShortDescription();
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/PropInfoList.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/PropInfoList.java
new file mode 100644
index 0000000..efc788f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/PropInfoList.java
@@ -0,0 +1,75 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Defines a simple list of PropInfo objects
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface PropInfoList
+{
+ /** @return the current size of this list */
+ public int getSize();
+
+ /** @return true if this list is empty */
+ public boolean isEmpty();
+
+ /**
+ * Adds a new PropInfo to this list
+ * @param propInfo the propInfo to add
+ */
+ public void add( PropInfo propInfo );
+
+ /**
+ * Removes the PropInfo to this list
+ * @param propInfo the propInfo to remove
+ */
+ public void remove( PropInfo propInfo );
+
+ /** Removes all PropInfo in this list */
+ public void removeAll();
+
+ /**
+ * @return true if the PropInfo is already in the list
+ * @param propInfo the propInfo
+ */
+ public boolean contains( PropInfo propInfo );
+
+ /** @return an PropInfoList.Iterator object for this list */
+ public PropInfoList.Iterator iterator();
+
+ //-------------------------------------------------------------------------
+ // Inner interfaces
+ //
+
+ /**
+ * Simple interface to iterate through the list
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ * @since 1.3 (SF 2K meeting)
+ */
+ public interface Iterator
+ {
+ /** @return the next PropInfo in the iterator */
+ public PropInfo next();
+
+ /** @return true if there is a next PropInfo in the iterator */
+ public boolean hasNext();
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/PropInfoViewer.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/PropInfoViewer.java
new file mode 100644
index 0000000..d1120b7
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/PropInfoViewer.java
@@ -0,0 +1,28 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Defines a property viewer
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface PropInfoViewer
+{
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/PropType.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/PropType.java
new file mode 100644
index 0000000..1f7c285
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/PropType.java
@@ -0,0 +1,48 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Defines a property type
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface PropType
+{
+ /** @return a String representation of this PropType */
+ public String toString();
+
+ /** @return a String description of this PropType (can be HTML text) */
+ public String getDescription();
+
+ /** @return a Java class that defines this type */
+ public Class getJavaTypeClass();
+
+ /**
+ * @return true if the object passed is of this PropType
+ * @param obj the Java Object
+ */
+ public boolean isValidValue( Object obj );
+
+ /**
+ * @return true if the PropValue passed is of this PropType
+ * @param propValue the PropValue
+ */
+ public boolean isValidValue( PropValue obj );
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/PropValue.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/PropValue.java
new file mode 100644
index 0000000..364b715
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/PropValue.java
@@ -0,0 +1,42 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Defines a property value
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface PropValue
+{
+ /** @return the Java object that this value represents */
+ public Object getValue();
+
+ /** @return a String representation of this value */
+ public String toString();
+
+ /** @return the PropType for this PropValue */
+ public PropType getType();
+
+ /**
+ * @return true if this and the other value are equal
+ * @param other the other PropValue
+ */
+ public boolean equals( Object propValue );
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/PropValueList.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/PropValueList.java
new file mode 100644
index 0000000..fbf954e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/PropValueList.java
@@ -0,0 +1,75 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Defines a simple list of PropValue objects
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface PropValueList
+{
+ /** @return the current size of this list */
+ public int getSize();
+
+ /** @return true if this list is empty */
+ public boolean isEmpty();
+
+ /**
+ * Adds a new PropValue to this list
+ * @param propValue the propValue to add
+ */
+ public void add( PropValue propValue );
+
+ /**
+ * Removes the PropValue to this list
+ * @param propValue the propValue to remove
+ */
+ public void remove( PropValue propValue );
+
+ /** Removes all PropValue in this list */
+ public void removeAll();
+
+ /**
+ * @return true if the PropValue is already in the list
+ * @param propValue the PropValue
+ */
+ public boolean contains( PropValue propValue );
+
+ /** @return an PropValueList.Iterator object for this list */
+ public PropValueList.Iterator iterator();
+
+ //-------------------------------------------------------------------------
+ // Inner interfaces
+ //
+
+ /**
+ * Simple interface to iterate through the list
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ * @since 1.3 (SF 2K meeting)
+ */
+ public interface Iterator
+ {
+ /** @return the next PropValue in the iterator */
+ public PropValue next();
+
+ /** @return true if there is a next PropValue in the iterator */
+ public boolean hasNext();
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/StringPropType.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/StringPropType.java
new file mode 100644
index 0000000..d3c8987
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/StringPropType.java
@@ -0,0 +1,83 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.io.Serializable;
+
+/**
+ * Defines a String property type
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class StringPropType extends AbstractPropType implements PropType, Serializable
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Default ctor */
+ StringPropType() {}
+
+ //---------------------------------------------------------------------
+ // Class methods
+ //
+
+ /** @return the unique instance of this class (create if necessary) */
+ public static PropType getInstance()
+ {
+ if( instance == null )
+ instance = new StringPropType();
+
+ return instance;
+ }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return a String representation of this PropType */
+ public String toString() { return "StringPropType"; }
+
+ /** @return a Java class that defines this type */
+ public Class getJavaTypeClass() { return "".getClass(); }
+
+ /**
+ * @return true if the object passed is of this PropType
+ * @param s the String object
+ */
+ public boolean isValidValue( String s ) { return ( s != null ); }
+
+ /**
+ * @return true if the object passed is of this PropType
+ * @param obj the Java Object
+ */
+ public boolean isValidValue( Object obj ) { return ( obj instanceof String ); }
+
+ /**
+ * @return true if the PropValue passed is of this PropType
+ * @param propValue the PropValue
+ */
+ public boolean isValidValue( PropValue propValue ) { return isValidValue( propValue.getValue() ); }
+
+ //-------------------------------------------------------------------------
+ // Class instance
+ //
+
+ private static PropType instance = null;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/profile/XercesProfileFactory.java b/org.eclipse.osbp.fork.jpos/src/jpos/profile/XercesProfileFactory.java
new file mode 100644
index 0000000..dd57a45
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/profile/XercesProfileFactory.java
@@ -0,0 +1,293 @@
+package jpos.profile;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.io.*;
+import java.util.*;
+import java.net.URL;
+import java.net.MalformedURLException;
+
+import javax.xml.parsers.*;
+
+import org.w3c.dom.*;
+import org.apache.xerces.parsers.DOMParser;
+import org.xml.sax.*;
+
+import jpos.util.XmlHelper;
+import jpos.util.tracing.Tracer;
+import jpos.util.tracing.TracerFactory;
+
+/**
+ * Default implementation of the ProfileFactory interface uses the Apache Xerces
+ * XML parser to create profiles from the XML file passed
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class XercesProfileFactory extends Object implements ProfileFactory
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Default ctor */
+ public XercesProfileFactory() {}
+
+ //-------------------------------------------------------------------------
+ // Private methods
+ //
+
+ /**
+ * @return a Profile object created from the Document object
+ * @param document the XML document object
+ * @exception jpos.profile.ProfileException if document is not in correct
+ * format
+ */
+ private Profile extractProfile( Document document ) throws ProfileException
+ {
+ Element profileElement = document.getDocumentElement();
+
+ String name = profileElement.getAttribute( "name" );
+ DefaultProfile profile = new DefaultProfile( name );
+
+ NodeList nodeList = profileElement.getElementsByTagName( "ProfileInfo" );
+
+ if( nodeList.getLength() != 1 )
+ throw new ProfileException( "Profile does not contain 1 ProfileInfo element" );
+
+ Element profileInfoElement = (Element)nodeList.item( 0 );
+
+ profile.setVersion( profileInfoElement.getAttribute( "version" ) );
+ profile.setVendorName( profileInfoElement.getAttribute( "vendorName" ) );
+
+ try
+ {
+ String vendorUrlString = profileInfoElement.getAttribute( "vendorUrl" );
+ profile.setVendorUrl( new URL( vendorUrlString ) );
+ }
+ catch( MalformedURLException e )
+ { throw new ProfileException( "ProfileInfo contains an invalid vendorUrl string" ); }
+
+ profile.setDescription( profileInfoElement.getAttribute( "description" ) );
+
+ return profile;
+ }
+
+ //-------------------------------------------------------------------------
+ // Package methods
+ //
+
+ /**
+ * Parses the XML file into a valid XML document for the profile DTD
+ * @param xmlFileName the XML file name
+ * @exception jpos.profile.ProfileException if the XML file could not be parsed
+ */
+ Document parse( String xmlFileName ) throws ProfileException
+ {
+ XmlHelper xmlHelper = new XmlHelper();
+
+ try
+ {
+ xmlHelper.setDtdFileName( PROFILE_DTD_FILE_NAME );
+ xmlHelper.setDtdFilePath( PROFILE_DTD_FILE_PATH );
+ xmlHelper.checkAndCreateTempDtd();
+
+ DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
+ docFactory.setNamespaceAware( true );
+ docFactory.setValidating( true );
+
+ DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
+
+ DefaultErrorHandler errorHandler = this.new DefaultErrorHandler();
+ docBuilder.setErrorHandler( errorHandler );
+
+ Document document = docBuilder.parse( new File( xmlFileName ) );
+
+ if( errorHandler.getErrorList().size() > 0 ||
+ errorHandler.getFatalErrorList().size() > 0 )
+ {
+ String msg = "Error while parsing XML file, set properties"+
+ " jpos.tracing = ON in jpos.properties" +
+ " file for details";
+ throw new ProfileException( msg );
+ }
+
+ return document;
+ }
+ catch( IOException ioe )
+ {
+ String msg = "Error loading XML profile file";
+ tracer.println( msg + ": Exception.message = " + ioe.getMessage() );
+ throw new ProfileException( msg, ioe );
+ }
+ catch( SAXException se )
+ {
+ String msg = "Error parsing XML profile file";
+ tracer.println( msg + ": Exception.message = " + se.getMessage() );
+ throw new ProfileException( msg, se );
+ }
+ catch( ParserConfigurationException pce )
+ {
+ String msg = "Error creating XML parser";
+ tracer.println( msg + ": Exception.message = " + pce.getMessage() );
+ throw new ProfileException( msg, pce );
+ }
+ finally
+ { xmlHelper.removeTempDtd(); }
+ }
+
+ /**
+ * Parses the XML file into a valid XML document for the profile Schemas
+ * @param xmlFileName the XML file name
+ * @exception jpos.profile.ProfileException if the XML file could not be parsed
+ */
+ Document parseSchema( String xmlFileName ) throws ProfileException
+ {
+ try
+ {
+ DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
+ docFactory.setNamespaceAware( true );
+ docFactory.setValidating( true );
+
+ DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
+
+ DefaultErrorHandler errorHandler = this.new DefaultErrorHandler();
+ docBuilder.setErrorHandler( errorHandler );
+
+ Document document = docBuilder.parse( new File( xmlFileName ) );
+
+ return document;
+ }
+ catch( IOException ioe )
+ {
+ String msg = "Error loading XML profile file";
+ tracer.println( msg + ": Excpetion.message = " + ioe.getMessage() );
+ throw new ProfileException( msg, ioe );
+ }
+ catch( SAXException se )
+ {
+ String msg = "Error parsing XML profile file";
+ tracer.println( msg + ": Exception.message = " + se.getMessage() );
+
+ throw new ProfileException( msg, se );
+ }
+ catch( ParserConfigurationException pce )
+ {
+ String msg = "Error creating XML parser";
+ tracer.println( msg + ": Exception.message = " + pce.getMessage() );
+ throw new ProfileException( msg, pce );
+ }
+ }
+
+ /**
+ * Loads the Profile specified in the xmlFileName as a Profile object
+ * @param xmlFileName the XML file name
+ * @exception jpos.profile.ProfileException if the XML file could not be
+ * parsed and the profile created
+ */
+ Profile load( String xmlFileName ) throws ProfileException
+ {
+ Document document = parse( xmlFileName );
+
+ return extractProfile( document );
+ }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /**
+ * @return a Profile object created parsing the XML file provided
+ * @param xmlProfileFile the XML profile file
+ * @exception jpos.profile.ProfileException if there is an error loading the profile
+ */
+ public Profile createProfile( String xmlProfileFileName ) throws ProfileException
+ {
+ return load( xmlProfileFileName );
+ }
+
+ //-------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private Profile profile = null;
+
+ private DOMParser domParser = new DOMParser();
+ private DefaultErrorHandler errorHandler = this.new DefaultErrorHandler();
+ private Tracer tracer = TracerFactory.getInstance().
+ createTracer( "XercesProfileFactory" );
+
+ //-------------------------------------------------------------------------
+ // Inner classes
+ //
+
+ /**
+ * ErrorHandler inner class used to capture errors while parsing XML document
+ * @since 1.3 (Washington DC 2001 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ class DefaultErrorHandler extends Object implements org.xml.sax.ErrorHandler
+ {
+ //---------------------------------------------------------------------
+ // Package methods
+ //
+
+ List getErrorList() { return errorList; }
+
+ List getWarningList() { return warningList; }
+
+ List getFatalErrorList() { return fatalErrorList; }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ public void warning( SAXParseException e ) throws SAXException
+ {
+ tracer.println( "Line " + e.getLineNumber() + ": WARNING SAXParseException.message = " + e.getMessage() );
+ warningList.add( e );
+ }
+
+ public void error( SAXParseException e ) throws SAXException
+ {
+ tracer.println( "Line " + e.getLineNumber() + ": ERROR SAXParseException.message = " + e.getMessage() );
+ errorList.add( e );
+ }
+
+ public void fatalError( SAXParseException e ) throws SAXException
+ {
+ tracer.println( "Line " + e.getLineNumber() + ": FATALERROR SAXParseException.message = " + e.getMessage() );
+ fatalErrorList.add( e );
+ }
+
+ //---------------------------------------------------------------------
+ // Private variables
+ //
+
+ private List warningList = new ArrayList();
+ private List errorList = new ArrayList();
+ private List fatalErrorList = new ArrayList();
+ }
+
+ //-------------------------------------------------------------------------
+ // Class constants
+ //
+
+ public static final String PROFILE_DTD_FILE_NAME = "jcl_profile.dtd";
+ public static final String PROFILE_DTD_FILE_PATH = "jpos" + File.separator + "res" + File.separator;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/about_icon.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/about_icon.gif
new file mode 100644
index 0000000..04da95e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/about_icon.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/addentry_icon.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/addentry_icon.gif
new file mode 100644
index 0000000..0fc47e1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/addentry_icon.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/bumpbar.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/bumpbar.gif
new file mode 100644
index 0000000..90eb06b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/bumpbar.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/cashchanger.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/cashchanger.gif
new file mode 100644
index 0000000..90eb06b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/cashchanger.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/cashdrawer.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/cashdrawer.gif
new file mode 100644
index 0000000..09df423
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/cashdrawer.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/closefile_icon.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/closefile_icon.gif
new file mode 100644
index 0000000..064202b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/closefile_icon.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/coindispenser.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/coindispenser.gif
new file mode 100644
index 0000000..90eb06b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/coindispenser.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/config_icon.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/config_icon.gif
new file mode 100644
index 0000000..32b77ee
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/config_icon.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/copyentry_icon.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/copyentry_icon.gif
new file mode 100644
index 0000000..fa98681
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/copyentry_icon.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/deleteentry_icon.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/deleteentry_icon.gif
new file mode 100644
index 0000000..d9d1a33
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/deleteentry_icon.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/fiscalprinter.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/fiscalprinter.gif
new file mode 100644
index 0000000..90eb06b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/fiscalprinter.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/hardtotals.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/hardtotals.gif
new file mode 100644
index 0000000..50e526d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/hardtotals.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/keylock.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/keylock.gif
new file mode 100644
index 0000000..66abee8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/keylock.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/linedisplay.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/linedisplay.gif
new file mode 100644
index 0000000..37b93fb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/linedisplay.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/localmachine.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/localmachine.gif
new file mode 100644
index 0000000..0004818
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/localmachine.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/micr.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/micr.gif
new file mode 100644
index 0000000..220a180
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/micr.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/modifyentry_icon.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/modifyentry_icon.gif
new file mode 100644
index 0000000..f56a27e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/modifyentry_icon.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/msr.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/msr.gif
new file mode 100644
index 0000000..4c56acc
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/msr.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/newfile_icon.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/newfile_icon.gif
new file mode 100644
index 0000000..3513dfd
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/newfile_icon.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/openfile_icon.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/openfile_icon.gif
new file mode 100644
index 0000000..fabd567
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/openfile_icon.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/pinpad.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/pinpad.gif
new file mode 100644
index 0000000..90eb06b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/pinpad.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/poskeyboard.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/poskeyboard.gif
new file mode 100644
index 0000000..8cb89cb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/poskeyboard.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/posprinter.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/posprinter.gif
new file mode 100644
index 0000000..2ceb675
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/posprinter.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/remoteorderdisplay.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/remoteorderdisplay.gif
new file mode 100644
index 0000000..90eb06b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/remoteorderdisplay.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/saveas_icon.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/saveas_icon.gif
new file mode 100644
index 0000000..8d3929c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/saveas_icon.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/savefile_icon.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/savefile_icon.gif
new file mode 100644
index 0000000..954f1ac
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/savefile_icon.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/scale.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/scale.gif
new file mode 100644
index 0000000..90eb06b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/scale.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/scanner.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/scanner.gif
new file mode 100644
index 0000000..90eb06b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/scanner.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/signaturecapture.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/signaturecapture.gif
new file mode 100644
index 0000000..90eb06b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/signaturecapture.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/toneindicator.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/toneindicator.gif
new file mode 100644
index 0000000..8092f42
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/toneindicator.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/images/unknown.gif b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/unknown.gif
new file mode 100644
index 0000000..90eb06b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/images/unknown.gif
Binary files differ
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/jcl.dtd b/org.eclipse.osbp.fork.jpos/src/jpos/res/jcl.dtd
new file mode 100644
index 0000000..ce6c4a8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/jcl.dtd
@@ -0,0 +1,62 @@
+<?xml encoding="UTF-8"?>
+
+<!-- Revision: 1 2.0.0 http://www.nrf-arts.com/JavaPOS/JCL/jcl.dtd, docs, xml4j2, xml4j2_0_13 -->
+
+<!--
+ This is the DTD for all JCL (JavaPOS Config/Loader) entries. It defines
+ the content necessary for all JCL entries in their XML file. Please see the
+ example XML files in the release as well as the JCL documentation for details
+ on how to create your own XML files that are valid for this DTD. You may also
+ use the JCL editor to create these files, as long as the JCL instalation is
+ setup for XML (instead of serialized or CFG).
+ @author E. Michael Maximilien (maxim@us.ibm.com)
+ @since 1.2
+-->
+
+<!ELEMENT JposEntries (JposEntry)*>
+
+<!ELEMENT JposEntry (creation, vendor, jpos, product, prop+)>
+<!ATTLIST JposEntry logicalName CDATA #REQUIRED>
+
+<!ELEMENT creation (#PCDATA)>
+<!ELEMENT vendor (#PCDATA)>
+<!ELEMENT jpos (#PCDATA)>
+<!ELEMENT product (#PCDATA)>
+<!ELEMENT prop (#PCDATA)>
+
+<!ATTLIST creation
+ factoryClass CDATA #REQUIRED
+ serviceClass CDATA #REQUIRED>
+
+<!ATTLIST vendor
+ name CDATA #REQUIRED
+ url CDATA #IMPLIED>
+
+<!ATTLIST jpos
+ version CDATA #REQUIRED
+ category ( BumpBar | CashChanger | CashDrawer | CoinDispenser | FiscalPrinter |
+ HardTotals | Keylock | RemoteOrderDisplay | Scale | Scanner | SignatureCapture |
+ ToneIndicator | LineDisplay | MICR | MSR | PinPad | POSKeyboard |
+ POSPrinter ) #REQUIRED>
+
+<!ATTLIST product
+ name CDATA #REQUIRED
+ description CDATA #REQUIRED
+ url CDATA #IMPLIED>
+
+<!-- NOTE on the type attribute.
+ This was added after the first release and therefore to maintain
+ compatibility, it is defined as #IMPLIED so that it does not need
+ to be specified and the default type for attributes with no type
+ is String. for instance:
+ <prop name="propName" value="1234"/>
+ is of type String and the "1234" value is kept as a String in the
+ JposEntry. If you want the "1234" to be converted to an integer
+ for instance then you must use the type attribute as follow:
+ <prop name="propName" value="1234" type="Integer"/>
+-->
+<!ATTLIST prop
+ name CDATA #REQUIRED
+ value CDATA #REQUIRED
+ type ( String | Boolean | Byte | Character | Double | Float |
+ Integer | Long | Short ) #IMPLIED>
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/jcl.xsd b/org.eclipse.osbp.fork.jpos/src/jpos/res/jcl.xsd
new file mode 100644
index 0000000..9a520c6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/jcl.xsd
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+<!--
+ targetNamespace="http://www.javapos.com/2002/jcl">
+ xmlns="http://www.javapos.com/2002/jcl">
+-->
+
+ <!-- Root JposEntries xsd:element definition -->
+ <xsd:complexType name="JposEntriesType">
+ <xsd:sequence>
+ <xsd:element name="JposEntry" type="JposEntryType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+
+ <xsd:element name="JposEntries" type="JposEntriesType"/>
+
+ <!-- All other xsd:complexType definitions -->
+ <xsd:complexType name="JposEntryType">
+ <xsd:sequence>
+ <xsd:element name="creation" type="CreationType" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="vendor" type="VendorType" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="jpos" type="JposType" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="product" type="ProductType" minOccurs="1" maxOccurs="1"/>
+ <xsd:element name="prop" type="PropType" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ <xsd:attribute name="logicalName" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="CreationType">
+ <xsd:attribute name="factoryClass" type="xsd:string" use="required"/>
+ <xsd:attribute name="serviceClass" type="xsd:string" use="required"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="VendorType">
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="url" type="xsd:anyURI" use="required"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="JposType">
+ <xsd:attribute name="category" type="JposDevCatType" use="required"/>
+ <xsd:attribute name="version" type="VersionType" use="required"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="ProductType">
+ <xsd:attribute name="description" type="xsd:string" use="required"/>
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="url" type="xsd:anyURI" use="required"/>
+ </xsd:complexType>
+
+ <xsd:complexType name="PropType">
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="value" type="xsd:string" use="required"/>
+ <xsd:attribute name="type" type="PropTypeType" use="optional"/>
+ </xsd:complexType>
+
+ <!-- All xsd:simpleType definitions -->
+ <xsd:simpleType name="JposDevCatType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="BumpBar"/>
+ <xsd:enumeration value="CashChanger"/>
+ <xsd:enumeration value="CashDrawer"/>
+ <xsd:enumeration value="CheckScanner"/>
+ <xsd:enumeration value="CAT"/>
+ <xsd:enumeration value="CoinDispenser"/>
+ <xsd:enumeration value="FiscalPrinter"/>
+ <xsd:enumeration value="HardTotals"/>
+ <xsd:enumeration value="Keylock"/>
+ <xsd:enumeration value="LineDisplay"/>
+ <xsd:enumeration value="MICR"/>
+ <xsd:enumeration value="MotionSensor"/>
+ <xsd:enumeration value="MSR"/>
+ <xsd:enumeration value="PINPad"/>
+ <xsd:enumeration value="PointCardRW"/>
+ <xsd:enumeration value="POSKeyboard"/>
+ <xsd:enumeration value="POSPower"/>
+ <xsd:enumeration value="POSPrinter"/>
+ <xsd:enumeration value="RemoteOrderDisplay"/>
+ <xsd:enumeration value="Scale"/>
+ <xsd:enumeration value="Scanner"/>
+ <xsd:enumeration value="SignatureCapture"/>
+ <xsd:enumeration value="ToneIndicator"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="PropTypeType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="String"/>
+ <xsd:enumeration value="Boolean"/>
+ <xsd:enumeration value="Character"/>
+ <xsd:enumeration value="Integer"/>
+ <xsd:enumeration value="Long"/>
+ <xsd:enumeration value="Byte"/>
+ <xsd:enumeration value="Short"/>
+ <xsd:enumeration value="Double"/>
+ <xsd:enumeration value="Float"/>
+ <xsd:enumeration value="URI"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+
+ <xsd:simpleType name="VersionType">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="1.4a"/>
+ <xsd:enumeration value="1.5"/>
+ <xsd:enumeration value="1.6"/>
+ <xsd:enumeration value="1.7"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+</xsd:schema>
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/jcl_profile.dtd b/org.eclipse.osbp.fork.jpos/src/jpos/res/jcl_profile.dtd
new file mode 100644
index 0000000..290bc01
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/jcl_profile.dtd
@@ -0,0 +1,51 @@
+<?xml encoding="UTF-8"?>
+
+<!-- Revision: 0 1.5 http://www.nrf-arts.com/JavaPOS/JCL/jcl_profile.dtd, docs, xerces, xerces1_1_1 -->
+
+<!ELEMENT Profile (ProfileInfo, JposEntryInfo*)>
+
+<!ELEMENT ProfileInfo EMPTY>
+
+<!ELEMENT JposEntryInfo (StandardProp*, RequiredProp*, OptionalProp*)>
+
+<!ELEMENT StandardProp (PropInfo)*>
+<!ELEMENT RequiredProp (PropInfo)*>
+<!ELEMENT OptionalProp (PropInfo)*>
+
+<!ELEMENT PropInfo (Tooltip?, PropValue+, PropViewer?)>
+<!ELEMENT PropValue (Tooltip?, Value+)>
+<!ELEMENT PropViewer (#PCDATA)>
+<!ELEMENT Tooltip (#PCDATA)>
+<!ELEMENT Value (#PCDATA)>
+
+<!ATTLIST Profile
+ name CDATA #REQUIRED>
+
+<!ATTLIST ProfileInfo
+ version CDATA #REQUIRED
+ vendorName CDATA #REQUIRED
+ vendorUrl CDATA #REQUIRED
+ description CDATA #IMPLIED>
+
+<!ATTLIST JposEntryInfo
+ name CDATA #REQUIRED
+ jposVersion CDATA #REQUIRED
+ deviceCategory ( BumpBar | CashChanger | CashDrawer | CAT | CoinDispenser | FiscalPrinter |
+ HardTotals | Keylock | RemoteOrderDisplay | Scale | Scanner | SignatureCapture |
+ ToneIndicator | LineDisplay | MICR | MSR | PinPad | POSKeyboard |
+ POSPrinter | PointCardReaderWriter ) #REQUIRED
+ imageFile CDATA #IMPLIED>
+
+<!ATTLIST PropInfo
+ name CDATA #REQUIRED>
+
+<!ATTLIST PropValue
+ type ( booleanValue | stringValue | integerValue | charValue | listValue ) #REQUIRED
+ choice ( one | multiple | fixed ) #IMPLIED
+ default CDATA #IMPLIED>
+
+<!ATTLIST PropViewer
+ className CDATA #REQUIRED
+ tooltip CDATA #IMPLIED
+ propValueType ( booleanValue | stringValue | integerValue |
+ charValue | listValue ) #REQUIRED>
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/res/jpos.properties b/org.eclipse.osbp.fork.jpos/src/jpos/res/jpos.properties
new file mode 100644
index 0000000..c359b9d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/res/jpos.properties
@@ -0,0 +1,97 @@
+#------------------------------------------------------------------------------
+# JposTestCase.createPropFile() --> ./jpos/res/jpos.properties file
+# Thu Jul 05 11:37:25 EDT 2001
+# adjusted to local needs
+#------------------------------------------------------------------------------
+
+#------------------------------------------------------------------------------
+# Required properties
+# -------------------
+# 1) jpos.loader.serviceManagerClass
+#
+# This property specifies the manager bootstrap class for the whole JCL. Use
+# this property to replace the default "simple" JCL implementation with your
+# own. The value must be a fully qualified class name that implements the
+# interface jpos.loader.JposServiceManager
+#
+# 2) jpos.config.regPopulatorClass
+#
+# This property specifies the registry populator class---that populates the
+# entry registry. It must be a fully qualified class name that implements
+# the jpos.config.JposRegPopulator interface. If you want to specify
+# multiple populators then you should instead use the:
+# jpos.config.populator.class.<n>
+# property---defined below---that allows you to specify many populators
+# There are 3 populators that are provided with the JCL by default:
+# a) jpos.config.simple.SimpleRegPopulator
+# This populator loads/saves JposEntry objects as serialized objects in
+# a Java serialized file, typically named: jpos.cfg
+# b) jpos.config.simple.xml.XercesRegPopulator
+# This populator uses Xerces and implements an XML parser according to
+# the jpos/res/jcl.dtd. By default, the XML file must be named jpos.xml
+# However, this named can be changed using the property (see below):
+# jpos.config.populator.file.<n>
+# c) jpos.config.simple.xml.Xerces2RegPopulator
+# This populator uses Xerces2 and implements an XML parser according to
+# the jpos/res/jcl.xsd XML schema. The file name is same as above; however,
+# since this parser expects an XML schema, the XML file header is different.
+# See the jpos-schema.xml file.
+#
+# NOTE: Xerces and Xerces2 are XML parsers from the http://www.apache.org
+# Jakarta projects.
+#------------------------------------------------------------------------------
+
+jpos.loader.serviceManagerClass=jpos.loader.simple.SimpleServiceManager
+
+#jpos.config.regPopulatorClass=jpos.config.simple.SimpleRegPopulator
+jpos.config.regPopulatorClass=jpos.config.simple.xml.SimpleXmlRegPopulator
+#jpos.config.regPopulatorClass=jpos.config.simple.xml.Xerces2RegPopulator
+
+#------------------------------------------------------------------------------
+# Use this property to for the JCL to load a specific file (cfg or XML)
+# when not using multiple populators via the jpos.config.populator.class.<n>
+# multi-property
+#------------------------------------------------------------------------------
+
+#jpos.config.populatorFile=jpos1.cfg
+jpos.config.populatorFile=C\:\\Program Files\\epson\\JavaPOS\\SetupPOS\\myprinter.xml
+
+#------------------------------------------------------------------------------
+# To define multiple populator then comment the property
+# "jpos.config.regPopulatorClass"
+# and use the following multiproperty properties (defines 2 populators one
+# XML and one serialized)
+#------------------------------------------------------------------------------
+
+#jpos.config.populator.class.0=jpos.config.simple.xml.SimpleXmlRegPopulator
+#jpos.config.populator.class.1=jpos.config.simple.SimpleRegPopulator
+
+#------------------------------------------------------------------------------
+# You can also define populator files for each populator as follows
+#------------------------------------------------------------------------------
+
+#jpos.config.populator.file.0=jpos0.xml
+#jpos.config.populator.file.1=jpos1.cfg
+
+#------------------------------------------------------------------------------
+# Tracing properties
+# ------------------
+# All tracing properties that are boolean attributes can be turned on of
+# off using ON/on/TRUE/true or OFF/false for any other value.
+# The available properties are (see commented properties below):
+# 1) jpos.tracing
+# This is a legacy property and will turn the global tracer on. You should
+# note that it is preferable to use the named tracing property instead
+# 2) jpos.util.tracing.TurnOnAllNamedTracers
+# This property when turned on will enable all named tracers. A named tracer
+# will print out a message prepended by [<name>] where <name> is the name of
+# the tracer in question.
+# 3) jpos.util.tracing.TurnOnNamedTracers = name1, name2, ...
+# This will turn on the named tracers listed as name1, name2, ... this is
+# useful if when all named tracers are on you want to filter the output
+#------------------------------------------------------------------------------
+
+#jpos.tracing=ON
+#jpos.util.tracing.TurnOnNamedTracers=XercesRegPopulator, AbstractRegPopulator, MainFrame
+#jpos.util.tracing.TurnOnNamedTracers=JposServiceLoader,SimpleEntryRegistry,SimpleRegPopulator,XercesRegPopulator
+#jpos.util.tracing.TurnOnAllNamedTracers=OFF
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BaseService.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BaseService.java
new file mode 100644
index 0000000..aeea3dc
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BaseService.java
@@ -0,0 +1,53 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BaseService
+//
+// Interface definining all capabilities, properties and methods
+// that are common to all JavaPOS device services.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BaseService
+{
+ // Properties
+ public String getCheckHealthText() throws JposException;
+ public boolean getClaimed() throws JposException;
+ public boolean getDeviceEnabled() throws JposException;
+ public void setDeviceEnabled(boolean deviceEnabled)
+ throws JposException;
+ public String getDeviceServiceDescription() throws JposException;
+ public int getDeviceServiceVersion() throws JposException;
+ public boolean getFreezeEvents() throws JposException;
+ public void setFreezeEvents(boolean freezeEvents) throws JposException;
+ public String getPhysicalDeviceDescription() throws JposException;
+ public String getPhysicalDeviceName() throws JposException;
+ public int getState() throws JposException;
+
+ // Methods
+ public void claim(int timeout) throws JposException;
+ public void close() throws JposException;
+ public void checkHealth(int level) throws JposException;
+ public void directIO(int command, int[] data, Object object)
+ throws JposException;
+ public void open(String logicalName, EventCallbacks cb)
+ throws JposException;
+ public void release() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BeltService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BeltService112.java
new file mode 100644
index 0000000..1c6cb0f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BeltService112.java
@@ -0,0 +1,101 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BeltService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Belt for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// New device category.
+// 2010-Mar-16 JavaPOS Release 1.12.4 BS
+// Corrected return types of getCapSpeedStepsBackward() and
+// getCapSpeedStepsForward(). Was boolean, but should have been
+// int.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface BeltService112
+ extends BaseService, JposServiceInstance
+{
+ // Capabilities
+ public boolean getCapAutoStopBackward() throws JposException;
+ public boolean getCapAutoStopBackwardItemCount() throws JposException;
+ public boolean getCapAutoStopForward() throws JposException;
+ public boolean getCapAutoStopForwardItemCount() throws JposException;
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapLightBarrierBackward() throws JposException;
+ public boolean getCapLightBarrierForward() throws JposException;
+ public boolean getCapMoveBackward() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapRealTimeData() throws JposException;
+ public boolean getCapSecurityFlapBackward() throws JposException;
+ public boolean getCapSecurityFlapForward() throws JposException;
+ public int getCapSpeedStepsBackward() throws JposException;
+ public int getCapSpeedStepsForward() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Properties
+ public boolean getAutoStopBackward() throws JposException;
+ public void setAutoStopBackward(boolean autoStop) throws JposException;
+ public int getAutoStopBackwardDelayTime() throws JposException;
+ public void setAutoStopBackwardDelayTime(int delayTime) throws JposException;
+ public int getAutoStopBackwardItemCount() throws JposException;
+ public boolean getAutoStopForward() throws JposException;
+ public void setAutoStopForward(boolean autoStop) throws JposException;
+ public int getAutoStopForwardDelayTime() throws JposException;
+ public void setAutoStopForwardDelayTime(int delayTime) throws JposException;
+ public int getAutoStopForwardItemCount() throws JposException;
+ public boolean getLightBarrierBackwardInterrupted() throws JposException;
+ public boolean getLightBarrierForwardInterrupted() throws JposException;
+ public int getMotionStatus() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public boolean getSecurityFlapBackwardOpened() throws JposException;
+ public boolean getSecurityFlapForwardOpened() throws JposException;
+
+ // Methods
+ public void adjustItemCount(int direction,
+ int count)
+ throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void moveBackward(int speed)
+ throws JposException;
+ public void moveForward(int speed)
+ throws JposException;
+ public void resetBelt()
+ throws JposException;
+ public void resetItemCount(int direction)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void stopBelt()
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BeltService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BeltService113.java
new file mode 100644
index 0000000..2ffc051
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BeltService113.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BeltService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Belt for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface BeltService113 extends BeltService112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BeltService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BeltService114.java
new file mode 100644
index 0000000..25c5ece
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BeltService114.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BeltService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Belt for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface BeltService114 extends BeltService113
+{
+ // Nothing new added for release 1.14
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BillAcceptorService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BillAcceptorService111.java
new file mode 100644
index 0000000..f7d86b1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BillAcceptorService111.java
@@ -0,0 +1,91 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BillAcceptorService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bill Acceptor for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface BillAcceptorService111
+ extends BaseService, JposServiceInstance
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapDiscrepancy() throws JposException;
+ public boolean getCapFullSensor() throws JposException;
+ public boolean getCapJamSensor() throws JposException;
+ public boolean getCapNearFullSensor() throws JposException;
+ public boolean getCapPauseDeposit() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapRealTimeData() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Properties
+ public String getCurrencyCode() throws JposException;
+ public void setCurrencyCode(String currencyCode) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public int getDepositAmount() throws JposException;
+ public String getDepositCashList() throws JposException;
+ public String getDepositCodeList() throws JposException;
+ public String getDepositCounts() throws JposException;
+ public int getDepositStatus() throws JposException;
+ public int getFullStatus() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public boolean getRealTimeDataEnabled() throws JposException;
+ public void setRealTimeDataEnabled(boolean bEnabled) throws JposException;
+
+ // Methods
+ public void adjustCashCounts(String cashCounts)
+ throws JposException;
+ public void beginDeposit()
+ throws JposException;
+ public void clearInput() throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void endDeposit(int success)
+ throws JposException;
+ public void fixDeposit()
+ throws JposException;
+ public void pauseDeposit(int control)
+ throws JposException;
+ public void readCashCounts(String[] cashCounts,
+ boolean[] discrepancy)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BillAcceptorService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BillAcceptorService112.java
new file mode 100644
index 0000000..70782c2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BillAcceptorService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BillAcceptorService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bill Acceptor for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BillAcceptorService112 extends BillAcceptorService111
+{
+ // Nothing new added for release 1.12
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BillAcceptorService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BillAcceptorService113.java
new file mode 100644
index 0000000..a624f9d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BillAcceptorService113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BillAcceptorService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bill Acceptor for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BillAcceptorService113 extends BillAcceptorService112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BillAcceptorService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BillAcceptorService114.java
new file mode 100644
index 0000000..33fbc1d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BillAcceptorService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BillAcceptorService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Bill Acceptor for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BillAcceptorService114 extends BillAcceptorService113
+{
+ // Nothing new added for release 1.14
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BillDispenserService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BillDispenserService111.java
new file mode 100644
index 0000000..eb6f82d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BillDispenserService111.java
@@ -0,0 +1,83 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BillDispenserService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bill Dispenser for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface BillDispenserService111
+ extends BaseService, JposServiceInstance
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapDiscrepancy() throws JposException;
+ public boolean getCapEmptySensor() throws JposException;
+ public boolean getCapJamSensor() throws JposException;
+ public boolean getCapNearEmptySensor() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Properties
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public int getAsyncResultCode() throws JposException;
+ public int getAsyncResultCodeExtended() throws JposException;
+ public String getCurrencyCashList() throws JposException;
+ public String getCurrencyCode() throws JposException;
+ public void setCurrencyCode(String currencyCode) throws JposException;
+ public String getCurrencyCodeList() throws JposException;
+ public int getCurrentExit() throws JposException;
+ public void setCurrentExit(int currentExit) throws JposException;
+ public int getDeviceExits() throws JposException;
+ public int getDeviceStatus() throws JposException;
+ public String getExitCashList() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+
+
+ // Methods
+ public void adjustCashCounts(String cashCounts)
+ throws JposException;
+ public void clearOutput() throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void dispenseCash(String cashCounts)
+ throws JposException;
+ public void readCashCounts(String[] cashCounts,
+ boolean[] discrepancy)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BillDispenserService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BillDispenserService112.java
new file mode 100644
index 0000000..67dda58
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BillDispenserService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BillDispenserService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bill Dispenser for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BillDispenserService112 extends BillDispenserService111
+{
+ // Nothing new added for release 1.12
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BillDispenserService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BillDispenserService113.java
new file mode 100644
index 0000000..757e58d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BillDispenserService113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BillDispenserService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bill Dispenser for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BillDispenserService113 extends BillDispenserService112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BillDispenserService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BillDispenserService114.java
new file mode 100644
index 0000000..af19e86
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BillDispenserService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BillDispenserService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Bill Dispenser for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BillDispenserService114 extends BillDispenserService113
+{
+ // Nothing new added for release 1.14
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BiometricsService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BiometricsService110.java
new file mode 100644
index 0000000..ecc2ef0
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BiometricsService110.java
@@ -0,0 +1,135 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BiometricsService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Biometrics for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface BiometricsService110
+ extends BaseService, JposServiceInstance
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapPrematchData() throws JposException;
+ public boolean getCapRawSensorData() throws JposException;
+ public boolean getCapRealTimeData() throws JposException;
+ public int getCapSensorColor() throws JposException;
+ public int getCapSensorOrientation() throws JposException;
+ public int getCapSensorType() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapTemplateAdaptation() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Properties
+ public int getAlgorithm() throws JposException;
+ public void setAlgorithm(int algorithm) throws JposException;
+ public String getAlgorithmList() throws JposException;
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public byte[] getBIR() throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public byte[] getRawSensorData() throws JposException;
+ public boolean getRealTimeDataEnabled() throws JposException;
+ public void setRealTimeDataEnabled(boolean enabled) throws JposException;
+ public int getSensorBPP() throws JposException;
+ public int getSensorColor() throws JposException;
+ public void setSensorColor(int color) throws JposException;
+ public int getSensorHeight() throws JposException;
+ public int getSensorOrientation() throws JposException;
+ public void setSensorOrientation(int orientation) throws JposException;
+ public int getSensorType() throws JposException;
+ public void setSensorType(int type) throws JposException;
+ public int getSensorWidth() throws JposException;
+
+ // Methods
+ public void beginEnrollCapture(byte[] referenceBIR,
+ byte[] payload)
+ throws JposException;
+ public void beginVerifyCapture()
+ throws JposException;
+ public void clearInput() throws JposException;
+ public void clearInputProperties()
+ throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void endCapture()
+ throws JposException;
+ public void identify(int maxFARRequested,
+ int maxFRRRequested,
+ boolean FARPrecedence,
+ byte[][] referenceBIRPopulation,
+ int[][] candidateRanking,
+ int timeout)
+ throws JposException;
+ public void identifyMatch(int maxFARRequested,
+ int maxFRRRequested,
+ boolean FARPrecedence,
+ byte[] sampleBIR,
+ byte[][] referenceBIRPopulation,
+ int[][] candidateRanking)
+ throws JposException;
+ public void processPrematchData(byte[] capturedBIR,
+ byte[] prematchDataBIR,
+ byte[][] processedBIR)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+ public void verify(int maxFARRequested,
+ int maxFRRRequested,
+ boolean FARPrecedence,
+ byte[] referenceBIR,
+ byte[][] adaptedBIR,
+ boolean[] result,
+ int[] FARAchieved,
+ int[] FRRAchieved,
+ byte[][] payload,
+ int timeout)
+ throws JposException;
+ public void verifyMatch(int maxFARRequested,
+ int maxFRRRequested,
+ boolean FARPrecedence,
+ byte[] sampleBIR,
+ byte[] referenceBIR,
+ byte[][] adaptedBIR,
+ boolean[] result,
+ int[] FARAchieved,
+ int[] FRRAchieved,
+ byte[][] payload)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BiometricsService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BiometricsService111.java
new file mode 100644
index 0000000..13aef21
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BiometricsService111.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BiometricsService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Biometrics for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BiometricsService111 extends BiometricsService110
+{
+ // Specification changes marked as version 1.11 were incorporated into
+ // the JavaPOS controls 1.10.2 in order to fix implementation issues
+ // for early adopters.
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BiometricsService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BiometricsService112.java
new file mode 100644
index 0000000..10c38bc
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BiometricsService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BiometricsService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Biometrics for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BiometricsService112 extends BiometricsService111
+{
+ // Nothing new added for release 1.12
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BiometricsService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BiometricsService113.java
new file mode 100644
index 0000000..52e32be
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BiometricsService113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BiometricsService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Biometrics for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BiometricsService113 extends BiometricsService112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BiometricsService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BiometricsService114.java
new file mode 100644
index 0000000..86cd687
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BiometricsService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BiometricsService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Biometrics for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BiometricsService114 extends BiometricsService113
+{
+ // Nothing new added for release 1.14
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService110.java
new file mode 100644
index 0000000..31a3abf
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService110.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BumpBarService110
+ extends BumpBarService19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService111.java
new file mode 100644
index 0000000..9e7b5da
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BumpBarService111 extends BumpBarService110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService112.java
new file mode 100644
index 0000000..116a041
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BumpBarService112 extends BumpBarService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService113.java
new file mode 100644
index 0000000..7755290
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BumpBarService113 extends BumpBarService112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService114.java
new file mode 100644
index 0000000..ab9bd17
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Bump Bar for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BumpBarService114 extends BumpBarService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService13.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService13.java
new file mode 100644
index 0000000..023d26a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService13.java
@@ -0,0 +1,69 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarService13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BumpBarService13 extends BaseService
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapTone() throws JposException;
+
+ // Properties
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public int getAutoToneDuration() throws JposException;
+ public void setAutoToneDuration(int autoToneDuration) throws JposException;
+ public int getAutoToneFrequency() throws JposException;
+ public void setAutoToneFrequency(int autoToneFrequency) throws JposException;
+ public int getBumpBarDataCount() throws JposException;
+ public int getCurrentUnitID() throws JposException;
+ public void setCurrentUnitID(int currentUnitID) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled) throws JposException;
+ public String getErrorString() throws JposException;
+ public int getErrorUnits() throws JposException;
+ public String getEventString() throws JposException;
+ public int getEventUnitID() throws JposException;
+ public int getEventUnits() throws JposException;
+ public int getKeys() throws JposException;
+ public int getOutputID() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getTimeout() throws JposException;
+ public void setTimeout(int timeout) throws JposException;
+ public int getUnitsOnline() throws JposException;
+
+ // Methods
+ public void bumpBarSound(int units, int frequency, int duration,
+ int numberOfCycles, int interSoundWait)
+ throws JposException;
+ public void clearInput() throws JposException;
+ public void clearOutput() throws JposException;
+ public void setKeyTranslation(int units, int scanCode, int logicalKey)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService14.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService14.java
new file mode 100644
index 0000000..c9215b1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarService14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BumpBarService14 extends BumpBarService13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService15.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService15.java
new file mode 100644
index 0000000..9cbaecf
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService15.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarService15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface BumpBarService15
+ extends BumpBarService14, JposServiceInstance
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService16.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService16.java
new file mode 100644
index 0000000..714275b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService16.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarService16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2001-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BumpBarService16
+ extends BumpBarService15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService17.java
new file mode 100644
index 0000000..1c96b5d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService17.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BumpBarService17
+ extends BumpBarService16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService18.java
new file mode 100644
index 0000000..653f8cd
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService18.java
@@ -0,0 +1,42 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BumpBarService18
+ extends BumpBarService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService19.java
new file mode 100644
index 0000000..fb74aa8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/BumpBarService19.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// BumpBarService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Bump Bar for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface BumpBarService19
+ extends BumpBarService18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService110.java
new file mode 100644
index 0000000..1083589
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService110.java
@@ -0,0 +1,32 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATService110
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CATService110
+ extends CATService19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService111.java
new file mode 100644
index 0000000..6cd515f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService111.java
@@ -0,0 +1,31 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATService111
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CATService111 extends CATService110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService112.java
new file mode 100644
index 0000000..3f3ff9b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService112.java
@@ -0,0 +1,31 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATService112
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CATService112 extends CATService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService113.java
new file mode 100644
index 0000000..49f0c15
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService113.java
@@ -0,0 +1,34 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATService113
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+// 2010-Nov-17 JavaPOS Release 1.13.3 BS
+// Added missing property OutputID
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CATService113 extends CATService112
+{
+ // Properties
+ public int getOutputID() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService114.java
new file mode 100644
index 0000000..6593f2a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService114.java
@@ -0,0 +1,31 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CATService114 extends CATService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService14.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService14.java
new file mode 100644
index 0000000..3ede951
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService14.java
@@ -0,0 +1,88 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATService14
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.4.
+//
+// Modification history
+// ---------------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CATService14 extends BaseService
+{
+ // Capabilities
+ public boolean getCapAdditionalSecurityInformation() throws JposException;
+ public boolean getCapAuthorizeCompletion() throws JposException;
+ public boolean getCapAuthorizePreSales() throws JposException;
+ public boolean getCapAuthorizeRefund() throws JposException;
+ public boolean getCapAuthorizeVoid() throws JposException;
+ public boolean getCapAuthorizeVoidPreSales() throws JposException;
+ public boolean getCapCenterResultCode() throws JposException;
+ public boolean getCapCheckCard() throws JposException;
+ public int getCapDailyLog() throws JposException;
+ public boolean getCapInstallments() throws JposException;
+ public boolean getCapPaymentDetail() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapTaxOthers() throws JposException;
+ public boolean getCapTransactionNumber() throws JposException;
+ public boolean getCapTrainingMode() throws JposException;
+
+ // Properties
+ public String getAccountNumber() throws JposException;
+ public String getAdditionalSecurityInformation() throws JposException;
+ public void setAdditionalSecurityInformation(String securityInfo)
+ throws JposException;
+ public String getApprovalCode() throws JposException;
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public String getCardCompanyID() throws JposException;
+ public String getCenterResultCode() throws JposException;
+ public String getDailyLog() throws JposException;
+ public int getPaymentCondition() throws JposException;
+ public String getPaymentDetail() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getSequenceNumber() throws JposException;
+ public String getSlipNumber() throws JposException;
+ public boolean getTrainingMode() throws JposException;
+ public void setTrainingMode(boolean trainingMode) throws JposException;
+ public String getTransactionNumber() throws JposException;
+ public String getTransactionType() throws JposException;
+
+ // Methods
+ public void accessDailyLog(int sequenceNumber, int type, int timeout)
+ throws JposException;
+ public void authorizeCompletion(int sequenceNumber, long amount,
+ long taxOthers, int timeout) throws JposException;
+ public void authorizePreSales(int sequenceNumber, long amount,
+ long taxOthers, int timeout) throws JposException;
+ public void authorizeRefund(int sequenceNumber, long amount,
+ long taxOthers, int timeout) throws JposException;
+ public void authorizeSales(int sequenceNumber, long amount,
+ long taxOthers, int timeout) throws JposException;
+ public void authorizeVoid(int sequenceNumber, long amount,
+ long taxOthers, int timeout) throws JposException;
+ public void authorizeVoidPreSales(int sequenceNumber, long amount,
+ long taxOthers, int timeout) throws JposException;
+ public void checkCard(int sequenceNumber, int timeout)
+ throws JposException;
+ public void clearOutput() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService15.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService15.java
new file mode 100644
index 0000000..258c9d9
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService15.java
@@ -0,0 +1,35 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATService15
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.5.
+//
+// Modification history
+// ---------------------------------------------------------------------------
+// 2000-Apr-17 JavaPOS Release 1.5 BS
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface CATService15
+ extends CATService14, JposServiceInstance
+{
+ // Properties
+ public int getPaymentMedia() throws JposException;
+ public void setPaymentMedia(int paymentMedia) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService16.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService16.java
new file mode 100644
index 0000000..4b82a14
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService16.java
@@ -0,0 +1,32 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATService16
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.6.
+//
+// Modification history
+// ---------------------------------------------------------------------------
+// 2001-Apr-18 JavaPOS Release 1.6 BS
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CATService16
+ extends CATService15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService17.java
new file mode 100644
index 0000000..49ebfe1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService17.java
@@ -0,0 +1,32 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATService17
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CATService17
+ extends CATService16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService18.java
new file mode 100644
index 0000000..4fba609
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService18.java
@@ -0,0 +1,42 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATService18
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------------
+// 03-Jun-2003 JavaPOS Release 1.8 BS
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CATService18
+ extends CATService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService19.java
new file mode 100644
index 0000000..cc6ac19
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CATService19.java
@@ -0,0 +1,55 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CATService19
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to the Credit Authorization Terminal for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+//////////////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CATService19
+ extends CATService18
+{
+ // Capabilities
+ public boolean getCapCashDeposit() throws JposException;
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapLockTerminal() throws JposException;
+ public boolean getCapLogStatus() throws JposException;
+ public boolean getCapUnlockTerminal() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Properties
+ public long getBalance() throws JposException;
+ public int getLogStatus() throws JposException;
+ public long getSettledAmount() throws JposException;
+
+ // Methods
+ public void cashDeposit(int sequenceNumber, long amount, int timeout)
+ throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void lockTerminal()
+ throws JposException;
+ public void unlockTerminal()
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService110.java
new file mode 100644
index 0000000..f4bbca2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService110.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashChangerService110
+ extends CashChangerService19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService111.java
new file mode 100644
index 0000000..0815918
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService111.java
@@ -0,0 +1,46 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+// 2008-Jul-23 Corrected spelling mistake of setCurrentService BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashChangerService111 extends CashChangerService110
+{
+ // Capabilities
+ public boolean getCapJamSensor() throws JposException;
+ public boolean getCapRealTimeData() throws JposException;
+
+ // Properties
+ public int getCurrentService() throws JposException;
+ public void setCurrentService(int currentService) throws JposException;
+ public boolean getRealTimeDataEnabled() throws JposException;
+ public void setRealTimeDataEnabled(boolean bEnabled) throws JposException;
+ public int getServiceCount() throws JposException;
+ public int getServiceIndex() throws JposException;
+
+ // Methods
+ public void adjustCashCounts(String cashCounts)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService112.java
new file mode 100644
index 0000000..e8cbe7f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashChangerService112 extends CashChangerService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService113.java
new file mode 100644
index 0000000..5d98083
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashChangerService113 extends CashChangerService112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService114.java
new file mode 100644
index 0000000..0a5e103
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Cash Changer for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashChangerService114 extends CashChangerService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService12.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService12.java
new file mode 100644
index 0000000..6687347
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService12.java
@@ -0,0 +1,58 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerService12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to Cash Changer for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashChangerService12 extends BaseService
+{
+ // Capabilities
+ public boolean getCapDiscrepancy() throws JposException;
+ public boolean getCapEmptySensor() throws JposException;
+ public boolean getCapFullSensor() throws JposException;
+ public boolean getCapNearEmptySensor() throws JposException;
+ public boolean getCapNearFullSensor() throws JposException;
+
+ // Properties
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public int getAsyncResultCode() throws JposException;
+ public int getAsyncResultCodeExtended() throws JposException;
+ public String getCurrencyCashList() throws JposException;
+ public String getCurrencyCode() throws JposException;
+ public void setCurrencyCode(String currencyCode) throws JposException;
+ public String getCurrencyCodeList() throws JposException;
+ public int getCurrentExit() throws JposException;
+ public void setCurrentExit(int currentExit) throws JposException;
+ public int getDeviceExits() throws JposException;
+ public int getDeviceStatus() throws JposException;
+ public String getExitCashList() throws JposException;
+ public int getFullStatus() throws JposException;
+
+ // Methods
+ public void dispenseCash(String cashCounts) throws JposException;
+ public void dispenseChange(int amount) throws JposException;
+ public void readCashCounts(String[] cashCounts,
+ boolean[] discrepancy) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService13.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService13.java
new file mode 100644
index 0000000..1b4ec20
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService13.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerService13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashChangerService13 extends CashChangerService12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService14.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService14.java
new file mode 100644
index 0000000..c1d9c94
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerService14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashChangerService14 extends CashChangerService13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService15.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService15.java
new file mode 100644
index 0000000..f1c15d4
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService15.java
@@ -0,0 +1,55 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerService15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface CashChangerService15
+ extends CashChangerService14, JposServiceInstance
+{
+ // Capabilities
+ public boolean getCapDeposit() throws JposException;
+ public boolean getCapDepositDataEvent() throws JposException;
+ public boolean getCapPauseDeposit() throws JposException;
+ public boolean getCapRepayDeposit() throws JposException;
+
+ // Properties
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public int getDepositAmount() throws JposException;
+ public String getDepositCashList() throws JposException;
+ public String getDepositCodeList() throws JposException;
+ public String getDepositCounts() throws JposException;
+ public int getDepositStatus() throws JposException;
+
+ // Methods
+ public void beginDeposit() throws JposException;
+ public void clearInput() throws JposException;
+ public void endDeposit(int success) throws JposException;
+ public void fixDeposit() throws JposException;
+ public void pauseDeposit(int control) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService16.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService16.java
new file mode 100644
index 0000000..5f5bd0a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService16.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerService16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2001-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashChangerService16
+ extends CashChangerService15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService17.java
new file mode 100644
index 0000000..02bf4ad
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService17.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashChangerService17
+ extends CashChangerService16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService18.java
new file mode 100644
index 0000000..ede02a8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService18.java
@@ -0,0 +1,42 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashChangerService18
+ extends CashChangerService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService19.java
new file mode 100644
index 0000000..27ede7c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashChangerService19.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashChangerService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Changer for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashChangerService19
+ extends CashChangerService18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService110.java
new file mode 100644
index 0000000..fc903ff
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService110.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashDrawerService110
+ extends CashDrawerService19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService111.java
new file mode 100644
index 0000000..66f2377
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashDrawerService111 extends CashDrawerService110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService112.java
new file mode 100644
index 0000000..f765a1c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashDrawerService112 extends CashDrawerService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService113.java
new file mode 100644
index 0000000..343a974
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashDrawerService113 extends CashDrawerService112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService114.java
new file mode 100644
index 0000000..1fd20fc
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Cash Drawer for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashDrawerService114 extends CashDrawerService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService12.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService12.java
new file mode 100644
index 0000000..eec3bbb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService12.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerService12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to Cash Drawer for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashDrawerService12 extends BaseService
+{
+ // Capabilities
+ public boolean getCapStatus() throws JposException;
+
+ // Properties
+ public boolean getDrawerOpened() throws JposException;
+
+ // Methods
+ public void openDrawer() throws JposException;
+ public void waitForDrawerClose(int beepTimeout, int beepFrequency,
+ int beepDuration, int beepDelay) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService13.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService13.java
new file mode 100644
index 0000000..55e3b5b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService13.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerService13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashDrawerService13 extends CashDrawerService12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService14.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService14.java
new file mode 100644
index 0000000..6ca2ef9
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerService14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashDrawerService14 extends CashDrawerService13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService15.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService15.java
new file mode 100644
index 0000000..532148f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService15.java
@@ -0,0 +1,34 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerService15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface CashDrawerService15
+ extends CashDrawerService14, JposServiceInstance
+{
+ // Capabilities
+ public boolean getCapStatusMultiDrawerDetect() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService16.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService16.java
new file mode 100644
index 0000000..848be57
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService16.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerService16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2001-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashDrawerService16
+ extends CashDrawerService15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService17.java
new file mode 100644
index 0000000..9896bd7
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService17.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashDrawerService17
+ extends CashDrawerService16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService18.java
new file mode 100644
index 0000000..c85ee74
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService18.java
@@ -0,0 +1,42 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashDrawerService18
+ extends CashDrawerService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService19.java
new file mode 100644
index 0000000..9130faf
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CashDrawerService19.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CashDrawerService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Cash Drawer for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CashDrawerService19
+ extends CashDrawerService18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService110.java
new file mode 100644
index 0000000..1c183e4
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService110.java
@@ -0,0 +1,35 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CheckScannerService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Check Scanner for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface CheckScannerService110
+ extends CheckScannerService19
+{
+ // Methods
+ public void clearInputProperties()
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService111.java
new file mode 100644
index 0000000..1756a1a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService111.java
@@ -0,0 +1,30 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CheckScannerService111
+//
+// Interface definining all new capabilities, properties and
+// Check Scanner
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CheckScannerService111 extends CheckScannerService110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService112.java
new file mode 100644
index 0000000..800c26b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService112.java
@@ -0,0 +1,30 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CheckScannerService112
+//
+// Interface definining all new capabilities, properties and
+// Check Scanner
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CheckScannerService112 extends CheckScannerService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService113.java
new file mode 100644
index 0000000..c1deab6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService113.java
@@ -0,0 +1,30 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CheckScannerService113
+//
+// Interface definining all new capabilities, properties and
+// Check Scanner
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CheckScannerService113 extends CheckScannerService112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService114.java
new file mode 100644
index 0000000..e8a6544
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CheckScannerService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Check Scanner for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CheckScannerService114 extends CheckScannerService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService17.java
new file mode 100644
index 0000000..11f0f6a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService17.java
@@ -0,0 +1,95 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CheckScannerService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Check Scanner for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface CheckScannerService17
+ extends BaseService, JposServiceInstance
+{
+ // Capabilities
+ public boolean getCapAutoGenerateFileID() throws JposException;
+ public boolean getCapAutoGenerateImageTagData() throws JposException;
+ public boolean getCapAutoSize() throws JposException;
+ public int getCapColor() throws JposException;
+ public boolean getCapConcurrentMICR() throws JposException;
+ public boolean getCapDefineCropArea() throws JposException;
+ public int getCapImageFormat() throws JposException;
+ public boolean getCapImageTagData() throws JposException;
+ public boolean getCapMICRDevice() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapStoreImageFiles() throws JposException;
+ public boolean getCapValidationDevice() throws JposException;
+
+ // Properties
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public int getColor() throws JposException;
+ public void setColor(int nColor) throws JposException;
+ public boolean getConcurrentMICR() throws JposException;
+ public void setConcurrentMICR(boolean bConcurrentMICR) throws JposException;
+ public int getCropAreaCount() throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public int getDocumentHeight() throws JposException;
+ public void setDocumentHeight(int nDocumentHeight) throws JposException;
+ public int getDocumentWidth() throws JposException;
+ public void setDocumentWidth(int nDocumentWidth) throws JposException;
+ public String getFileID() throws JposException;
+ public void setFileID(String sFileID) throws JposException;
+ public int getFileIndex() throws JposException;
+ public void setFileIndex(int nFileIndex) throws JposException;
+ public byte[] getImageData() throws JposException;
+ public int getImageFormat() throws JposException;
+ public void setImageFormat(int nImageFormat) throws JposException;
+ public int getImageMemoryStatus() throws JposException;
+ public String getImageTagData() throws JposException;
+ public void setImageTagData(String sImageTagData) throws JposException;
+ public int getMapMode() throws JposException;
+ public void setMapMode(int nMapMode) throws JposException;
+ public int getMaxCropAreas() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getQuality() throws JposException;
+ public void setQuality(int nQuality) throws JposException;
+ public String getQualityList() throws JposException;
+ public int getRemainingImagesEstimate() throws JposException;
+
+ // Methods
+ public void beginInsertion(int timeout) throws JposException;
+ public void beginRemoval(int timeout) throws JposException;
+ public void clearImage(int by) throws JposException;
+ public void clearInput() throws JposException;
+ public void defineCropArea(int cropAreaID, int x, int y, int cx, int cy)
+ throws JposException;
+ public void endInsertion() throws JposException;
+ public void endRemoval() throws JposException;
+ public void retrieveImage(int cropAreaID) throws JposException;
+ public void retrieveMemory(int by) throws JposException;
+ public void storeImage(int by) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService18.java
new file mode 100644
index 0000000..d32a619
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService18.java
@@ -0,0 +1,43 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CheckScannerService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Check Scanner for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface CheckScannerService18
+ extends CheckScannerService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService19.java
new file mode 100644
index 0000000..98b9a57
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CheckScannerService19.java
@@ -0,0 +1,47 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CheckScannerService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Check Scanner for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface CheckScannerService19
+ extends CheckScannerService18
+{
+ // Capabilities
+ public boolean getCapAutoContrast() throws JposException;
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapContrast() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Properties
+ public int getContrast() throws JposException;
+ public void setContrast(int contrast) throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinAcceptorService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinAcceptorService111.java
new file mode 100644
index 0000000..3d9b5bb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinAcceptorService111.java
@@ -0,0 +1,91 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinAcceptorService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Acceptor for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface CoinAcceptorService111
+ extends BaseService, JposServiceInstance
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapDiscrepancy() throws JposException;
+ public boolean getCapFullSensor() throws JposException;
+ public boolean getCapJamSensor() throws JposException;
+ public boolean getCapNearFullSensor() throws JposException;
+ public boolean getCapPauseDeposit() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapRealTimeData() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Properties
+ public String getCurrencyCode() throws JposException;
+ public void setCurrencyCode(String currencyCode) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public int getDepositAmount() throws JposException;
+ public String getDepositCashList() throws JposException;
+ public String getDepositCodeList() throws JposException;
+ public String getDepositCounts() throws JposException;
+ public int getDepositStatus() throws JposException;
+ public int getFullStatus() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public boolean getRealTimeDataEnabled() throws JposException;
+ public void setRealTimeDataEnabled(boolean bEnabled) throws JposException;
+
+ // Methods
+ public void adjustCashCounts(String cashCounts)
+ throws JposException;
+ public void beginDeposit()
+ throws JposException;
+ public void clearInput() throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void endDeposit(int success)
+ throws JposException;
+ public void fixDeposit()
+ throws JposException;
+ public void pauseDeposit(int control)
+ throws JposException;
+ public void readCashCounts(String[] cashCounts,
+ boolean[] discrepancy)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinAcceptorService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinAcceptorService112.java
new file mode 100644
index 0000000..b3956a7
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinAcceptorService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinAcceptorService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Acceptor for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CoinAcceptorService112 extends CoinAcceptorService111
+{
+ // Nothing new added for release 1.12
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinAcceptorService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinAcceptorService113.java
new file mode 100644
index 0000000..798c7f7
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinAcceptorService113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinAcceptorService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Acceptor for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CoinAcceptorService113 extends CoinAcceptorService112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinAcceptorService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinAcceptorService114.java
new file mode 100644
index 0000000..4862262
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinAcceptorService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinAcceptorService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Coin Acceptor for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CoinAcceptorService114 extends CoinAcceptorService113
+{
+ // Nothing new added for release 1.14
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService110.java
new file mode 100644
index 0000000..6e2284c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService110.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CoinDispenserService110
+ extends CoinDispenserService19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService111.java
new file mode 100644
index 0000000..b481b1f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService111.java
@@ -0,0 +1,35 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CoinDispenserService111 extends CoinDispenserService110
+{
+ // Methods
+ public void adjustCashCounts(String cashCounts)
+ throws JposException;
+ public void readCashCounts(String[] cashCounts,
+ boolean[] discrepancy)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService112.java
new file mode 100644
index 0000000..2c50aa8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService112.java
@@ -0,0 +1,30 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CoinDispenserService112 extends CoinDispenserService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService113.java
new file mode 100644
index 0000000..b307186
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService113.java
@@ -0,0 +1,30 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CoinDispenserService113 extends CoinDispenserService112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService114.java
new file mode 100644
index 0000000..f343417
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService114.java
@@ -0,0 +1,30 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Coin Dispenser for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CoinDispenserService114 extends CoinDispenserService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService12.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService12.java
new file mode 100644
index 0000000..49a2d07
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService12.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserService12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to Coin Dispenser for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CoinDispenserService12 extends BaseService
+{
+ // Capabilities
+ public boolean getCapEmptySensor() throws JposException;
+ public boolean getCapJamSensor() throws JposException;
+ public boolean getCapNearEmptySensor() throws JposException;
+
+ // Properties
+ public int getDispenserStatus() throws JposException;
+
+ // Methods
+ public void dispenseChange(int amount) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService13.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService13.java
new file mode 100644
index 0000000..80f0545
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService13.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserService13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CoinDispenserService13 extends CoinDispenserService12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService14.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService14.java
new file mode 100644
index 0000000..6cfe4be
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserService14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CoinDispenserService14 extends CoinDispenserService13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService15.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService15.java
new file mode 100644
index 0000000..78261ca
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService15.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserService15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface CoinDispenserService15
+ extends CoinDispenserService14, JposServiceInstance
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService16.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService16.java
new file mode 100644
index 0000000..e32dc39
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService16.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserService16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2001-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CoinDispenserService16
+ extends CoinDispenserService15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService17.java
new file mode 100644
index 0000000..742f1c6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService17.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CoinDispenserService17
+ extends CoinDispenserService16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService18.java
new file mode 100644
index 0000000..a500093
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService18.java
@@ -0,0 +1,42 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 03-Jun-2003 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CoinDispenserService18
+ extends CoinDispenserService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService19.java
new file mode 100644
index 0000000..8d70d1f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/CoinDispenserService19.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// CoinDispenserService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Coin Dispenser for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface CoinDispenserService19
+ extends CoinDispenserService18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicJournalService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicJournalService110.java
new file mode 100644
index 0000000..cf23a61
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicJournalService110.java
@@ -0,0 +1,138 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ElectronicJournalService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Electronic Journal for release
+// 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface ElectronicJournalService110
+ extends BaseService, JposServiceInstance
+{
+ // Capabilities
+ public boolean getCapAddMarker() throws JposException;
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapErasableMedium() throws JposException;
+ public boolean getCapInitializeMedium() throws JposException;
+ public boolean getCapMediumIsAvailable() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapPrintContent() throws JposException;
+ public boolean getCapPrintContentFile() throws JposException;
+ public boolean getCapRetrieveCurrentMarker() throws JposException;
+ public boolean getCapRetrieveMarker() throws JposException;
+ public boolean getCapRetrieveMarkerByDateTime() throws JposException;
+ public boolean getCapRetrieveMarkersDateTime() throws JposException;
+ public int getCapStation() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapStorageEnabled() throws JposException;
+ public boolean getCapSuspendPrintContent() throws JposException;
+ public boolean getCapSuspendQueryContent() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+ public boolean getCapWaterMark() throws JposException;
+
+ // Properties
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public boolean getFlagWhenIdle() throws JposException;
+ public void setFlagWhenIdle(boolean flagWhenIdle) throws JposException;
+ public long getMediumFreeSpace() throws JposException;
+ public String getMediumID() throws JposException;
+ public boolean getMediumIsAvailable() throws JposException;
+ public long getMediumSize() throws JposException;
+ public int getOutputID() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getStation() throws JposException;
+ public void setStation(int station) throws JposException;
+ public boolean getStorageEnabled() throws JposException;
+ public void setStorageEnabled(boolean enabled) throws JposException;
+ public boolean getSuspended() throws JposException;
+ public boolean getWaterMark() throws JposException;
+ public void setWaterMark(boolean waterMark) throws JposException;
+
+ // Methods
+ public void addMarker(String marker)
+ throws JposException;
+ public void cancelPrintContent()
+ throws JposException;
+ public void cancelQueryContent()
+ throws JposException;
+ public void clearInput() throws JposException;
+ public void clearOutput() throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void eraseMedium()
+ throws JposException;
+ public void initializeMedium(String mediumID)
+ throws JposException;
+ public void printContent(String fromMarker,
+ String toMarker)
+ throws JposException;
+ public void printContentFile(String fileName)
+ throws JposException;
+ public void queryContent(String fileName,
+ String fromMarker,
+ String toMarker)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void resumePrintContent()
+ throws JposException;
+ public void resumeQueryContent()
+ throws JposException;
+ public void retrieveCurrentMarker(int markerType,
+ String[] marker)
+ throws JposException;
+ public void retrieveMarker(int markerType,
+ int sessionNumber,
+ int documentNumber,
+ String[] marker)
+ throws JposException;
+ public void retrieveMarkerByDateTime(int markerType,
+ String dateTime,
+ String markerNumber,
+ String[] marker)
+ throws JposException;
+ public void retrieveMarkersDateTime(String marker,
+ String[] dateTime)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void suspendPrintContent()
+ throws JposException;
+ public void suspendQueryContent()
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicJournalService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicJournalService111.java
new file mode 100644
index 0000000..1d9b500
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicJournalService111.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ElectronicJournalService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Electronic Journal for release
+// 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ElectronicJournalService111 extends ElectronicJournalService110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicJournalService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicJournalService112.java
new file mode 100644
index 0000000..348e99c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicJournalService112.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ElectronicJournalService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Electronic Journal for release
+// 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ElectronicJournalService112 extends ElectronicJournalService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicJournalService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicJournalService113.java
new file mode 100644
index 0000000..ed7efce
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicJournalService113.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ElectronicJournalService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Electronic Journal for release
+// 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ElectronicJournalService113 extends ElectronicJournalService112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicJournalService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicJournalService114.java
new file mode 100644
index 0000000..0df4c50
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicJournalService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ElectronicJournalService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Electronic Journal for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ElectronicJournalService114 extends ElectronicJournalService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicValueRWService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicValueRWService112.java
new file mode 100644
index 0000000..b07ae31
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicValueRWService112.java
@@ -0,0 +1,166 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ElectronicValueRWService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Electronic Value RW for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface ElectronicValueRWService112
+ extends BaseService, JposServiceInstance
+{
+ // Capabilities
+ public boolean getCapActivateService() throws JposException;
+ public boolean getCapAddValue() throws JposException;
+ public boolean getCapCancelValue() throws JposException;
+ public int getCapCardSensor() throws JposException;
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public int getCapDetectionControl() throws JposException;
+ public boolean getCapElectronicMoney() throws JposException;
+ public boolean getCapEnumerateCardServices() throws JposException;
+ public boolean getCapIndirectTransactionLog() throws JposException;
+ public boolean getCapLockTerminal() throws JposException;
+ public boolean getCapLogStatus() throws JposException;
+ public boolean getCapMediumID() throws JposException;
+ public boolean getCapPoint() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapRealTimeData() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapSubtractValue() throws JposException;
+ public boolean getCapTransaction() throws JposException;
+ public boolean getCapTransactionLog() throws JposException;
+ public boolean getCapUnlockTerminal() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateKey() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+ public boolean getCapVoucher() throws JposException;
+ public boolean getCapWriteValue() throws JposException;
+
+ // Properties
+ public String getAccountNumber() throws JposException;
+ public String getAdditionalSecurityInformation() throws JposException;
+ public void setAdditionalSecurityInformation(String addSecInfo) throws JposException;
+ public long getAmount() throws JposException;
+ public void setAmount(long amount) throws JposException;
+ public String getApprovalCode() throws JposException;
+ public void setApprovalCode(String approvalCode) throws JposException;
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public long getBalance() throws JposException;
+ public long getBalanceOfPoint() throws JposException;
+ public String getCardServiceList() throws JposException;
+ public String getCurrentService() throws JposException;
+ public void setCurrentService(String currentService) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public boolean getDetectionControl() throws JposException;
+ public void setDetectionControl(boolean detectionControl) throws JposException;
+ public int getDetectionStatus() throws JposException;
+ public String getExpirationDate() throws JposException;
+ public String getLastUsedDate() throws JposException;
+ public int getLogStatus() throws JposException;
+ public String getMediumID() throws JposException;
+ public void setMediumID(String mediumID) throws JposException;
+ public int getOutputID() throws JposException;
+ public long getPoint() throws JposException;
+ public void setPoint(long point) throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public String getReaderWriterServiceList() throws JposException;
+ public int getSequenceNumber() throws JposException;
+ public long getSettledAmount() throws JposException;
+ public long getSettledPoint() throws JposException;
+ public String getTransactionLog() throws JposException;
+ public String getVoucherID() throws JposException;
+ public void setVoucherID(String voucherID) throws JposException;
+ public String getVoucherIDList() throws JposException;
+ public void setVoucherIDList(String voucherIDList) throws JposException;
+
+ // Methods
+ public void accessLog(int sequenceNumber,
+ int type,
+ int timeout)
+ throws JposException;
+ public void activateService(int[] data,
+ Object[] obj)
+ throws JposException;
+ public void addValue(int sequenceNumber, int timeout)
+ throws JposException;
+ public void beginDetection(int type,
+ int timeout)
+ throws JposException;
+ public void beginRemoval(int timeout)
+ throws JposException;
+ public void cancelValue(int sequenceNumber,
+ int timeout)
+ throws JposException;
+ public void captureCard()
+ throws JposException;
+ public void clearInput()
+ throws JposException;
+ public void clearInputProperties()
+ throws JposException;
+ public void clearOutput()
+ throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void endDetection()
+ throws JposException;
+ public void endRemoval()
+ throws JposException;
+ public void enumerateCardServices()
+ throws JposException;
+ public void lockTerminal()
+ throws JposException;
+ public void readValue(int sequenceNumber,
+ int timeout)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void subtractValue(int sequenceNumber,
+ int timeout)
+ throws JposException;
+ public void transactionAccess(int control)
+ throws JposException;
+ public void unlockTerminal()
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateKey(int[] data,
+ Object[] obj)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+ public void writeValue(int sequenceNumber,
+ int timeout)
+ throws JposException;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicValueRWService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicValueRWService113.java
new file mode 100644
index 0000000..2ba993b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicValueRWService113.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ElectronicValueRWService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Electronic Value RW for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface ElectronicValueRWService113 extends ElectronicValueRWService112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicValueRWService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicValueRWService114.java
new file mode 100644
index 0000000..9c799e0
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ElectronicValueRWService114.java
@@ -0,0 +1,48 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ElectronicValueRWService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Electronic Value RW for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface ElectronicValueRWService114 extends ElectronicValueRWService113
+{
+ // Capabilities
+ public boolean getCapPINDevice() throws JposException;
+ public boolean CapTrainingMode() throws JposException;
+
+ // Properties
+ public int getPINEntry() throws JposException;
+ public void setPINEntry(int pinEntry) throws JposException;
+ public int getTrainingModeState() throws JposException;
+ public void setTrainingModeState(int trainingModeState) throws JposException;
+
+ // Methods
+ public void clearParameterInformation() throws JposException;
+ public void queryLastSuccessfulTransactionResult() throws JposException;
+ public void retrieveResultInformation(String name,
+ String[] value) throws JposException;
+ public void setParameterInformation(String name,
+ String value) throws JposException;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/EventCallbacks.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/EventCallbacks.java
new file mode 100644
index 0000000..6c412eb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/EventCallbacks.java
@@ -0,0 +1,38 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// EventCallbacks
+//
+// Interface definining callback methods in a JavaPOS device
+// control that are callable by a JavaPOS device service.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.events.*;
+
+public interface EventCallbacks
+{
+ public void fireDataEvent(DataEvent e);
+ public void fireDirectIOEvent(DirectIOEvent e);
+ public void fireErrorEvent(ErrorEvent e);
+ public void fireOutputCompleteEvent(OutputCompleteEvent e);
+ public void fireStatusUpdateEvent(StatusUpdateEvent e);
+
+ public BaseControl getEventSource();
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService110.java
new file mode 100644
index 0000000..6d69d02
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService110.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface FiscalPrinterService110
+ extends FiscalPrinterService19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService111.java
new file mode 100644
index 0000000..0a49753
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService111.java
@@ -0,0 +1,46 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface FiscalPrinterService111 extends FiscalPrinterService110
+{
+ // Capabilities
+ public boolean getCapPositiveSubtotalAdjustment() throws JposException;
+
+ // Methods
+ public void printRecItemVoid(String description,
+ long price,
+ int quantity,
+ int vatInfo,
+ long unitPrice,
+ String unitName)
+ throws JposException;
+ public void printRecItemAdjustmentVoid(int adjustmentType,
+ String description,
+ long amount,
+ int vatInfo)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService112.java
new file mode 100644
index 0000000..fcc7365
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService112.java
@@ -0,0 +1,45 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface FiscalPrinterService112 extends FiscalPrinterService111
+{
+ // Methods
+ public void printRecItemRefund(String description,
+ long amount,
+ int quantity,
+ int vatInfo,
+ long unitAmount,
+ String unitName)
+ throws JposException;
+ public void printRecItemRefundVoid(String description,
+ long amount,
+ int quantity,
+ int vatInfo,
+ long unitAmount,
+ String unitName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService113.java
new file mode 100644
index 0000000..b243dc0
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface FiscalPrinterService113 extends FiscalPrinterService112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService114.java
new file mode 100644
index 0000000..036c453
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Fiscal Printer for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface FiscalPrinterService114 extends FiscalPrinterService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService13.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService13.java
new file mode 100644
index 0000000..56b7abb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService13.java
@@ -0,0 +1,195 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterService13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface FiscalPrinterService13 extends BaseService
+{
+ // Capabilities
+ public boolean getCapAdditionalLines() throws JposException;
+ public boolean getCapAmountAdjustment() throws JposException;
+ public boolean getCapAmountNotPaid() throws JposException;
+ public boolean getCapCheckTotal() throws JposException;
+ public boolean getCapCoverSensor() throws JposException;
+ public boolean getCapDoubleWidth() throws JposException;
+ public boolean getCapDuplicateReceipt() throws JposException;
+ public void setDuplicateReceipt(boolean duplicateReceipt) throws JposException;
+ public boolean getCapFixedOutput() throws JposException;
+ public boolean getCapHasVatTable() throws JposException;
+ public boolean getCapIndependentHeader() throws JposException;
+ public boolean getCapItemList() throws JposException;
+ public boolean getCapJrnEmptySensor() throws JposException;
+ public boolean getCapJrnNearEndSensor() throws JposException;
+ public boolean getCapJrnPresent() throws JposException;
+ public boolean getCapNonFiscalMode() throws JposException;
+ public boolean getCapOrderAdjustmentFirst() throws JposException;
+ public boolean getCapPercentAdjustment() throws JposException;
+ public boolean getCapPositiveAdjustment() throws JposException;
+ public boolean getCapPowerLossReport() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapPredefinedPaymentLines() throws JposException;
+ public boolean getCapReceiptNotPaid() throws JposException;
+ public boolean getCapRecEmptySensor() throws JposException;
+ public boolean getCapRecNearEndSensor() throws JposException;
+ public boolean getCapRecPresent() throws JposException;
+ public boolean getCapRemainingFiscalMemory() throws JposException;
+ public boolean getCapReservedWord() throws JposException;
+ public boolean getCapSetHeader() throws JposException;
+ public boolean getCapSetPOSID() throws JposException;
+ public boolean getCapSetStoreFiscalID() throws JposException;
+ public boolean getCapSetTrailer() throws JposException;
+ public boolean getCapSetVatTable() throws JposException;
+ public boolean getCapSlpEmptySensor() throws JposException;
+ public boolean getCapSlpFiscalDocument() throws JposException;
+ public boolean getCapSlpFullSlip() throws JposException;
+ public boolean getCapSlpNearEndSensor() throws JposException;
+ public boolean getCapSlpPresent() throws JposException;
+ public boolean getCapSlpValidation() throws JposException;
+ public boolean getCapSubAmountAdjustment() throws JposException;
+ public boolean getCapSubPercentAdjustment() throws JposException;
+ public boolean getCapSubtotal() throws JposException;
+ public boolean getCapTrainingMode() throws JposException;
+ public boolean getCapValidateJournal() throws JposException;
+ public boolean getCapXReport() throws JposException;
+
+ // Properties
+ public int getOutputID() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+
+ public int getAmountDecimalPlace() throws JposException;
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public boolean getCheckTotal() throws JposException;
+ public void setCheckTotal(boolean checkTotal) throws JposException;
+ public int getCountryCode() throws JposException;
+ public boolean getCoverOpen() throws JposException;
+ public boolean getDayOpened() throws JposException;
+ public int getDescriptionLength() throws JposException;
+ public boolean getDuplicateReceipt() throws JposException;
+ public int getErrorLevel() throws JposException;
+ public int getErrorOutID() throws JposException;
+ public int getErrorState() throws JposException;
+ public int getErrorStation() throws JposException;
+ public String getErrorString() throws JposException;
+ public boolean getFlagWhenIdle() throws JposException;
+ public void setFlagWhenIdle(boolean flagWhenIdle) throws JposException;
+ public boolean getJrnEmpty() throws JposException;
+ public boolean getJrnNearEnd() throws JposException;
+ public int getMessageLength() throws JposException;
+ public int getNumHeaderLines() throws JposException;
+ public int getNumTrailerLines() throws JposException;
+ public int getNumVatRates() throws JposException;
+ public String getPredefinedPaymentLines() throws JposException;
+ public int getPrinterState() throws JposException;
+ public int getQuantityDecimalPlaces() throws JposException;
+ public int getQuantityLength() throws JposException;
+ public boolean getRecEmpty() throws JposException;
+ public boolean getRecNearEnd() throws JposException;
+ public int getRemainingFiscalMemory() throws JposException;
+ public String getReservedWord() throws JposException;
+ public boolean getSlpEmpty() throws JposException;
+ public boolean getSlpNearEnd() throws JposException;
+ public int getSlipSelection() throws JposException;
+ public void setSlipSelection(int slipSelection) throws JposException;
+ public boolean getTrainingModeActive() throws JposException;
+
+ // Methods
+ public void beginFiscalDocument(int documentAmount)
+ throws JposException;
+ public void beginFiscalReceipt(boolean printHeader)
+ throws JposException;
+ public void beginFixedOutput(int station, int documentType)
+ throws JposException;
+ public void beginInsertion(int timeout) throws JposException;
+ public void beginItemList(int vatID) throws JposException;
+ public void beginNonFiscal() throws JposException;
+ public void beginRemoval(int timeout) throws JposException;
+ public void beginTraining() throws JposException;
+ public void clearError() throws JposException;
+ public void clearOutput() throws JposException;
+ public void endFiscalDocument() throws JposException;
+ public void endFiscalReceipt(boolean printHeader) throws JposException;
+ public void endFixedOutput() throws JposException;
+ public void endInsertion() throws JposException;
+ public void endItemList() throws JposException;
+ public void endNonFiscal() throws JposException;
+ public void endRemoval() throws JposException;
+ public void endTraining() throws JposException;
+ public void getData(int dataItem, int[] optArgs, String[] data)
+ throws JposException;
+ public void getDate(String[] Date) throws JposException;
+ public void getTotalizer(int vatID, int optArgs, String[] data)
+ throws JposException;
+ public void getVatEntry(int vatID, int optArgs, int[] vatRate)
+ throws JposException;
+ public void printDuplicateReceipt() throws JposException;
+ public void printFiscalDocumentLine(String documentLine)
+ throws JposException;
+ public void printFixedOutput(int documentType, int lineNumber,
+ String data) throws JposException;
+ public void printNormal(int station, String data) throws JposException;
+ public void printPeriodicTotalsReport(String date1, String date2)
+ throws JposException;
+ public void printPowerLossReport() throws JposException;
+ public void printRecItem(String description, long price, int quantity,
+ int vatInfo, long unitPrice, String unitName)
+ throws JposException;
+ public void printRecItemAdjustment(int adjustmentType,
+ String description, long amount, int vatInfo)
+ throws JposException;
+ public void printRecMessage(String message) throws JposException;
+ public void printRecNotPaid(String description, long amount)
+ throws JposException;
+ public void printRecRefund(String description, long amount, int vatInfo)
+ throws JposException;
+ public void printRecSubtotal(long amount) throws JposException;
+ public void printRecSubtotalAdjustment(int adjustmentType,
+ String description, long amount) throws JposException;
+ public void printRecTotal(long total, long payment, String description)
+ throws JposException;
+ public void printRecVoid(String description) throws JposException;
+ public void printRecVoidItem(String description, long amount,
+ int quantity, int adjustmentType, long adjustment,
+ int vatInfo) throws JposException;
+ public void printReport(int reportType, String startNum, String endNum)
+ throws JposException;
+ public void printXReport() throws JposException;
+ public void printZReport() throws JposException;
+ public void resetPrinter() throws JposException;
+ public void setDate(String date) throws JposException;
+ public void setHeaderLine(int lineNumber, String text,
+ boolean doubleWidth) throws JposException;
+ public void setPOSID(String POSID, String cashierID)
+ throws JposException;
+ public void setStoreFiscalID(String ID) throws JposException;
+ public void setTrailerLine(int lineNumber, String text,
+ boolean doubleWidth) throws JposException;
+ public void setVatTable() throws JposException;
+ public void setVatValue(int vatID, String vatValue)
+ throws JposException;
+ public void verifyItem(String itemName, int vatID) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService14.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService14.java
new file mode 100644
index 0000000..f8d27f2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterService14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface FiscalPrinterService14 extends FiscalPrinterService13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService15.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService15.java
new file mode 100644
index 0000000..daae22d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService15.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterService15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface FiscalPrinterService15
+ extends FiscalPrinterService14, JposServiceInstance
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService16.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService16.java
new file mode 100644
index 0000000..833fdb5
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService16.java
@@ -0,0 +1,93 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterService16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2001-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface FiscalPrinterService16
+ extends FiscalPrinterService15
+{
+ // Capabilities
+ public boolean getCapAdditionalHeader() throws JposException;
+ public boolean getCapAdditionalTrailer() throws JposException;
+ public boolean getCapChangeDue() throws JposException;
+ public boolean getCapEmptyReceiptIsVoidable() throws JposException;
+ public boolean getCapFiscalReceiptStation() throws JposException;
+ public boolean getCapFiscalReceiptType() throws JposException;
+ public boolean getCapMultiContractor() throws JposException;
+ public boolean getCapOnlyVoidLastItem() throws JposException;
+ public boolean getCapPackageAdjustment() throws JposException;
+ public boolean getCapPostPreLine() throws JposException;
+ public boolean getCapSetCurrency() throws JposException;
+ public boolean getCapTotalizerType() throws JposException;
+
+ // Properties
+ public int getActualCurrency() throws JposException;
+ public String getAdditionalHeader() throws JposException;
+ public void setAdditionalHeader(String additionalHeader)
+ throws JposException;
+ public String getAdditionalTrailer() throws JposException;
+ public void setAdditionalTrailer(String additionalTrailer)
+ throws JposException;
+ public String getChangeDue() throws JposException;
+ public void setChangeDue(String changeDue) throws JposException;
+ public int getContractorId() throws JposException;
+ public void setContractorId(int contractorId) throws JposException;
+ public int getDateType() throws JposException;
+ public void setDateType(int dateType) throws JposException;
+ public int getFiscalReceiptStation() throws JposException;
+ public void setFiscalReceiptStation(int fiscalReceiptStation)
+ throws JposException;
+ public int getFiscalReceiptType() throws JposException;
+ public void setFiscalReceiptType(int fiscalReceiptType)
+ throws JposException;
+ public int getMessageType() throws JposException;
+ public void setMessageType(int messageType) throws JposException;
+ public String getPostLine() throws JposException;
+ public void setPostLine(String postLine) throws JposException;
+ public String getPreLine() throws JposException;
+ public void setPreLine(String preLine) throws JposException;
+ public int getTotalizerType() throws JposException;
+ public void setTotalizerType(int totalizerType) throws JposException;
+
+ // Methods
+ public void setCurrency(int newCurrency) throws JposException;
+ public void printRecCash(long amount) throws JposException;
+ public void printRecItemFuel(String description, long price,
+ int quantity, int vatInfo, long unitPrice,
+ String unitName, long specialTax, String specialTaxName)
+ throws JposException;
+ public void printRecItemFuelVoid(String description, long price,
+ int vatInfo, long specialTax) throws JposException;
+ public void printRecPackageAdjustment(int adjustmentType,
+ String description, String vatAdjustment)
+ throws JposException;
+ public void printRecPackageAdjustVoid(int adjustmentType,
+ String vatAdjustment) throws JposException;
+ public void printRecRefundVoid(String description, long amount,
+ int vatInfo) throws JposException;
+ public void printRecSubtotalAdjustVoid(int adjustmentType, long amount)
+ throws JposException;
+ public void printRecTaxID(String taxID) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService17.java
new file mode 100644
index 0000000..f20f2b9
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService17.java
@@ -0,0 +1,43 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+// 16-Apr-2003 Release 1.7.2: Added getAmountDecimalPlaces to BS
+// correct a spelling error present since release
+// 1.3.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface FiscalPrinterService17
+ extends FiscalPrinterService16
+{
+ // The AmountDecimalPlaces property was incorrectly spelled
+ // AmountDecimalPlace since version 1.3. In version 1.7.2 and later,
+ // the correct spelling is supported. The old version is left for
+ // Application and Device Service compatibility. The implementations
+ // of getAmountDecimalPlaces and getAmountDecimalPlace should be
+ // identical.
+
+ // Properties
+ public int getAmountDecimalPlaces() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService18.java
new file mode 100644
index 0000000..64f7f06
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService18.java
@@ -0,0 +1,45 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+// 16-Apr-2003 Release 1.8.2: Added getAmountDecimalPlaces to BS
+// correct a spelling error present since release
+// 1.3.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface FiscalPrinterService18
+ extends FiscalPrinterService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService19.java
new file mode 100644
index 0000000..b326372
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/FiscalPrinterService19.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// FiscalPrinterService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Fiscal Printer for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface FiscalPrinterService19
+ extends FiscalPrinterService18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/GateService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/GateService112.java
new file mode 100644
index 0000000..e4d6c88
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/GateService112.java
@@ -0,0 +1,64 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// GateService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Gate for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface GateService112
+ extends BaseService, JposServiceInstance
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapGateStatus() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapRealTimeData() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Properties
+ public int getGetStatus() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void openGate()
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+ public void waitForGateClose(int timeout)
+ throws JposException;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/GateService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/GateService113.java
new file mode 100644
index 0000000..e5d0600
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/GateService113.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// GateService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Gate for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface GateService113 extends GateService112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/GateService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/GateService114.java
new file mode 100644
index 0000000..a84fba1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/GateService114.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// GateService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Gate for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface GateService114 extends GateService113
+{
+ // Nothing new added for release 1.14
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService110.java
new file mode 100644
index 0000000..78c67e5
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService110.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface HardTotalsService110
+ extends HardTotalsService19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService111.java
new file mode 100644
index 0000000..ab92c79
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface HardTotalsService111 extends HardTotalsService110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService112.java
new file mode 100644
index 0000000..278a333
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface HardTotalsService112 extends HardTotalsService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService113.java
new file mode 100644
index 0000000..5e5930a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface HardTotalsService113 extends HardTotalsService112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService114.java
new file mode 100644
index 0000000..0d7bf98
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Hard Totals for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface HardTotalsService114 extends HardTotalsService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService12.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService12.java
new file mode 100644
index 0000000..d0ed7da
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService12.java
@@ -0,0 +1,65 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsService12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to Hard Totals for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface HardTotalsService12 extends BaseService
+{
+ // Capabilities
+ public boolean getCapErrorDetection() throws JposException;
+ public boolean getCapSingleFile() throws JposException;
+ public boolean getCapTransactions() throws JposException;
+
+ // Properties
+ public int getFreeData() throws JposException;
+ public int getNumberOfFiles() throws JposException;
+ public int getTotalsSize() throws JposException;
+ public boolean getTransactionInProgress() throws JposException;
+
+ // Methods
+ public void beginTrans() throws JposException;
+ public void claimFile(int hTotalsFile, int timeout)
+ throws JposException;
+ public void commitTrans() throws JposException;
+ public void create(String fileName, int[] hTotalsFile, int size,
+ boolean errorDetection) throws JposException;
+ public void delete(String fileName) throws JposException;
+ public void find(String fileName, int[] hTotalsFile, int[] size)
+ throws JposException;
+ public void findByIndex(int index, String[] fileName)
+ throws JposException;
+ public void read(int hTotalsFile, byte[] data, int offset,
+ int count) throws JposException;
+ public void recalculateValidationData(int hTotalsFile)
+ throws JposException;
+ public void releaseFile(int hTotalsFile) throws JposException;
+ public void rename(int hTotalsFile, String fileName)
+ throws JposException;
+ public void rollback() throws JposException;
+ public void setAll(int hTotalsFile, byte value) throws JposException;
+ public void validateData(int hTotalsFile) throws JposException;
+ public void write(int hTotalsFile, byte[] data, int offset, int count)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService13.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService13.java
new file mode 100644
index 0000000..0cc7b46
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService13.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsService13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface HardTotalsService13 extends HardTotalsService12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService14.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService14.java
new file mode 100644
index 0000000..c2b28dd
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsService14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface HardTotalsService14 extends HardTotalsService13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService15.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService15.java
new file mode 100644
index 0000000..c3cb016
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService15.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsService15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface HardTotalsService15
+ extends HardTotalsService14, JposServiceInstance
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService16.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService16.java
new file mode 100644
index 0000000..23edf34
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService16.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsService16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2001-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface HardTotalsService16
+ extends HardTotalsService15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService17.java
new file mode 100644
index 0000000..4b7d0c6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService17.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface HardTotalsService17
+ extends HardTotalsService16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService18.java
new file mode 100644
index 0000000..4233ae2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService18.java
@@ -0,0 +1,42 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface HardTotalsService18
+ extends HardTotalsService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService19.java
new file mode 100644
index 0000000..3c13659
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/HardTotalsService19.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// HardTotalsService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Hard Totals for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface HardTotalsService19
+ extends HardTotalsService18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ImageScannerService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ImageScannerService111.java
new file mode 100644
index 0000000..bbc1610
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ImageScannerService111.java
@@ -0,0 +1,98 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ImageScannerService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Image Scanner for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface ImageScannerService111
+ extends BaseService, JposServiceInstance
+{
+ // Capabilities
+ public boolean getCapAim() throws JposException;
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapDecodeData() throws JposException;
+ public boolean getCapHostTriggered() throws JposException;
+ public boolean getCapIlluminate() throws JposException;
+ public boolean getCapImageData() throws JposException;
+ public boolean getCapImageQuality() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+ public boolean getCapVideoData() throws JposException;
+
+
+ // Properties
+ public boolean getAimMode() throws JposException;
+ public void setAimMode(boolean aimMode) throws JposException;
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public int getBitsPerPixel() throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public byte[] getFrameData() throws JposException;
+ public int getFrameType() throws JposException;
+ public boolean getIlluminateMode() throws JposException;
+ public void setIlluminateMode(boolean illuminateMode) throws JposException;
+ public int getImageHeight() throws JposException;
+ public int getImageLength() throws JposException;
+ public int getImageMode() throws JposException;
+ public void setImageMode(int imageMode) throws JposException;
+ public int getImageQuality() throws JposException;
+ public void setImageQuality(int imageQuality) throws JposException;
+ public int getImageType() throws JposException;
+ public int getImageWidth() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getVideoCount() throws JposException;
+ public void setVideoCount(int videoCount) throws JposException;
+ public int getVideoRate() throws JposException;
+ public void setVideoRate(int videoRate) throws JposException;
+
+ // Methods
+ public void clearInput()
+ throws JposException;
+ public void clearInputProperties()
+ throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void startSession()
+ throws JposException;
+ public void stopSession()
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ImageScannerService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ImageScannerService112.java
new file mode 100644
index 0000000..3cdfd0c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ImageScannerService112.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ImageScannerService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Image Scanner for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ImageScannerService112
+ extends ImageScannerService111
+{
+ // Nothing new added for release 1.12
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ImageScannerService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ImageScannerService113.java
new file mode 100644
index 0000000..3686d1f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ImageScannerService113.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ImageScannerService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Image Scanner for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ImageScannerService113
+ extends ImageScannerService112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ImageScannerService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ImageScannerService114.java
new file mode 100644
index 0000000..2a6febb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ImageScannerService114.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ImageScannerService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Image Scanner for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ImageScannerService114
+ extends ImageScannerService113
+{
+ // Nothing new added for release 1.14
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ItemDispenserService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ItemDispenserService112.java
new file mode 100644
index 0000000..77234d4
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ItemDispenserService112.java
@@ -0,0 +1,72 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ItemDispenserService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Item Dispenser for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface ItemDispenserService112
+ extends BaseService, JposServiceInstance
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapEmptySensor() throws JposException;
+ public boolean getCapIndividualSlotStatus() throws JposException;
+ public boolean getCapJamSensor() throws JposException;
+ public boolean getCapNearEmptySensor() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Properties
+ public int getDispenserStatus() throws JposException;
+ public int getMaxSlots() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+
+ // Methods
+ public void adjustItemCount(int itemCount,
+ int slotNumber)
+ throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void dispenseItem(int[] numItem,
+ int slotNumber)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void readItemCount(int[] itemCount,
+ int slotNumber)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ItemDispenserService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ItemDispenserService113.java
new file mode 100644
index 0000000..9fbc0ab
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ItemDispenserService113.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ItemDispenserService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Item Dispenser for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface ItemDispenserService113 extends ItemDispenserService112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ItemDispenserService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ItemDispenserService114.java
new file mode 100644
index 0000000..875daa1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ItemDispenserService114.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ItemDispenserService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Item Dispenser for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface ItemDispenserService114 extends ItemDispenserService113
+{
+ // Nothing new added for release 1.14
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService110.java
new file mode 100644
index 0000000..b2b9338
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService110.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface KeylockService110
+ extends KeylockService19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService111.java
new file mode 100644
index 0000000..150b1b0
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService111.java
@@ -0,0 +1,35 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface KeylockService111 extends KeylockService110
+{
+ // Capabilities
+ public int getCapKeylockType() throws JposException;
+
+ // Properties
+ public byte[] getElectronicKeyValue() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService112.java
new file mode 100644
index 0000000..54a2dec
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface KeylockService112 extends KeylockService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService113.java
new file mode 100644
index 0000000..c814ad0
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface KeylockService113 extends KeylockService112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService114.java
new file mode 100644
index 0000000..12a6cb6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Keylock for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface KeylockService114 extends KeylockService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService12.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService12.java
new file mode 100644
index 0000000..348959f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService12.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockService12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to Keylock for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface KeylockService12 extends BaseService
+{
+ // Properties
+ public int getKeyPosition() throws JposException;
+ public int getPositionCount() throws JposException;
+
+ // Methods
+ public void waitForKeylockChange(int keyPosition, int timeout)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService13.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService13.java
new file mode 100644
index 0000000..053c952
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService13.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockService13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface KeylockService13 extends KeylockService12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService14.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService14.java
new file mode 100644
index 0000000..143b3ee
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockService14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface KeylockService14 extends KeylockService13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService15.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService15.java
new file mode 100644
index 0000000..1547418
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService15.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockService15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface KeylockService15
+ extends KeylockService14, JposServiceInstance
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService16.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService16.java
new file mode 100644
index 0000000..e4112a3
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService16.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockService16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2001-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface KeylockService16
+ extends KeylockService15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService17.java
new file mode 100644
index 0000000..56a05dc
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService17.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface KeylockService17
+ extends KeylockService16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService18.java
new file mode 100644
index 0000000..8510d12
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService18.java
@@ -0,0 +1,42 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface KeylockService18
+ extends KeylockService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService19.java
new file mode 100644
index 0000000..619e76f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/KeylockService19.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// KeylockService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Keylock for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface KeylockService19
+ extends KeylockService18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/LightsService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/LightsService112.java
new file mode 100644
index 0000000..d1baef2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/LightsService112.java
@@ -0,0 +1,69 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LightsService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Lights for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface LightsService112
+ extends BaseService, JposServiceInstance
+{
+ // Capabilities
+ public int getCapAlarm() throws JposException;
+ public boolean getCapBlink() throws JposException;
+ public int getCapColor() throws JposException;
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Properties
+ public int getMaxLights() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void switchOff(int lightNumber)
+ throws JposException;
+ public void switchOn(int lightNumber,
+ int blinkOnCycle,
+ int blinkOffCycle,
+ int color,
+ int alarm)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/LightsService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/LightsService113.java
new file mode 100644
index 0000000..da36087
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/LightsService113.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LightsService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Lights for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface LightsService113 extends LightsService112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/LightsService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/LightsService114.java
new file mode 100644
index 0000000..bcd5c84
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/LightsService114.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LightsService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Lights for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface LightsService114 extends LightsService113
+{
+ // Nothing new added for release 1.14
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService110.java
new file mode 100644
index 0000000..d53abff
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService110.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface LineDisplayService110
+ extends LineDisplayService19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService111.java
new file mode 100644
index 0000000..04b6cef
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface LineDisplayService111 extends LineDisplayService110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService112.java
new file mode 100644
index 0000000..f615025
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface LineDisplayService112 extends LineDisplayService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService113.java
new file mode 100644
index 0000000..6658495
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface LineDisplayService113 extends LineDisplayService112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService114.java
new file mode 100644
index 0000000..77c2a16
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Line Display for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface LineDisplayService114 extends LineDisplayService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService12.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService12.java
new file mode 100644
index 0000000..d656680
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService12.java
@@ -0,0 +1,89 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayService12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to Line Display for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface LineDisplayService12 extends BaseService
+{
+ // Capabilities
+ public int getCapBlink() throws JposException;
+ public boolean getCapBrightness() throws JposException;
+ public int getCapCharacterSet() throws JposException;
+ public boolean getCapDescriptors() throws JposException;
+ public boolean getCapHMarquee() throws JposException;
+ public boolean getCapICharWait() throws JposException;
+ public boolean getCapVMarquee() throws JposException;
+
+ // Properties
+ public int getCharacterSet() throws JposException;
+ public void setCharacterSet(int characterSet) throws JposException;
+ public String getCharacterSetList() throws JposException;
+ public int getColumns() throws JposException;
+ public int getCurrentWindow() throws JposException;
+ public void setCurrentWindow(int currentWindow) throws JposException;
+ public int getCursorColumn() throws JposException;
+ public void setCursorColumn(int cursorColumn) throws JposException;
+ public int getCursorRow() throws JposException;
+ public void setCursorRow(int cursorRow) throws JposException;
+ public boolean getCursorUpdate() throws JposException;
+ public void setCursorUpdate(boolean cursorUpdate) throws JposException;
+ public int getDeviceBrightness() throws JposException;
+ public void setDeviceBrightness(int deviceBrightness)
+ throws JposException;
+ public int getDeviceColumns() throws JposException;
+ public int getDeviceDescriptors() throws JposException;
+ public int getDeviceRows() throws JposException;
+ public int getDeviceWindows() throws JposException;
+ public int getInterCharacterWait() throws JposException;
+ public void setInterCharacterWait(int interCharacterWait)
+ throws JposException;
+ public int getMarqueeFormat() throws JposException;
+ public void setMarqueeFormat(int marqueeFormat) throws JposException;
+ public int getMarqueeRepeatWait() throws JposException;
+ public void setMarqueeRepeatWait(int marqueeRepeatWait)
+ throws JposException;
+ public int getMarqueeType() throws JposException;
+ public void setMarqueeType(int marqueeType) throws JposException;
+ public int getMarqueeUnitWait() throws JposException;
+ public void setMarqueeUnitWait(int marqueeUnitWait)
+ throws JposException;
+ public int getRows() throws JposException;
+
+ // Methods
+ public void clearDescriptors() throws JposException;
+ public void clearText() throws JposException;
+ public void createWindow(int viewportRow, int viewportColumn,
+ int viewportHeight, int viewportWidth, int windowHeight,
+ int windowWidth) throws JposException;
+ public void destroyWindow() throws JposException;
+ public void displayText(String data, int attribute)
+ throws JposException;
+ public void displayTextAt(int row, int column, String data,
+ int attribute) throws JposException;
+ public void refreshWindow(int window) throws JposException;
+ public void scrollText(int direction, int units) throws JposException;
+ public void setDescriptor(int descriptor, int attribute)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService13.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService13.java
new file mode 100644
index 0000000..9eca6d2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService13.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayService13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface LineDisplayService13 extends LineDisplayService12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService14.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService14.java
new file mode 100644
index 0000000..bb50291
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayService14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface LineDisplayService14 extends LineDisplayService13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService15.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService15.java
new file mode 100644
index 0000000..d909671
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService15.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayService15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface LineDisplayService15
+ extends LineDisplayService14, JposServiceInstance
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService16.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService16.java
new file mode 100644
index 0000000..46db5d9
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService16.java
@@ -0,0 +1,51 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayService16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2001-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface LineDisplayService16
+ extends LineDisplayService15
+{
+ // Capabilities
+ public boolean getCapBlinkRate() throws JposException;
+ public int getCapCursorType() throws JposException;
+ public boolean getCapCustomGlyph() throws JposException;
+ public int getCapReadBack() throws JposException;
+ public int getCapReverse() throws JposException;
+
+ // Properties
+ public int getBlinkRate() throws JposException;
+ public void setBlinkRate(int blinkRate) throws JposException;
+ public int getCursorType() throws JposException;
+ public void setCursorType(int cursorType) throws JposException;
+ public String getCustomGlyphList() throws JposException;
+ public int getGlyphHeight() throws JposException;
+ public int getGlyphWidth() throws JposException;
+
+ // Methods
+ public void defineGlyph(int glyphCode, byte[] glyph)
+ throws JposException;
+ public void readCharacterAtCursor(int[] aChar) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService17.java
new file mode 100644
index 0000000..eef6b8b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService17.java
@@ -0,0 +1,51 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface LineDisplayService17
+ extends LineDisplayService16
+{
+ // Capabilities
+ public boolean getCapBitmap() throws JposException;
+ public boolean getCapScreenMode() throws JposException;
+ public boolean getCapMapCharacterSet() throws JposException;
+
+ // Properties
+ public boolean getMapCharacterSet() throws JposException;
+ public void setMapCharacterSet(boolean mapCharacterSet)
+ throws JposException;
+ public int getMaximumX() throws JposException;
+ public int getMaximumY() throws JposException;
+ public int getScreenMode() throws JposException;
+ public void setScreenMode(int screenMode) throws JposException;
+ public String getScreenModeList() throws JposException;
+
+ // Methods
+ public void displayBitmap(String fileName, int width, int alignmentX,
+ int alignmentY) throws JposException;
+ public void setBitmap(int bitmapNumber, String fileName, int width,
+ int alignmentX, int alignmentY) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService18.java
new file mode 100644
index 0000000..94cb995
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService18.java
@@ -0,0 +1,42 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface LineDisplayService18
+ extends LineDisplayService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService19.java
new file mode 100644
index 0000000..4ee52bd
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/LineDisplayService19.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// LineDisplayService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Line Display for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface LineDisplayService19
+ extends LineDisplayService18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService110.java
new file mode 100644
index 0000000..46f2b81
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService110.java
@@ -0,0 +1,34 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MICRService110
+ extends MICRService19
+{
+ // Methods
+ public void clearInputProperties()
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService111.java
new file mode 100644
index 0000000..4f2cd37
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MICRService111 extends MICRService110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService112.java
new file mode 100644
index 0000000..10f737b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MICRService112 extends MICRService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService113.java
new file mode 100644
index 0000000..bf2ab17
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MICRService113 extends MICRService112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService114.java
new file mode 100644
index 0000000..417003b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to MICR for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MICRService114 extends MICRService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService12.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService12.java
new file mode 100644
index 0000000..947c569
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService12.java
@@ -0,0 +1,56 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRService12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to MICR for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MICRService12 extends BaseService
+{
+ // Capabilities
+ public boolean getCapValidationDevice() throws JposException;
+
+ // Properties
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public String getAccountNumber() throws JposException;
+ public String getAmount() throws JposException;
+ public String getBankNumber() throws JposException;
+ public int getCheckType() throws JposException;
+ public int getCountryCode() throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public String getEPC() throws JposException;
+ public String getRawData() throws JposException;
+ public String getSerialNumber() throws JposException;
+ public String getTransitNumber() throws JposException;
+
+ // Methods
+ public void beginInsertion(int timeout) throws JposException;
+ public void beginRemoval(int timeout) throws JposException;
+ public void clearInput() throws JposException;
+ public void endInsertion() throws JposException;
+ public void endRemoval() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService13.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService13.java
new file mode 100644
index 0000000..9c7bb44
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService13.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRService13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MICRService13 extends MICRService12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService14.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService14.java
new file mode 100644
index 0000000..eca7de2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRService14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MICRService14 extends MICRService13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService15.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService15.java
new file mode 100644
index 0000000..70dfb9a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService15.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRService15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface MICRService15
+ extends MICRService14, JposServiceInstance
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService16.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService16.java
new file mode 100644
index 0000000..44989ca
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService16.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRService16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2001-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MICRService16
+ extends MICRService15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService17.java
new file mode 100644
index 0000000..e2e5947
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService17.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MICRService17
+ extends MICRService16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService18.java
new file mode 100644
index 0000000..99e62e4
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService18.java
@@ -0,0 +1,42 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MICRService18
+ extends MICRService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService19.java
new file mode 100644
index 0000000..9e64680
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MICRService19.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MICRService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MICR for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MICRService19
+ extends MICRService18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService110.java
new file mode 100644
index 0000000..5fdee60
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService110.java
@@ -0,0 +1,52 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+// 2006-Oct-23 JavaPOS 1.10.2 Update BS
+// Fixed type of writeTracks data parameter to be byte[][] as
+// UnifiedPOS has corrected the type from "string" to
+// "array of binary".
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MSRService110
+ extends MSRService19
+{
+ // Capabilities
+ public int getCapWritableTracks()
+ throws JposException;
+
+ // Properties
+ public int getEncodingMaxLength()
+ throws JposException;
+ public int getTracksToWrite()
+ throws JposException;
+ public void setTracksToWrite(int tracks)
+ throws JposException;
+
+ // Methods
+ public void clearInputProperties()
+ throws JposException;
+ public void writeTracks(byte[][] data, int timeout)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService111.java
new file mode 100644
index 0000000..ce99d3e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService111.java
@@ -0,0 +1,35 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-08 JavaPOS release 1.11 BS
+// 2006-Oct-23 JavaPOS 1.10.2 Update BS
+// Fixed type of writeTracks data parameter to be byte[][] as
+// UnifiedPOS has corrected the type from "string" to
+// "array of binary".
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MSRService111 extends MSRService110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService112.java
new file mode 100644
index 0000000..d947b23
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService112.java
@@ -0,0 +1,71 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MSRService112 extends MSRService111
+{
+ // Capabilities
+ public String getCapCardAuthentication() throws JposException;
+ public int getCapDataEncryption() throws JposException;
+ public int getCapDeviceAuthentication() throws JposException;
+ public boolean getCapTrackDataMasking() throws JposException;
+
+ // Properties
+ public byte[] getAdditionalSecurityInformation() throws JposException;
+ public byte[] getCardAuthenticationData() throws JposException;
+ public int getCardAuthenticationDataLength() throws JposException;
+ public String getCardPropertyList() throws JposException;
+ public String getCardType() throws JposException;
+ public String getCardTypeList() throws JposException;
+ public int getDataEncryptionAlgorithm() throws JposException;
+ public void setDataEncryptionAlgorithm(int encryptAlgorithm) throws JposException;
+ public boolean getDeviceAuthenticated() throws JposException;
+ public int getDeviceAuthenticationProtocol() throws JposException;
+ public byte[] getTrack1EncryptedData() throws JposException;
+ public int getTrack1EncryptedDataLength() throws JposException;
+ public byte[] getTrack2EncryptedData() throws JposException;
+ public int getTrack2EncryptedDataLength() throws JposException;
+ public byte[] getTrack3EncryptedData() throws JposException;
+ public int getTrack3EncryptedDataLength() throws JposException;
+ public byte[] getTrack4EncryptedData() throws JposException;
+ public int getTrack4EncryptedDataLength() throws JposException;
+ public String getWriteCardType() throws JposException;
+ public void setWriteCardType(String cardType) throws JposException;
+
+ // Methods
+ public void authenticateDevice(byte[] response)
+ throws JposException;
+ public void deauthenticateDevice(byte[] response)
+ throws JposException;
+ public void retrieveCardProperty(String name,
+ String[] value)
+ throws JposException;
+ public void retrieveDeviceAuthenticationData(byte[] challenge)
+ throws JposException;
+ public void updateKey(String key,
+ String keyName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService113.java
new file mode 100644
index 0000000..e1f27e4
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService113.java
@@ -0,0 +1,43 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+// 2011-Aug-22 JavaPOS Release 1.13.3 BS
+// Added new retrieveDeviceAuthenticationData with correct
+// parameter type. Old method left in place for compatibility.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MSRService113 extends MSRService112
+{
+ // The retrieveDeviceAuthenticationData method's challenge parameter
+ // was incorrectly typed as byte[] in version 1.12. Since the parameter
+ // is an in/out parameter, the type should be byte[][].
+ //
+ // The old version is left for Application and Device Service
+ // compatibility.
+
+ // Methods
+ public void retrieveDeviceAuthenticationData(byte[][] challenge)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService114.java
new file mode 100644
index 0000000..dfa0b7d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to MSR for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MSRService114 extends MSRService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService12.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService12.java
new file mode 100644
index 0000000..578f55b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService12.java
@@ -0,0 +1,68 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRService12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to MSR for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MSRService12 extends BaseService
+{
+ // Capabilities
+ public boolean getCapISO() throws JposException;
+ public boolean getCapJISOne() throws JposException;
+ public boolean getCapJISTwo() throws JposException;
+
+ // Properties
+ public String getAccountNumber() throws JposException;
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public boolean getDecodeData() throws JposException;
+ public void setDecodeData(boolean decodeData) throws JposException;
+ public int getErrorReportingType() throws JposException;
+ public void setErrorReportingType(int errorReportingType)
+ throws JposException;
+ public String getExpirationDate() throws JposException;
+ public String getFirstName() throws JposException;
+ public String getMiddleInitial() throws JposException;
+ public boolean getParseDecodeData() throws JposException;
+ public void setParseDecodeData(boolean parseDecodeData)
+ throws JposException;
+ public String getServiceCode() throws JposException;
+ public String getSuffix() throws JposException;
+ public String getSurname() throws JposException;
+ public String getTitle() throws JposException;
+ public byte[] getTrack1Data() throws JposException;
+ public byte[] getTrack1DiscretionaryData() throws JposException;
+ public byte[] getTrack2Data() throws JposException;
+ public byte[] getTrack2DiscretionaryData() throws JposException;
+ public byte[] getTrack3Data() throws JposException;
+ public int getTracksToRead() throws JposException;
+ public void setTracksToRead(int tracksToRead) throws JposException;
+
+ // Methods
+ public void clearInput() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService13.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService13.java
new file mode 100644
index 0000000..3914f5c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService13.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRService13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MSRService13 extends MSRService12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService14.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService14.java
new file mode 100644
index 0000000..96f75ea
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRService14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MSRService14 extends MSRService13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService15.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService15.java
new file mode 100644
index 0000000..5cd7675
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService15.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRService15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface MSRService15
+ extends MSRService14, JposServiceInstance
+{
+ // Capabilities
+ public boolean getCapTransmitSentinels() throws JposException;
+
+ // Properties
+ public byte[] getTrack4Data() throws JposException;
+ public boolean getTransmitSentinels() throws JposException;
+ public void setTransmitSentinels(boolean transmitSentinels)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService16.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService16.java
new file mode 100644
index 0000000..a31e7a3
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService16.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRService16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2001-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MSRService16
+ extends MSRService15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService17.java
new file mode 100644
index 0000000..fd7e079
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService17.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MSRService17
+ extends MSRService16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService18.java
new file mode 100644
index 0000000..34892ce
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService18.java
@@ -0,0 +1,42 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MSRService18
+ extends MSRService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService19.java
new file mode 100644
index 0000000..7c7a6ab
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MSRService19.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MSRService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to MSR for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MSRService19
+ extends MSRService18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService110.java
new file mode 100644
index 0000000..d1fa84a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService110.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MotionSensorService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Motion Sensor for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface MotionSensorService110
+ extends MotionSensorService19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService111.java
new file mode 100644
index 0000000..c6305c7
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MotionSensorService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Motion Sensor for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MotionSensorService111 extends MotionSensorService110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService112.java
new file mode 100644
index 0000000..955d167
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MotionSensorService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Motion Sensor for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MotionSensorService112 extends MotionSensorService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService113.java
new file mode 100644
index 0000000..875faeb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MotionSensorService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Motion Sensor for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MotionSensorService113 extends MotionSensorService112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService114.java
new file mode 100644
index 0000000..7a629f5
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MotionSensorService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Motion Sensor for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface MotionSensorService114 extends MotionSensorService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService17.java
new file mode 100644
index 0000000..f16f041
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService17.java
@@ -0,0 +1,45 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MotionSensorService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Motion Sensor for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface MotionSensorService17
+ extends BaseService, JposServiceInstance
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public boolean getMotion() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getTimeout() throws JposException;
+ public void setTimeout(int timeout) throws JposException;
+
+ // Methods
+ public void waitForMotion(int timeout) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService18.java
new file mode 100644
index 0000000..6a7277d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService18.java
@@ -0,0 +1,43 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MotionSensorService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Motion Sensor for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface MotionSensorService18
+ extends MotionSensorService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService19.java
new file mode 100644
index 0000000..b715865
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/MotionSensorService19.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// MotionSensorService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Motion Sensor for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface MotionSensorService19
+ extends MotionSensorService18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService110.java
new file mode 100644
index 0000000..27d91f1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService110.java
@@ -0,0 +1,34 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface PINPadService110
+ extends PINPadService19
+{
+ // Methods
+ public void clearInputProperties()
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService111.java
new file mode 100644
index 0000000..ee7d9b1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface PINPadService111 extends PINPadService110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService112.java
new file mode 100644
index 0000000..f1f3a5d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface PINPadService112 extends PINPadService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService113.java
new file mode 100644
index 0000000..b787578
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface PINPadService113 extends PINPadService112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService114.java
new file mode 100644
index 0000000..857577b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to PIN Pad for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface PINPadService114 extends PINPadService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService13.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService13.java
new file mode 100644
index 0000000..b3f96e7
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService13.java
@@ -0,0 +1,86 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadService13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface PINPadService13 extends BaseService
+{
+ // Capabilities
+ public int getCapDisplay() throws JposException;
+ public int getCapLanguage() throws JposException;
+ public boolean getCapKeyboard() throws JposException;
+ public boolean getCapMACCalculation() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapTone() throws JposException;
+
+ // Properties
+ public String getAccountNumber() throws JposException;
+ public void setAccountNumber(String accountNumber) throws JposException;
+ public String getAdditionalSecurityInformation() throws JposException;
+ public long getAmount() throws JposException;
+ public void setAmount(long amount) throws JposException;
+ public String getAvailableLanguagesList() throws JposException;
+ public String getAvailablePromptsList() throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public String getEncryptedPIN() throws JposException;
+ public int getMaximumPINLength() throws JposException;
+ public void setMaximumPINLength(int maximumPINLength) throws JposException;
+ public String getMerchantID() throws JposException;
+ public void setMerchantID(String merchantID) throws JposException;
+ public int getMinimumPINLength() throws JposException;
+ public void setMinimumPINLength(int minimumPINLength) throws JposException;
+ public boolean getPINEntryEnabled() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getPrompt() throws JposException;
+ public void setPrompt(int propmpt) throws JposException;
+ public String getPromptLanguage() throws JposException;
+ public void setPromptLanguage(String promptLanguage) throws JposException;
+ public String getTerminalID() throws JposException;
+ public void setTerminalID(String terminalID) throws JposException;
+ public byte[] getTrack1Data() throws JposException;
+ public void setTrack1Data(byte[] track1Data) throws JposException;
+ public byte[] getTrack2Data() throws JposException;
+ public void setTrack2Data(byte[] track2Data) throws JposException;
+ public byte[] getTrack3Data() throws JposException;
+ public void setTrack3Data(byte[] track3Data) throws JposException;
+ public int getTransactionType() throws JposException;
+ public void setTransactionType(int transactionType) throws JposException;
+
+ // Methods
+ public void beginEFTTransaction(String PINPadSystem, int transactionHost)
+ throws JposException;
+ public void clearInput() throws JposException;
+ public void computeMAC(String inMsg, String[] outMsg)
+ throws JposException;
+ public void enablePINEntry() throws JposException;
+ public void endEFTTransaction(int completionCode) throws JposException;
+ public void updateKey(int keyNum, String key) throws JposException;
+ public void verifyMAC(String message) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService14.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService14.java
new file mode 100644
index 0000000..a684fb6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadService14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface PINPadService14 extends PINPadService13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService15.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService15.java
new file mode 100644
index 0000000..18c5d60
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService15.java
@@ -0,0 +1,35 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadService15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface PINPadService15
+ extends PINPadService14, JposServiceInstance
+{
+ // Properties
+ public byte[] getTrack4Data() throws JposException;
+ public void setTrack4Data(byte[] track4Data) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService16.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService16.java
new file mode 100644
index 0000000..cf8c9ba
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService16.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadService16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2001-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface PINPadService16
+ extends PINPadService15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService17.java
new file mode 100644
index 0000000..2fd92d6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService17.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface PINPadService17
+ extends PINPadService16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService18.java
new file mode 100644
index 0000000..a0cbe3b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService18.java
@@ -0,0 +1,42 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface PINPadService18
+ extends PINPadService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService19.java
new file mode 100644
index 0000000..7565d38
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PINPadService19.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PINPadService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to PIN Pad for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface PINPadService19
+ extends PINPadService18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService110.java
new file mode 100644
index 0000000..718293f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService110.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSKeyboardService110
+ extends POSKeyboardService19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService111.java
new file mode 100644
index 0000000..b1b4214
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSKeyboardService111 extends POSKeyboardService110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService112.java
new file mode 100644
index 0000000..b8c5a52
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSKeyboardService112 extends POSKeyboardService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService113.java
new file mode 100644
index 0000000..f0a4d24
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSKeyboardService113 extends POSKeyboardService112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService114.java
new file mode 100644
index 0000000..7ba5da1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to POS Keyboard for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSKeyboardService114 extends POSKeyboardService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService12.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService12.java
new file mode 100644
index 0000000..224d7eb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService12.java
@@ -0,0 +1,47 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardService12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to POS Keyboard for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSKeyboardService12 extends BaseService
+{
+ // Capabilities
+ public boolean getCapKeyUp() throws JposException;
+
+ // Properties
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public int getEventTypes() throws JposException;
+ public void setEventTypes(int eventTypes) throws JposException;
+ public int getPOSKeyData() throws JposException;
+ public int getPOSKeyEventType() throws JposException;
+
+ // Methods
+ public void clearInput() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService13.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService13.java
new file mode 100644
index 0000000..7c39cb7
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService13.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardService13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSKeyboardService13 extends POSKeyboardService12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService14.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService14.java
new file mode 100644
index 0000000..a4e6ac6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardService14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSKeyboardService14 extends POSKeyboardService13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService15.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService15.java
new file mode 100644
index 0000000..2de6c56
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService15.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardService15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface POSKeyboardService15
+ extends POSKeyboardService14, JposServiceInstance
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService16.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService16.java
new file mode 100644
index 0000000..4401768
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService16.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardService16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2001-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSKeyboardService16
+ extends POSKeyboardService15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService17.java
new file mode 100644
index 0000000..9c7d6df
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService17.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSKeyboardService17
+ extends POSKeyboardService16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService18.java
new file mode 100644
index 0000000..86039f7
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService18.java
@@ -0,0 +1,42 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSKeyboardService18
+ extends POSKeyboardService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService19.java
new file mode 100644
index 0000000..4045bdb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSKeyboardService19.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSKeyboardService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Keyboard for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSKeyboardService19
+ extends POSKeyboardService18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService110.java
new file mode 100644
index 0000000..c5c98a1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService110.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPowerService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POSPower for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface POSPowerService110
+ extends POSPowerService19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService111.java
new file mode 100644
index 0000000..a599258
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPowerService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POSPower for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSPowerService111 extends POSPowerService110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService112.java
new file mode 100644
index 0000000..64f1245
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPowerService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POSPower for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSPowerService112 extends POSPowerService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService113.java
new file mode 100644
index 0000000..80e1c27
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPowerService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POSPower for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSPowerService113 extends POSPowerService112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService114.java
new file mode 100644
index 0000000..93a378b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPowerService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to POSPower for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSPowerService114 extends POSPowerService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService15.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService15.java
new file mode 100644
index 0000000..6166bee
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService15.java
@@ -0,0 +1,54 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPowerService15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POSPower for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface POSPowerService15
+ extends BaseService, JposServiceInstance
+{
+ // Capabilities
+ public boolean getCapFanAlarm() throws JposException;
+ public boolean getCapHeatAlarm() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapQuickCharge() throws JposException;
+ public boolean getCapShutdownPOS() throws JposException;
+ public int getCapUPSChargeState() throws JposException;
+
+ // Properties
+ public int getEnforcedShutdownDelayTime() throws JposException;
+ public void setEnforcedShutdownDelayTime(int delay)
+ throws JposException;
+ public int getPowerFailDelayTime() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public boolean getQuickChargeMode() throws JposException;
+ public int getQuickChargeTime() throws JposException;
+ public int getUPSChargeState() throws JposException;
+
+ // Methods
+ public void shutdownPOS() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService16.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService16.java
new file mode 100644
index 0000000..4e9201f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService16.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPowerService16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POSPower for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2001-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface POSPowerService16
+ extends POSPowerService15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService17.java
new file mode 100644
index 0000000..93dbd86
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService17.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPowerService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POSPower for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface POSPowerService17
+ extends POSPowerService16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService18.java
new file mode 100644
index 0000000..fc7cfa1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService18.java
@@ -0,0 +1,43 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPowerService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POSPower for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface POSPowerService18
+ extends POSPowerService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService19.java
new file mode 100644
index 0000000..a95c841
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPowerService19.java
@@ -0,0 +1,61 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPowerService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POSPower for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface POSPowerService19
+ extends POSPowerService18
+{
+ // Capabilities
+ public boolean getCapBatteryCapacityRemaining() throws JposException;
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapRestartPOS() throws JposException;
+ public boolean getCapStandbyPOS() throws JposException;
+ public boolean getCapSuspendPOS() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapVariableBatteryCriticallyLowThreshold() throws JposException;
+ public boolean getCapVariableBatteryLowThreshold() throws JposException;
+
+ // Properties
+ public int getBatteryCapacityRemaining() throws JposException;
+ public int getBatteryCriticallyLowThreshold() throws JposException;
+ public void setBatteryCriticallyLowThreshold(int threshold) throws JposException;
+ public int getBatteryLowThreshold() throws JposException;
+ public void setBatteryLowThreshold(int threshold) throws JposException;
+ public int getPowerSource() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void restartPOS()
+ throws JposException;
+ public void standbyPOS(int reason)
+ throws JposException;
+ public void suspendPOS(int reason)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService110.java
new file mode 100644
index 0000000..c89ec96
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService110.java
@@ -0,0 +1,35 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSPrinterService110
+ extends POSPrinterService19
+{
+ // Methods
+ public void printMemoryBitmap(int station, byte[] data, int type,
+ int width, int alignment)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService111.java
new file mode 100644
index 0000000..b06c51d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSPrinterService111 extends POSPrinterService110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService112.java
new file mode 100644
index 0000000..8ab3673
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSPrinterService112 extends POSPrinterService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService113.java
new file mode 100644
index 0000000..fb04a79
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService113.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSPrinterService113 extends POSPrinterService112
+{
+ // Capabilities
+ public int getCapRecRuledLine() throws JposException;
+ public int getCapSlpRuledLine() throws JposException;
+
+ // Methods
+ public void drawRuledLine(int station, String positionList,
+ int lineDirection, int lineWidth,
+ int lineStyle, int lineColor)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService114.java
new file mode 100644
index 0000000..68145ed
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to POS Printer for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSPrinterService114 extends POSPrinterService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService12.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService12.java
new file mode 100644
index 0000000..8727926
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService12.java
@@ -0,0 +1,172 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterService12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to POS Printer for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSPrinterService12 extends BaseService
+{
+ // Capabilities
+ public int getCapCharacterSet() throws JposException;
+ public boolean getCapConcurrentJrnRec() throws JposException;
+ public boolean getCapConcurrentJrnSlp() throws JposException;
+ public boolean getCapConcurrentRecSlp() throws JposException;
+ public boolean getCapCoverSensor() throws JposException;
+ public boolean getCapJrn2Color() throws JposException;
+ public boolean getCapJrnBold() throws JposException;
+ public boolean getCapJrnDhigh() throws JposException;
+ public boolean getCapJrnDwide() throws JposException;
+ public boolean getCapJrnDwideDhigh() throws JposException;
+ public boolean getCapJrnEmptySensor() throws JposException;
+ public boolean getCapJrnItalic() throws JposException;
+ public boolean getCapJrnNearEndSensor() throws JposException;
+ public boolean getCapJrnPresent() throws JposException;
+ public boolean getCapJrnUnderline() throws JposException;
+ public boolean getCapRec2Color() throws JposException;
+ public boolean getCapRecBarCode() throws JposException;
+ public boolean getCapRecBitmap() throws JposException;
+ public boolean getCapRecBold() throws JposException;
+ public boolean getCapRecDhigh() throws JposException;
+ public boolean getCapRecDwide() throws JposException;
+ public boolean getCapRecDwideDhigh() throws JposException;
+ public boolean getCapRecEmptySensor() throws JposException;
+ public boolean getCapRecItalic() throws JposException;
+ public boolean getCapRecLeft90() throws JposException;
+ public boolean getCapRecNearEndSensor() throws JposException;
+ public boolean getCapRecPapercut() throws JposException;
+ public boolean getCapRecPresent() throws JposException;
+ public boolean getCapRecRight90() throws JposException;
+ public boolean getCapRecRotate180() throws JposException;
+ public boolean getCapRecStamp() throws JposException;
+ public boolean getCapRecUnderline() throws JposException;
+ public boolean getCapSlp2Color() throws JposException;
+ public boolean getCapSlpBarCode() throws JposException;
+ public boolean getCapSlpBitmap() throws JposException;
+ public boolean getCapSlpBold() throws JposException;
+ public boolean getCapSlpDhigh() throws JposException;
+ public boolean getCapSlpDwide() throws JposException;
+ public boolean getCapSlpDwideDhigh() throws JposException;
+ public boolean getCapSlpEmptySensor() throws JposException;
+ public boolean getCapSlpFullslip() throws JposException;
+ public boolean getCapSlpItalic() throws JposException;
+ public boolean getCapSlpLeft90() throws JposException;
+ public boolean getCapSlpNearEndSensor() throws JposException;
+ public boolean getCapSlpPresent() throws JposException;
+ public boolean getCapSlpRight90() throws JposException;
+ public boolean getCapSlpRotate180() throws JposException;
+ public boolean getCapSlpUnderline() throws JposException;
+ public boolean getCapTransaction() throws JposException;
+
+ // Properties
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public int getCharacterSet() throws JposException;
+ public void setCharacterSet(int characterSet) throws JposException;
+ public String getCharacterSetList() throws JposException;
+ public boolean getCoverOpen() throws JposException;
+ public int getErrorLevel() throws JposException;
+ public int getErrorStation() throws JposException;
+ public String getErrorString() throws JposException;
+ public boolean getFlagWhenIdle() throws JposException;
+ public void setFlagWhenIdle(boolean flagWhenIdle) throws JposException;
+ public String getFontTypefaceList() throws JposException;
+ public boolean getJrnEmpty() throws JposException;
+ public boolean getJrnLetterQuality() throws JposException;
+ public void setJrnLetterQuality(boolean jrnLetterQuality)
+ throws JposException;
+ public int getJrnLineChars() throws JposException;
+ public void setJrnLineChars(int jrnLineChars) throws JposException;
+ public String getJrnLineCharsList() throws JposException;
+ public int getJrnLineHeight() throws JposException;
+ public void setJrnLineHeight(int jrnLineHeight) throws JposException;
+ public int getJrnLineSpacing() throws JposException;
+ public void setJrnLineSpacing(int jrnLineSpacing) throws JposException;
+ public int getJrnLineWidth() throws JposException;
+ public boolean getJrnNearEnd() throws JposException;
+ public int getMapMode() throws JposException;
+ public void setMapMode(int mapMode) throws JposException;
+ public int getOutputID() throws JposException;
+ public String getRecBarCodeRotationList() throws JposException;
+ public boolean getRecEmpty() throws JposException;
+ public boolean getRecLetterQuality() throws JposException;
+ public void setRecLetterQuality(boolean recLetterQuality)
+ throws JposException;
+ public int getRecLineChars() throws JposException;
+ public void setRecLineChars(int recLineChars) throws JposException;
+ public String getRecLineCharsList() throws JposException;
+ public int getRecLineHeight() throws JposException;
+ public void setRecLineHeight(int recLineHeight) throws JposException;
+ public int getRecLineSpacing() throws JposException;
+ public void setRecLineSpacing(int recLineSpacing) throws JposException;
+ public int getRecLinesToPaperCut() throws JposException;
+ public int getRecLineWidth() throws JposException;
+ public boolean getRecNearEnd() throws JposException;
+ public int getRecSidewaysMaxChars() throws JposException;
+ public int getRecSidewaysMaxLines() throws JposException;
+ public int getRotateSpecial() throws JposException;
+ public void setRotateSpecial(int rotateSpecial) throws JposException;
+ public String getSlpBarCodeRotationList() throws JposException;
+ public boolean getSlpEmpty() throws JposException;
+ public boolean getSlpLetterQuality() throws JposException;
+ public void setSlpLetterQuality(boolean recLetterQuality)
+ throws JposException;
+ public int getSlpLineChars() throws JposException;
+ public void setSlpLineChars(int recLineChars) throws JposException;
+ public String getSlpLineCharsList() throws JposException;
+ public int getSlpLineHeight() throws JposException;
+ public void setSlpLineHeight(int recLineHeight) throws JposException;
+ public int getSlpLinesNearEndToEnd() throws JposException;
+ public int getSlpLineSpacing() throws JposException;
+ public void setSlpLineSpacing(int recLineSpacing) throws JposException;
+ public int getSlpLineWidth() throws JposException;
+ public int getSlpMaxLines() throws JposException;
+ public boolean getSlpNearEnd() throws JposException;
+ public int getSlpSidewaysMaxChars() throws JposException;
+ public int getSlpSidewaysMaxLines() throws JposException;
+
+ // Methods
+ public void beginInsertion(int timeout) throws JposException;
+ public void beginRemoval(int timeout) throws JposException;
+ public void clearOutput() throws JposException;
+ public void cutPaper(int percentage) throws JposException;
+ public void endInsertion() throws JposException;
+ public void endRemoval() throws JposException;
+ public void printBarCode(int station, String data, int symbology,
+ int height, int width, int alignment,
+ int textPosition) throws JposException;
+ public void printBitmap(int station, String fileName, int width,
+ int alignment) throws JposException;
+ public void printImmediate(int station, String data)
+ throws JposException;
+ public void printNormal(int station, String data) throws JposException;
+ public void printTwoNormal(int stations, String data1, String data2)
+ throws JposException;
+ public void rotatePrint(int station, int rotation) throws JposException;
+ public void setBitmap(int bitmapNumber, int station, String fileName,
+ int width, int alignment) throws JposException;
+ public void setLogo(int location, String data) throws JposException;
+ public void transactionPrint(int station, int control)
+ throws JposException;
+ public void validateData(int station, String data) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService13.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService13.java
new file mode 100644
index 0000000..3271552
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService13.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterService13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSPrinterService13 extends POSPrinterService12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService14.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService14.java
new file mode 100644
index 0000000..6ad17ef
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterService14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSPrinterService14 extends POSPrinterService13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService15.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService15.java
new file mode 100644
index 0000000..d976825
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService15.java
@@ -0,0 +1,59 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterService15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface POSPrinterService15
+ extends POSPrinterService14, JposServiceInstance
+{
+ // Capabilities
+ public int getCapJrnCartridgeSensor() throws JposException;
+ public int getCapJrnColor() throws JposException;
+ public int getCapRecCartridgeSensor() throws JposException;
+ public int getCapRecColor() throws JposException;
+ public int getCapRecMarkFeed() throws JposException;
+ public boolean getCapSlpBothSidesPrint() throws JposException;
+ public int getCapSlpCartridgeSensor() throws JposException;
+ public int getCapSlpColor() throws JposException;
+
+ // Properties
+ public int getCartridgeNotify() throws JposException;
+ public void setCartridgeNotify(int notify) throws JposException;
+ public int getJrnCartridgeState() throws JposException;
+ public int getJrnCurrentCartridge() throws JposException;
+ public void setJrnCurrentCartridge(int cartridge) throws JposException;
+ public int getRecCartridgeState() throws JposException;
+ public int getRecCurrentCartridge() throws JposException;
+ public void setRecCurrentCartridge(int cartridge) throws JposException;
+ public int getSlpCartridgeState() throws JposException;
+ public int getSlpCurrentCartridge() throws JposException;
+ public void setSlpCurrentCartridge(int cartridge) throws JposException;
+ public int getSlpPrintSide() throws JposException;
+
+ // Methods
+ public void changePrintSide(int side) throws JposException;
+ public void markFeed(int type) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService16.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService16.java
new file mode 100644
index 0000000..c90ae2b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService16.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterService16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2001-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSPrinterService16
+ extends POSPrinterService15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService17.java
new file mode 100644
index 0000000..3751992
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService17.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSPrinterService17
+ extends POSPrinterService16
+{
+ // Capabilities
+ public boolean getCapMapCharacterSet() throws JposException;
+
+ // Properties
+ public boolean getMapCharacterSet() throws JposException;
+ public void setMapCharacterSet(boolean mapCharacterSet)
+ throws JposException;
+ public String getRecBitmapRotationList() throws JposException;
+ public String getSlpBitmapRotationList() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService18.java
new file mode 100644
index 0000000..93a69a1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService18.java
@@ -0,0 +1,42 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSPrinterService18
+ extends POSPrinterService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService19.java
new file mode 100644
index 0000000..f5ac9b5
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/POSPrinterService19.java
@@ -0,0 +1,61 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// POSPrinterService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to POS Printer for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface POSPrinterService19
+ extends POSPrinterService18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapConcurrentPageMode() throws JposException;
+ public boolean getCapRecPageMode() throws JposException;
+ public boolean getCapSlpPageMode() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Properties
+ public String getPageModeArea() throws JposException;
+ public int getPageModeDescriptor() throws JposException;
+ public int getPageModeHorizontalPosition() throws JposException;
+ public void setPageModeHorizontalPosition(int position) throws JposException;
+ public String getPageModePrintArea() throws JposException;
+ public void setPageModePrintArea(String area) throws JposException;
+ public int getPageModePrintDirection() throws JposException;
+ public void setPageModePrintDirection(int direction) throws JposException;
+ public int getPageModeStation() throws JposException;
+ public void setPageModeStation(int station) throws JposException;
+ public int getPageModeVerticalPosition() throws JposException;
+ public void setPageModeVerticalPosition(int position) throws JposException;
+
+ // Methods
+ public void clearPrintArea()
+ throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void pageModePrint(int control)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService110.java
new file mode 100644
index 0000000..529c7ad
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService110.java
@@ -0,0 +1,35 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRWService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to the Point Card Reader Wwriter for
+// release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface PointCardRWService110
+ extends PointCardRWService19
+{
+ // Methods
+ public void clearInputProperties()
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService111.java
new file mode 100644
index 0000000..1df3de6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService111.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRWService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Point Card Reader Writer for
+// release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface PointCardRWService111 extends PointCardRWService110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService112.java
new file mode 100644
index 0000000..a5fe7b6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService112.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRWService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Point Card Reader Writer for
+// release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface PointCardRWService112 extends PointCardRWService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService113.java
new file mode 100644
index 0000000..7b118bd
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService113.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRWService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Point Card Reader Writer for
+// release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface PointCardRWService113 extends PointCardRWService112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService114.java
new file mode 100644
index 0000000..32a476e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRWService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Point Card Reader Writer for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface PointCardRWService114 extends PointCardRWService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService15.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService15.java
new file mode 100644
index 0000000..747567f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService15.java
@@ -0,0 +1,123 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRWService15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to the Point Card Reader Wwriter for
+// release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface PointCardRWService15
+ extends BaseService, JposServiceInstance
+{
+ // Capabilities
+ public boolean getCapBold() throws JposException;
+ public int getCapCardEntranceSensor() throws JposException;
+ public int getCapCharacterSet() throws JposException;
+ public boolean getCapCleanCard() throws JposException;
+ public boolean getCapClearPrint() throws JposException;
+ public boolean getCapDhigh() throws JposException;
+ public boolean getCapDwide() throws JposException;
+ public boolean getCapDwideDhigh() throws JposException;
+ public boolean getCapItalic() throws JposException;
+ public boolean getCapLeft90() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapPrint() throws JposException;
+ public boolean getCapPrintMode() throws JposException;
+ public boolean getCapRight90() throws JposException;
+ public boolean getCapRotate180() throws JposException;
+ public int getCapTracksToRead() throws JposException;
+ public int getCapTracksToWrite() throws JposException;
+
+ // Properties
+ public int getCardState() throws JposException;
+ public int getCharacterSet() throws JposException;
+ public void setCharacterSet(int charSet) throws JposException;
+ public String getCharacterSetList() throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public String getFontTypeFaceList() throws JposException;
+ public int getLineChars() throws JposException;
+ public void setLineChars(int lineChars) throws JposException;
+ public String getLineCharsList() throws JposException;
+ public int getLineHeight() throws JposException;
+ public void setLineHeight(int lineHeight) throws JposException;
+ public int getLineSpacing() throws JposException;
+ public void setLineSpacing(int lineSpacing) throws JposException;
+ public int getLineWidth() throws JposException;
+ public int getMapMode() throws JposException;
+ public void setMapMode(int mapMode) throws JposException;
+ public int getMaxLines() throws JposException;
+ public int getOutputID() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getPrintHeight() throws JposException;
+ public int getReadState1() throws JposException;
+ public int getReadState2() throws JposException;
+ public int getRecvLength1() throws JposException;
+ public int getRecvLength2() throws JposException;
+ public int getSidewaysMaxChars() throws JposException;
+ public int getSidewaysMaxLines() throws JposException;
+ public int getTracksToRead() throws JposException;
+ public void setTracksToRead(int tracksToRead) throws JposException;
+ public int getTracksToWrite() throws JposException;
+ public void setTracksToWrite(int tracksToWrite) throws JposException;
+ public String getTrack1Data() throws JposException;
+ public String getTrack2Data() throws JposException;
+ public String getTrack3Data() throws JposException;
+ public String getTrack4Data() throws JposException;
+ public String getTrack5Data() throws JposException;
+ public String getTrack6Data() throws JposException;
+ public int getWriteState1() throws JposException;
+ public int getWriteState2() throws JposException;
+ public String getWrite1Data() throws JposException;
+ public void setWrite1Data(String data) throws JposException;
+ public String getWrite2Data() throws JposException;
+ public void setWrite2Data(String data) throws JposException;
+ public String getWrite3Data() throws JposException;
+ public void setWrite3Data(String data) throws JposException;
+ public String getWrite4Data() throws JposException;
+ public void setWrite4Data(String data) throws JposException;
+ public String getWrite5Data() throws JposException;
+ public void setWrite5Data(String data) throws JposException;
+ public String getWrite6Data() throws JposException;
+ public void setWrite6Data(String data) throws JposException;
+
+ // Methods
+ public void beginInsertion(int timeout) throws JposException;
+ public void beginRemoval(int timeout) throws JposException;
+ public void cleanCard() throws JposException;
+ public void clearInput() throws JposException;
+ public void clearOutput() throws JposException;
+ public void clearPrintWrite(int kind, int hPosition, int vPosition,
+ int width, int height) throws JposException;
+ public void endInsertion() throws JposException;
+ public void endRemoval() throws JposException;
+ public void printWrite(int kind, int hPosition, int vPosition,
+ String data) throws JposException;
+ public void rotatePrint(int rotation) throws JposException;
+ public void validateData(String data) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService16.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService16.java
new file mode 100644
index 0000000..46687de
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService16.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRWService16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to the Point Card Reader Wwriter for
+// release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2001-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface PointCardRWService16
+ extends PointCardRWService15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService17.java
new file mode 100644
index 0000000..ae1a645
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService17.java
@@ -0,0 +1,39 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRWService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to the Point Card Reader Wwriter for
+// release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface PointCardRWService17
+ extends PointCardRWService16
+{
+ // Capabilities
+ public boolean getCapMapCharacterSet() throws JposException;
+
+ // Properties
+ public boolean getMapCharacterSet() throws JposException;
+ public void setMapCharacterSet(boolean mapCharacterSet)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService18.java
new file mode 100644
index 0000000..e4a7973
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService18.java
@@ -0,0 +1,43 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRWService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to the Point Card Reader Wwriter for
+// release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface PointCardRWService18
+ extends PointCardRWService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService19.java
new file mode 100644
index 0000000..aa8499b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/PointCardRWService19.java
@@ -0,0 +1,41 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// PointCardRWService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to the Point Card Reader Wwriter for
+// release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface PointCardRWService19
+ extends PointCardRWService18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/RFIDScannerService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/RFIDScannerService112.java
new file mode 100644
index 0000000..2a14f62
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/RFIDScannerService112.java
@@ -0,0 +1,128 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group(including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RFIDScannerService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to RFID Scanner for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface RFIDScannerService112
+ extends BaseService, JposServiceInstance
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapContinuousRead() throws JposException;
+ public boolean getCapDisableTag() throws JposException;
+ public boolean getCapLockTag() throws JposException;
+ public int getCapMultipleProtocols() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapReadTimer() throws JposException;
+ public boolean getCapRealTimeData() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+ public int getCapWriteTag() throws JposException;
+
+ // Properties
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public boolean getContinuousReadMode() throws JposException;
+ public byte[] getCurrentTagID() throws JposException;
+ public int getCurrentTagProtocol() throws JposException;
+ public byte[] getCurrentTagUserData() throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public int getOutputID() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getProtocolMask() throws JposException;
+ public void setProtocolMask(int protocolMask) throws JposException;
+ public int getReadTimerInterval() throws JposException;
+ public void setReadTimerInterval(int readTimerInterval) throws JposException;
+ public int getTagCount() throws JposException;
+
+ // Methods
+ public void clearInput()
+ throws JposException;
+ public void clearInputProperties()
+ throws JposException;
+ public void clearOutput()
+ throws JposException;
+ public void compareFirmwareVersion(String firmwareFileName,
+ int[] result)
+ throws JposException;
+ public void disableTag(byte[] tagID,
+ int timeout,
+ byte[] password)
+ throws JposException;
+ public void firstTag()
+ throws JposException;
+ public void lockTag(byte[] tagID,
+ int timeout,
+ byte[] password)
+ throws JposException;
+ public void nextTag()
+ throws JposException;
+ public void previousTag()
+ throws JposException;
+ public void readTags(int cmd,
+ byte[] filterID,
+ byte[] filtermask,
+ int start,
+ int length,
+ int timeout,
+ byte[] password)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void startReadTags(int cmd,
+ byte[] filterID,
+ byte[] filtermask,
+ int start,
+ int length,
+ byte[] password)
+ throws JposException;
+ public void stopReadTags(byte[] password)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+ public void writeTagData(byte[] tagID,
+ byte[] userdata,
+ int start,
+ int timeout,
+ byte[] password)
+ throws JposException;
+ public void writeTagID(byte[] sourceID,
+ byte[] destID,
+ int timeout,
+ byte[] password)
+ throws JposException;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/RFIDScannerService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/RFIDScannerService113.java
new file mode 100644
index 0000000..3d2a810
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/RFIDScannerService113.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group(including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RFIDScannerService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to RFID Scanner for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+// New device category.
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface RFIDScannerService113 extends RFIDScannerService112
+{
+ // Nothing new added for release 1.13
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/RFIDScannerService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/RFIDScannerService114.java
new file mode 100644
index 0000000..ec986fe
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/RFIDScannerService114.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group(including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RFIDScannerService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to RFID Scanner for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface RFIDScannerService114 extends RFIDScannerService113
+{
+ // Nothing new added for release 1.14
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService110.java
new file mode 100644
index 0000000..13674cc
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService110.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Remote Order Display for release
+// 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface RemoteOrderDisplayService110
+ extends RemoteOrderDisplayService19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService111.java
new file mode 100644
index 0000000..af36751
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Remote Order Display for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface RemoteOrderDisplayService111 extends RemoteOrderDisplayService110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService112.java
new file mode 100644
index 0000000..21178c2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Remote Order Display for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface RemoteOrderDisplayService112 extends RemoteOrderDisplayService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService113.java
new file mode 100644
index 0000000..3dede5e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Remote Order Display for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface RemoteOrderDisplayService113 extends RemoteOrderDisplayService112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService114.java
new file mode 100644
index 0000000..eec4956
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Remote Order Display for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface RemoteOrderDisplayService114 extends RemoteOrderDisplayService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService13.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService13.java
new file mode 100644
index 0000000..a8e801a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService13.java
@@ -0,0 +1,116 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayService13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Remote Order Display for release
+// 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface RemoteOrderDisplayService13 extends BaseService
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapSelectCharacterSet() throws JposException;
+ public boolean getCapTone() throws JposException;
+ public boolean getCapTouch() throws JposException;
+ public boolean getCapTransaction() throws JposException;
+
+ // Properties
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public int getAutoToneDuration() throws JposException;
+ public void setAutoToneDuration(int autoToneDuration)
+ throws JposException;
+ public int getAutoToneFrequency() throws JposException;
+ public void setAutoToneFrequency(int autoToneFrequency)
+ throws JposException;
+ public int getCharacterSet() throws JposException;
+ public String getCharacterSetList() throws JposException;
+ public int getClocks() throws JposException;
+ public int getCurrentUnitID() throws JposException;
+ public void setCurrentUnitID(int currentUnitID) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public String getErrorString() throws JposException;
+ public int getErrorUnits() throws JposException;
+ public String getEventString() throws JposException;
+ public int getEventType() throws JposException;
+ public void setEventType(int eventType) throws JposException;
+ public int getEventUnitID() throws JposException;
+ public int getEventUnits() throws JposException;
+ public int getOutputID() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getSystemClocks() throws JposException;
+ public int getSystemVideoSaveBuffers() throws JposException;
+ public int getTimeout() throws JposException;
+ public void setTimeout(int timeout) throws JposException;
+ public int getUnitsOnline() throws JposException;
+ public int getVideoDataCount() throws JposException;
+ public int getVideoMode() throws JposException;
+ public void setVideoMode(int videoMode) throws JposException;
+ public String getVideoModesList() throws JposException;
+ public int getVideoSaveBuffers() throws JposException;
+
+ // Methods
+ public void clearInput() throws JposException;
+ public void clearOutput() throws JposException;
+ public void clearVideo(int units, int attribute) throws JposException;
+ public void clearVideoRegion(int units, int row, int column, int height,
+ int width, int attribute) throws JposException;
+ public void controlClock(int units, int function, int clockId, int hour,
+ int min, int sec, int row, int column, int attribute,
+ int mode) throws JposException;
+ public void controlCursor(int units, int function) throws JposException;
+ public void copyVideoRegion(int units, int row, int column, int height,
+ int width, int targetRow, int targetColumn)
+ throws JposException;
+ public void displayData(int units, int row, int column, int attribute,
+ String data) throws JposException;
+ public void drawBox(int units, int row, int column, int height,
+ int width, int attribute, int borderType)
+ throws JposException;
+ public void freeVideoRegion(int units, int bufferId)
+ throws JposException;
+ public void resetVideo(int units) throws JposException;
+ public void restoreVideoRegion(int units, int targetRow,
+ int targetColumn, int bufferId) throws JposException;
+ public void saveVideoRegion(int units, int row, int column,
+ int height, int width, int bufferId)
+ throws JposException;
+ public void selectChararacterSet(int units, int characterSet)
+ throws JposException;
+ public void setCursor(int units, int row, int column)
+ throws JposException;
+ public void transactionDisplay(int units, int function)
+ throws JposException;
+ public void updateVideoRegionAttribute(int units, int function, int row,
+ int column, int height, int width, int attribute)
+ throws JposException;
+ public void videoSound(int units, int frequency, int duration,
+ int numberOfCycles, int interSoundWait)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService14.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService14.java
new file mode 100644
index 0000000..158a1ae
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayService14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Remote Order Display for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface RemoteOrderDisplayService14 extends RemoteOrderDisplayService13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService15.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService15.java
new file mode 100644
index 0000000..e6eff99
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService15.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayService15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Remote Order Display for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface RemoteOrderDisplayService15
+ extends RemoteOrderDisplayService14, JposServiceInstance
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService16.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService16.java
new file mode 100644
index 0000000..a6bc63c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService16.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayService16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Remote Order Display for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2001-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface RemoteOrderDisplayService16
+ extends RemoteOrderDisplayService15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService17.java
new file mode 100644
index 0000000..b412245
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService17.java
@@ -0,0 +1,38 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Remote Order Display for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface RemoteOrderDisplayService17
+ extends RemoteOrderDisplayService16
+{
+ // Capabilities
+ public boolean getCapMapCharacterSet() throws JposException;
+
+ // Properties
+ public boolean getMapCharacterSet() throws JposException;
+ public void setMapCharacterSet(boolean mapCharacterSet)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService18.java
new file mode 100644
index 0000000..c92dd4c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService18.java
@@ -0,0 +1,42 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Remote Order Display for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface RemoteOrderDisplayService18
+ extends RemoteOrderDisplayService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService19.java
new file mode 100644
index 0000000..6789281
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/RemoteOrderDisplayService19.java
@@ -0,0 +1,38 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// RemoteOrderDisplayService19
+//
+// Interface definining all new capabilities, properties and
+// 1.9
+// Modification history
+// ------------------------------------------------------------------
+// 1.9
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface RemoteOrderDisplayService19
+ extends RemoteOrderDisplayService18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService110.java
new file mode 100644
index 0000000..999ad8f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService110.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScaleService110
+ extends ScaleService19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService111.java
new file mode 100644
index 0000000..b967b03
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScaleService111 extends ScaleService110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService112.java
new file mode 100644
index 0000000..4e90577
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScaleService112 extends ScaleService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService113.java
new file mode 100644
index 0000000..2a8cf46
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService113.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScaleService113 extends ScaleService112
+{
+ // Properties
+ public boolean getZeroValid() throws JposException;
+ public void setZeroValid(boolean zeroValid) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService114.java
new file mode 100644
index 0000000..8ea36db
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService114.java
@@ -0,0 +1,64 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Scale for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScaleService114 extends ScaleService113
+{
+ // Capabilities
+ public boolean getCapFreezeValue() throws JposException;
+ public boolean getCapReadLiveWeightWithTare() throws JposException;
+ public boolean getCapSetPriceCalculationMode() throws JposException;
+ public boolean getCapSetUnitPriceWithWeightUnit() throws JposException;
+ public boolean getCapSpecialTare() throws JposException;
+ public boolean getCapTarePriority() throws JposException;
+
+ // Properties
+ public int getMinimumWeight() throws JposException;
+
+ // Methods
+ public void doPriceCalculating(int[] weightValue,
+ int[] tare,
+ long[] unitPrice,
+ long[] unitPriceX,
+ int[] weightUnitX,
+ int[] weightNumeratorX,
+ int[] weightDenominatorX,
+ long[] price,
+ int timeout) throws JposException;
+ public void freezeValue(int item,
+ boolean freeze) throws JposException;
+ public void readLiveWeightWithTare(int[] weightData,
+ int[] tare,
+ int timeout) throws JposException;
+ public void setPriceCalculationMode(int mode) throws JposException;
+ public void setSpecialTare(int mode,
+ int data) throws JposException;
+ public void setTarePrioity(int priority) throws JposException;
+ public void setUnitPriceWithWeightUnit(long unitPrice,
+ int weightUnit,
+ int weightNumerator,
+ int weightDenominator) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService12.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService12.java
new file mode 100644
index 0000000..ea2536e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService12.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleService12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to Scale for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScaleService12 extends BaseService
+{
+ // Capabilities
+ public boolean getCapDisplay() throws JposException;
+
+ // Properties
+ public int getMaximumWeight() throws JposException;
+ public int getWeightUnit() throws JposException;
+
+ // Methods
+ public void readWeight(int[] weightData, int timeout)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService13.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService13.java
new file mode 100644
index 0000000..9a81a2d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService13.java
@@ -0,0 +1,59 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleService13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScaleService13 extends ScaleService12
+{
+ // Capabilities
+ public boolean getCapDisplayText() throws JposException;
+ public boolean getCapPriceCalculating() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public boolean getCapTareWeight() throws JposException;
+ public boolean getCapZeroScale() throws JposException;
+
+ // Properties
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled) throws JposException;
+ public int getMaxDisplayTextChars() throws JposException;
+ public long getSalesPrice() throws JposException;
+ public int getTareWeight() throws JposException;
+ public void setTareWeight(int tareWeight) throws JposException;
+ public long getUnitPrice() throws JposException;
+ public void setUnitPrice(long unitPrice) throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+
+ // Methods
+ public void clearInput() throws JposException;
+ public void displayText(String data) throws JposException;
+ public void zeroScale() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService14.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService14.java
new file mode 100644
index 0000000..fbbd9c5
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleService14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScaleService14 extends ScaleService13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService15.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService15.java
new file mode 100644
index 0000000..874a453
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService15.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleService15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface ScaleService15
+ extends ScaleService14, JposServiceInstance
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService16.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService16.java
new file mode 100644
index 0000000..0c30ba1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService16.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleService16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2001-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScaleService16
+ extends ScaleService15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService17.java
new file mode 100644
index 0000000..393c736
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService17.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScaleService17
+ extends ScaleService16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService18.java
new file mode 100644
index 0000000..f6bf77f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService18.java
@@ -0,0 +1,42 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScaleService18
+ extends ScaleService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService19.java
new file mode 100644
index 0000000..5970ed7
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScaleService19.java
@@ -0,0 +1,46 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScaleService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scale for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScaleService19
+ extends ScaleService18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapStatusUpdate() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Properties
+ public int getScaleLiveWeight() throws JposException;
+ public int getStatusNotify() throws JposException;
+ public void setStatusNotify(int statusNotify) throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService110.java
new file mode 100644
index 0000000..79672ae
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService110.java
@@ -0,0 +1,34 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScannerService110
+ extends ScannerService19
+{
+ // Methods
+ public void clearInputProperties()
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService111.java
new file mode 100644
index 0000000..b4f845b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScannerService111 extends ScannerService110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService112.java
new file mode 100644
index 0000000..edfdd26
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScannerService112 extends ScannerService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService113.java
new file mode 100644
index 0000000..23d350f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScannerService113 extends ScannerService112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService114.java
new file mode 100644
index 0000000..69b1631
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Scanner for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScannerService114 extends ScannerService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService12.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService12.java
new file mode 100644
index 0000000..b68314a
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService12.java
@@ -0,0 +1,45 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerService12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to Scanner for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScannerService12 extends BaseService
+{
+ // Properties
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public boolean getDecodeData() throws JposException;
+ public void setDecodeData(boolean decodeData) throws JposException;
+ public byte[] getScanData() throws JposException;
+ public byte[] getScanDataLabel() throws JposException;
+ public int getScanDataType() throws JposException;
+
+ // Methods
+ public void clearInput() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService13.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService13.java
new file mode 100644
index 0000000..8dfadfd
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService13.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerService13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScannerService13 extends ScannerService12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService14.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService14.java
new file mode 100644
index 0000000..44bd445
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerService14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScannerService14 extends ScannerService13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService15.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService15.java
new file mode 100644
index 0000000..fc98349
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService15.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerService15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface ScannerService15
+ extends ScannerService14, JposServiceInstance
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService16.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService16.java
new file mode 100644
index 0000000..5e98a07
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService16.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerService16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2001-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScannerService16
+ extends ScannerService15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService17.java
new file mode 100644
index 0000000..6cbc633
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService17.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScannerService17
+ extends ScannerService16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService18.java
new file mode 100644
index 0000000..0a7de6b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService18.java
@@ -0,0 +1,42 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScannerService18
+ extends ScannerService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService19.java
new file mode 100644
index 0000000..fe76018
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ScannerService19.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ScannerService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Scanner for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ScannerService19
+ extends ScannerService18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService110.java
new file mode 100644
index 0000000..c2612cb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService110.java
@@ -0,0 +1,34 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface SignatureCaptureService110
+ extends SignatureCaptureService19
+{
+ // Methods
+ public void clearInputProperties()
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService111.java
new file mode 100644
index 0000000..826730d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface SignatureCaptureService111 extends SignatureCaptureService110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService112.java
new file mode 100644
index 0000000..4b04436
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface SignatureCaptureService112 extends SignatureCaptureService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService113.java
new file mode 100644
index 0000000..7d248f9
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface SignatureCaptureService113 extends SignatureCaptureService112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService114.java
new file mode 100644
index 0000000..6b315e2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Signature Capture for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface SignatureCaptureService114 extends SignatureCaptureService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService12.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService12.java
new file mode 100644
index 0000000..6442496
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService12.java
@@ -0,0 +1,55 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureService12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to Signature Capture for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface SignatureCaptureService12 extends BaseService
+{
+ // Capabilities
+ public boolean getCapDisplay() throws JposException;
+ public boolean getCapRealTimeData() throws JposException;
+ public boolean getCapUserTerminated() throws JposException;
+
+ // Properties
+ public boolean getAutoDisable() throws JposException;
+ public void setAutoDisable(boolean autoDisable) throws JposException;
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public int getMaximumX() throws JposException;
+ public int getMaximumY() throws JposException;
+ public java.awt.Point[]
+ getPointArray() throws JposException;
+ public byte[] getRawData() throws JposException;
+ public boolean getRealTimeDataEnabled() throws JposException;
+ public void setRealTimeDataEnabled(boolean realTimeDataEnabled)
+ throws JposException;
+
+ // Methods
+ public void beginCapture(String formName) throws JposException;
+ public void clearInput() throws JposException;
+ public void endCapture() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService13.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService13.java
new file mode 100644
index 0000000..31ff251
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService13.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureService13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface SignatureCaptureService13 extends SignatureCaptureService12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService14.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService14.java
new file mode 100644
index 0000000..bd03faa
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureService14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface SignatureCaptureService14 extends SignatureCaptureService13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService15.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService15.java
new file mode 100644
index 0000000..dab7e67
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService15.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureService14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface SignatureCaptureService15
+ extends SignatureCaptureService14, JposServiceInstance
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService16.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService16.java
new file mode 100644
index 0000000..627b0c1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService16.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureService15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2001-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface SignatureCaptureService16
+ extends SignatureCaptureService15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService17.java
new file mode 100644
index 0000000..88feb50
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService17.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface SignatureCaptureService17
+ extends SignatureCaptureService16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService18.java
new file mode 100644
index 0000000..981feab
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService18.java
@@ -0,0 +1,42 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface SignatureCaptureService18
+ extends SignatureCaptureService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService19.java
new file mode 100644
index 0000000..2d094c6
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/SignatureCaptureService19.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SignatureCaptureService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Signature Capture for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface SignatureCaptureService19
+ extends SignatureCaptureService18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/SmartCardRWService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/SmartCardRWService110.java
new file mode 100644
index 0000000..f9e79eb
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/SmartCardRWService110.java
@@ -0,0 +1,34 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SmartCardRWService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Smart Card for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface SmartCardRWService110
+ extends SmartCardRWService19
+{
+ // Methods
+ public void clearInputProperties()
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/SmartCardRWService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/SmartCardRWService111.java
new file mode 100644
index 0000000..5b7ddbd
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/SmartCardRWService111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SmartCardRWService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Smart Card for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface SmartCardRWService111 extends SmartCardRWService110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/SmartCardRWService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/SmartCardRWService112.java
new file mode 100644
index 0000000..24a60ae
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/SmartCardRWService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SmartCardRWService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Smart Card for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface SmartCardRWService112 extends SmartCardRWService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/SmartCardRWService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/SmartCardRWService113.java
new file mode 100644
index 0000000..8a67051
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/SmartCardRWService113.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SmartCardRWService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Smart Card for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface SmartCardRWService113 extends SmartCardRWService112
+{
+ // Nothing new added for release 1.13
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/SmartCardRWService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/SmartCardRWService114.java
new file mode 100644
index 0000000..933329e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/SmartCardRWService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SmartCardRWService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Smart Card for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface SmartCardRWService114 extends SmartCardRWService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/SmartCardRWService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/SmartCardRWService18.java
new file mode 100644
index 0000000..ce221e2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/SmartCardRWService18.java
@@ -0,0 +1,96 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SmartCardRWService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Smart Card for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+// Issues reported that draft specification methods and properties
+// were still present in the 1.8 code releases.
+// Removed:
+// getCapFreeMemory
+// getCapMultipleFiles
+// getCapSCTypes
+// getFreeMemory
+// getMemorySegments
+// getSCType
+// getTotalMemorySize
+// Added:
+// getCapIsoEmvMode
+// getIsoEmvMode
+// setIsoEmvMode
+// Fixed:
+// count parameter of readData is now int[] instead of int
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface SmartCardRWService18
+ extends BaseService, JposServiceInstance
+{
+ // Capabilities
+ public boolean getCapCardErrorDetection() throws JposException;
+ public int getCapInterfaceMode() throws JposException;
+ public int getCapIsoEmvMode() throws JposException;
+ public int getCapPowerReporting() throws JposException;
+ public int getCapSCPresentSensor() throws JposException;
+ public int getCapSCSlots() throws JposException;
+ public boolean getCapStatisticsReporting() throws JposException;
+ public int getCapTransmissionProtocol() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Properties
+ public int getDataCount() throws JposException;
+ public boolean getDataEventEnabled() throws JposException;
+ public void setDataEventEnabled(boolean dataEventEnabled)
+ throws JposException;
+ public int getInterfaceMode() throws JposException;
+ public void setInterfaceMode(int interfaceMode) throws JposException;
+ public int getIsoEmvMode() throws JposException;
+ public void setIsoEmvMode(int isoEmvMode) throws JposException;
+ public int getOutputID() throws JposException;
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+ public int getSCPresentSensor() throws JposException;
+ public int getSCSlot() throws JposException;
+ public void setSCSlot(int scSlot) throws JposException;
+ public boolean getTransactionInProgress() throws JposException;
+ public int getTransmissionProtocol() throws JposException;
+
+ // Methods
+ public void beginInsertion(int timeout) throws JposException;
+ public void beginRemoval(int timeout) throws JposException;
+ public void clearInput() throws JposException;
+ public void clearOutput() throws JposException;
+ public void endInsertion() throws JposException;
+ public void endRemoval() throws JposException;
+ public void readData(int action, int[] count, String[] data)
+ throws JposException;
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+ public void writeData(int action, int count, String data)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/SmartCardRWService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/SmartCardRWService19.java
new file mode 100644
index 0000000..5382dd4
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/SmartCardRWService19.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// SmartCardRWService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Smart Card for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface SmartCardRWService19
+ extends SmartCardRWService18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService110.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService110.java
new file mode 100644
index 0000000..7f8c56d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService110.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorService110
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.10.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2006-Feb-10 JavaPOS Release 1.10 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ToneIndicatorService110
+ extends ToneIndicatorService19
+{
+ // Nothing new added for release 1.10
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService111.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService111.java
new file mode 100644
index 0000000..6b01ff7
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService111.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorService111
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.11.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2007-Jan-04 JavaPOS Release 1.11 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ToneIndicatorService111 extends ToneIndicatorService110
+{
+ // Nothing new added for release 1.11
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService112.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService112.java
new file mode 100644
index 0000000..36d6eb1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService112.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorService112
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.12.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2008-Jan-14 JavaPOS Release 1.12 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ToneIndicatorService112 extends ToneIndicatorService111
+{
+ // Nothing new added for release 1.12
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService113.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService113.java
new file mode 100644
index 0000000..0c567b1
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService113.java
@@ -0,0 +1,38 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorService113
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.13.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2009-Feb-23 JavaPOS Release 1.13 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ToneIndicatorService113 extends ToneIndicatorService112
+{
+ // Capabilities
+ public int getCapMelody() throws JposException;
+
+ // Properties
+ public int getMelodyType() throws JposException;
+ public void setMelodyType(int melodyType) throws JposException;
+ public int getMelodyVolume() throws JposException;
+ public void setMelodyVolume(int melodyVolume) throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService114.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService114.java
new file mode 100644
index 0000000..63bae8c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService114.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorService114
+//
+// Interface definining all capabilities, properties and methods that are
+// specific to Tone Indicator for release 1.14.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2013-Jul-25 JavaPOS Release 1.14 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ToneIndicatorService114 extends ToneIndicatorService113
+{
+ // Nothing new added for release 1.14
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService12.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService12.java
new file mode 100644
index 0000000..3c528d9
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService12.java
@@ -0,0 +1,58 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorService12
+//
+// Interface definining all capabilities, properties and methods
+// that are specific to Tone Indicator for release 1.2.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-02-18 JavaPOS Release 1.2 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ToneIndicatorService12 extends BaseService
+{
+ // Capabilities
+ public boolean getCapPitch() throws JposException;
+ public boolean getCapVolume() throws JposException;
+
+ // Properties
+ public boolean getAsyncMode() throws JposException;
+ public void setAsyncMode(boolean asyncMode) throws JposException;
+ public int getInterToneWait() throws JposException;
+ public void setInterToneWait(int interToneWait) throws JposException;
+ public int getOutputID() throws JposException;
+ public int getTone1Duration() throws JposException;
+ public void setTone1Duration(int tone1Duration) throws JposException;
+ public int getTone1Pitch() throws JposException;
+ public void setTone1Pitch(int tone1Pitch) throws JposException;
+ public int getTone1Volume() throws JposException;
+ public void setTone1Volume(int tone1Volume) throws JposException;
+ public int getTone2Duration() throws JposException;
+ public void setTone2Duration(int tone2Duration) throws JposException;
+ public int getTone2Pitch() throws JposException;
+ public void setTone2Pitch(int tone2Pitch) throws JposException;
+ public int getTone2Volume() throws JposException;
+ public void setTone2Volume(int tone2Volume) throws JposException;
+
+ // Methods
+ public void clearOutput() throws JposException;
+ public void sound(int numberOfCycles, int interSoundWait)
+ throws JposException;
+ public void soundImmediate() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService13.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService13.java
new file mode 100644
index 0000000..59f9bf9
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService13.java
@@ -0,0 +1,37 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorService13
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.3.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-04-20 JavaPOS Release 1.3 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ToneIndicatorService13 extends ToneIndicatorService12
+{
+ // Capabilities
+ public int getCapPowerReporting() throws JposException;
+
+ // Properties
+ public int getPowerNotify() throws JposException;
+ public void setPowerNotify(int powerNotify) throws JposException;
+ public int getPowerState() throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService14.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService14.java
new file mode 100644
index 0000000..e49ff52
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService14.java
@@ -0,0 +1,31 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorService14
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.4.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 98-11-02 JavaPOS Release 1.4 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ToneIndicatorService14 extends ToneIndicatorService13
+{
+ // Nothing new added for release 1.4
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService15.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService15.java
new file mode 100644
index 0000000..49a069e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService15.java
@@ -0,0 +1,33 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorService15
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.5.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2000-Apr-17 JavaPOS Release 1.5 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+import jpos.loader.*;
+
+public interface ToneIndicatorService15
+ extends ToneIndicatorService14, JposServiceInstance
+{
+ // Nothing new added for release 1.5
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService16.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService16.java
new file mode 100644
index 0000000..c13da1b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService16.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorService16
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.6.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2001-Apr-18 JavaPOS Release 1.6 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ToneIndicatorService16
+ extends ToneIndicatorService15
+{
+ // Nothing new added for release 1.6
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService17.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService17.java
new file mode 100644
index 0000000..b410fb8
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService17.java
@@ -0,0 +1,32 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorService17
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.7.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 01-Jul-2002 JavaPOS Release 1.7 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ToneIndicatorService17
+ extends ToneIndicatorService16
+{
+ // Nothing new added for release 1.7
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService18.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService18.java
new file mode 100644
index 0000000..e60ae2b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService18.java
@@ -0,0 +1,42 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorService18
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.8.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2004-Apr-01 JavaPOS Release 1.8 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ToneIndicatorService18
+ extends ToneIndicatorService17
+{
+ // Capabilities
+ public boolean getCapStatisticsReporting() throws JposException;
+ public boolean getCapUpdateStatistics() throws JposException;
+
+ // Methods
+ public void resetStatistics(String statisticsBuffer)
+ throws JposException;
+ public void retrieveStatistics(String[] statisticsBuffer)
+ throws JposException;
+ public void updateStatistics(String statisticsBuffer)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService19.java b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService19.java
new file mode 100644
index 0000000..8a4a757
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/services/ToneIndicatorService19.java
@@ -0,0 +1,40 @@
+/////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives.Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// ToneIndicatorService19
+//
+// Interface definining all new capabilities, properties and
+// methods that are specific to Tone Indicator for release 1.9.
+//
+// Modification history
+// ------------------------------------------------------------------
+// 2005-Jan-16 JavaPOS Release 1.9 BS
+//
+/////////////////////////////////////////////////////////////////////
+
+package jpos.services;
+
+import jpos.*;
+
+public interface ToneIndicatorService19
+ extends ToneIndicatorService18
+{
+ // Capabilities
+ public boolean getCapCompareFirmwareVersion() throws JposException;
+ public boolean getCapUpdateFirmware() throws JposException;
+
+ // Methods
+ public void compareFirmwareVersion(String firmwareFileName, int[] result)
+ throws JposException;
+ public void updateFirmware(String firmwareFileName)
+ throws JposException;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/util/Comparable.java b/org.eclipse.osbp.fork.jpos/src/jpos/util/Comparable.java
new file mode 100644
index 0000000..fef5179
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/util/Comparable.java
@@ -0,0 +1,39 @@
+package jpos.util;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Interface defining a comparable object
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ * @version 1.2.0 (JDK 1.1.x)
+ */
+public interface Comparable
+{
+ /**
+ * Compares this and other arguments for order
+ * @param other object to compare to
+ */
+ public int compareTo( Object other );
+
+ /**
+ * Indicates this object is "equal to" the other
+ * @param other object to compare to
+ */
+ public boolean equals( Object other );
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/util/DefaultComparableElement.java b/org.eclipse.osbp.fork.jpos/src/jpos/util/DefaultComparableElement.java
new file mode 100644
index 0000000..e6ada5e
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/util/DefaultComparableElement.java
@@ -0,0 +1,70 @@
+package jpos.util;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Default implementation of the Comparable interface
+ * <b>NOTE:</b> uses the Object's toString() method as the mean of comparison
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ * @version 1.2.0 (JDK 1.1.x)
+ */
+public class DefaultComparableElement extends Object implements Comparable
+{
+ //-------------------------------------------------------------------------
+ // Ctor
+ //
+
+ /**
+ * Default 1-argument ctor
+ * @param obj the element's Object
+ */
+ public DefaultComparableElement( Object obj ) { object = obj; }
+
+ //-------------------------------------------------------------------------
+ // Public instance methods
+ //
+
+ /**
+ * Compares this and other arguments for order
+ * @param other object to compare to
+ */
+ public int compareTo( Object other ) { return object.toString().compareTo( other.toString() ); }
+
+ /**
+ * Indicates this object is "equal to" the other
+ * @param other object to compare to
+ */
+ public boolean equals( Object other ) { return object.toString().equals( other.toString() ); }
+
+ /** @return the Object of this Comparable element */
+ public Object getObject() { return object; }
+
+ //-------------------------------------------------------------------------
+ // Public overridden methods
+ //
+
+ /** @return a String description of this Comparable */
+ public String toString() { return object.toString(); }
+
+ //-------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private Object object = null;
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/util/DefaultProperties.java b/org.eclipse.osbp.fork.jpos/src/jpos/util/DefaultProperties.java
new file mode 100644
index 0000000..bf541fc
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/util/DefaultProperties.java
@@ -0,0 +1,673 @@
+package jpos.util;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Default implementation of the JposProperties interface
+ * Loads/looks for the Jpos properties from the System properties and
+ * from the jpos/res/jpos.properties files
+ * NOTE: changed so that the properties are no longer loaded via the ResourceBundle
+ * class but instead though the System class
+ * @since 1.2 (NY 2K 99 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class DefaultProperties extends Object implements JposProperties
+{
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /**
+ * Loads the jpos.properties file from the "./jpos/res" directory
+ * @since 1.2 (NY 2K meeting)
+ */
+ public void loadJposProperties()
+ {
+ loadJposPropertiesByName( JposProperties.JPOS_PROPERTIES_FILENAME );
+ }
+
+ /**
+ * @return true if the properties are loaded
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public boolean isLoaded() { return loaded; }
+
+ /**
+ * @return the last Exception wile loading if any otherwise null
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public Exception getLastException() { return lastException; }
+
+ /**
+ * @return the String property by name specified looking in System then the "jpos.properties" resource bundle
+ * @param propName the property name to search for
+ * @since 1.2 (NY 2K meeting)
+ */
+ public String getPropertyString( String propName )
+ {
+ String propValue = "";
+
+ if( System.getProperties().containsKey( propName ) )
+ propValue = System.getProperties().getProperty( propName );
+ else
+ if( jposProperties != null )
+ propValue = jposProperties.getProperty( propName );
+
+ return propValue;
+ }
+
+ /**
+ * @return true if this property is defined in the Java System properties or in
+ * the jpos.properties resource file
+ * @param propName the property name to look for
+ * @since 1.2 (NY 2K meeting)
+ */
+ public boolean isPropertyDefined( String propName )
+ {
+ if( System.getProperties().containsKey( propName ) )
+ return true;
+
+ if( jposProperties != null )
+ {
+ Enumeration keys = jposProperties.keys();
+
+ while( keys.hasMoreElements() )
+ {
+ String key = (String)keys.nextElement();
+
+ if( key.equals( propName ) )
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * @return an enumeration of properties names defined
+ * @since 1.2 (NY 2K meeting)
+ */
+ public Enumeration getPropertyNames() { return getJposProperties().keys(); }
+
+ /**
+ * @return the MultiProperty by the name passed. MultiProperty are properties
+ * named like <propName>.<n> where n = 0, 1, ... If the multi-property does not
+ * exist then null is returned
+ * @param multiPropName the multi-property name
+ * @since 1.3 (Wahington DC 2001 meeting)
+ */
+ public JposProperties.MultiProperty getMultiProperty( String multiPropName )
+ { return (JposProperties.MultiProperty)multiPropMap.get( multiPropName ); }
+
+ /**
+ * @return true if the MultiProperty by the name passed exist otherwise false
+ * @param multiPropName the multi-property name
+ * @since 1.3 (Wahington DC 2001 meeting)
+ */
+ public boolean hasMultiProperty( String multiPropName )
+ { return multiPropMap.containsKey( multiPropName ); }
+
+ /**
+ * @return the number of properties in this JposProperties
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public int size() { return jposProperties.size(); }
+
+ /**
+ * @return a List of property value parsed from the property value found
+ * for the property name. The value is expected to be a list of comma
+ * separated values
+ * @param propName the property name for which the values will be parsed from
+ * @since 2.1.0
+ */
+ public List getStringListProperty( String propName )
+ {
+ String propValue = getPropertyString( propName );
+ List list = new ArrayList();
+
+ if( propValue == null ) return list;
+
+ StringTokenizer st = new StringTokenizer( propValue, STRING_LIST_SEPARATOR );
+
+ while( st.hasMoreTokens() )
+ list.add( st.nextToken() );
+
+ return list;
+ }
+
+ //-------------------------------------------------------------------------
+ // Public overridden methods
+ //
+
+ /**
+ * @return a formated String representation list all properties with names
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public String toString()
+ {
+ StringBuffer sb = new StringBuffer();
+
+ sb.append( "<JposProperties>\n" );
+
+ Enumeration propNames = getPropertyNames();
+
+ List list = new ArrayList();
+
+ while( propNames.hasMoreElements() )
+ list.add( propNames.nextElement() );
+
+ Collections.sort( list );
+
+ Iterator iterator = list.iterator();
+
+ while( iterator.hasNext() )
+ {
+ String propName = (String)iterator.next();
+ String propValue = (String)getPropertyString( propName );
+
+ sb.append( "<name = \"" + propName + "\"" + " value = \"" + propValue + "\" />\n" );
+ }
+
+ sb.append( "</JposProperties>\n" );
+
+ return sb.toString();
+ }
+
+ //-------------------------------------------------------------------------
+ // Public class methods
+ //
+
+ /**
+ * @return a Comparator object to compare 2 JposProperties.Prop objects
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public static Comparator propComparator()
+ {
+ if( propComparator == null )
+ propComparator = new Comparator()
+ {
+ public int compare( Object o1, Object o2 )
+ {
+ if( !( o1 instanceof JposProperties.Prop ) ) return -1;
+ if( !( o2 instanceof JposProperties.Prop ) ) return -1;
+
+ String o1Name = ( (JposProperties.Prop)o1 ).getName();
+ String o2Name = ( (JposProperties.Prop)o2 ).getName();
+
+ return o1Name.compareTo( o2Name );
+ }
+ };
+
+
+ return propComparator;
+ }
+
+ /**
+ * @return an Iterator of valid property names
+ * @since 1.3 (Washington DC 2001)
+ */
+ public static Iterator getDefinedPropertyNames()
+ {
+ List list = new ArrayList();
+
+ for( int i = 0; i < PROP_NAME_ARRAY.length; ++i )
+ list.add( PROP_NAME_ARRAY[ i ] );
+
+ return list.iterator();
+ }
+
+ //-------------------------------------------------------------------------
+ // Protected methods
+ //
+
+ /**
+ * Creates the set of MultiProperty from the loaded properties
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ protected void createMultiProperties()
+ {
+ Enumeration propNames = jposProperties.keys();
+
+ while( propNames.hasMoreElements() )
+ {
+ String propName = (String)propNames.nextElement();
+ String propValue = (String)jposProperties.get( propName );
+
+ if( isMultiProp( propName ) )
+ {
+ String multiPropBaseName = getMultiPropBaseName( propName );
+ if( multiPropMap.containsKey( multiPropBaseName ) )
+ {
+ MultiProp multiProp = (MultiProp)multiPropMap.get( multiPropBaseName );
+ multiProp.add( propName, propValue );
+ }
+ else
+ {
+ MultiProp multiProp = this.new MultiProp( multiPropBaseName );
+ multiProp.add( propName, propValue );
+ multiPropMap.put( multiPropBaseName, multiProp );
+ }
+ }
+ }
+ }
+
+ /**
+ * @return true if the propName passed is a multi-property
+ * @param propName the property name
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ protected boolean isMultiProp( String propName )
+ {
+ if( propName.indexOf( "." ) == -1 )
+ return false;
+
+ int dotIndex = propName.lastIndexOf( "." );
+
+ String numberString = propName.substring( dotIndex + 1 );
+ int number = -1;
+
+ try{ number = Integer.parseInt( numberString ); }
+ catch( NumberFormatException nfe ) { number = -1; }
+
+ if( number < 0 ) return false;
+
+ return true;
+ }
+
+ /**
+ * @return the base name of the multi-property that the propName belongs to
+ * @param propName the multi-property name
+ * @since 1.3 (Washington DC 2001 meeting)
+ * @throws java.lang.IllegalArgumentException if the argument is not a multi-property
+ */
+ protected String getMultiPropBaseName( String propName ) throws IllegalArgumentException
+ {
+ if( !isMultiProp( propName ) )
+ throw new IllegalArgumentException( "getMultiPropBaseName( propName ) expects a propName that is a MuliProp" );
+
+ return propName.substring( 0, propName.lastIndexOf( "." ) );
+ }
+
+ /**
+ * @return an iterator of JposProperties.Prop for all the properties in this
+ * JposProperties. Changes to these properties do not affect the JposProperties properties
+ * @see jpos.util.JposProperties.Prop
+ * @since 1.3 (Washington DC 2001)
+ */
+ public Iterator getProps()
+ {
+ List list = new ArrayList();
+
+ Enumeration names = getPropertyNames();
+ while( names.hasMoreElements() )
+ {
+ String name = (String)names.nextElement();
+ String value = getPropertyString( name );
+
+ JposProperties.Prop prop = new DefaultProperties.Prop( name, value );
+ list.add( prop );
+ }
+
+ return list.iterator();
+ }
+
+ //-------------------------------------------------------------------------
+ // Package methods
+ //
+
+ /**
+ * Loads the JposProperties from the fileName specified
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ void loadJposPropertiesByName( String propFileName )
+ {
+ loaded = false;
+ lastException = null;
+
+ jposProperties = findProperties( propFileName );
+
+ createMultiProperties();
+ }
+
+ /**
+ * @return the properties file name that was loaded or "" if none was loaded
+ * @since 1.3 (Washington DC 20001 meeting)
+ */
+ String getLoadedPropFileName() { return loadedPropFileName; }
+
+ /**
+ * @return the jposProerties loading it if necessary
+ * @since 1.3 (SF-2K meeting)
+ */
+ Properties getJposProperties()
+ {
+ if( jposProperties == null )
+ loadJposProperties();
+
+ return jposProperties;
+ }
+
+ /**
+ * @return a Properties object loaded with the properties file passed
+ * Looks for the properties file in the current set JAR or Zip files
+ * @param propFileName the properties file name
+ * @since 1.3 (SF-2K meeting)
+ */
+ Properties findProperties( String propFileName )
+ {
+ Properties properties = new Properties();
+ loadedPropFileName = propFileName;
+
+ InputStream is = getClass().getClassLoader().getResourceAsStream( loadedPropFileName );
+
+ if( is != null )
+ {
+ is = new BufferedInputStream( is );
+
+ try
+ {
+ properties.load( is );
+ loaded = true;
+ }
+ catch( Exception e )
+ {
+ loaded = false;
+ loadedPropFileName = "";
+ lastException = e;
+ }
+ finally
+ {
+ try{ is.close(); }
+ catch( Exception e )
+ { System.err.println( "Unexpected exception while closing stream Exception.message = " + e.getMessage() ); }
+ }
+ }
+ else
+ {
+ loaded = false;
+ System.err.println( propFileName + " file not found" );
+ }
+
+ return properties;
+ }
+
+ //-------------------------------------------------------------------------
+ // Private instance variables
+ //
+
+ private Properties jposProperties = null;
+ private HashMap multiPropMap = new HashMap();
+
+ private String loadedPropFileName = "";
+
+ private boolean loaded = false;
+ private Exception lastException = null;
+
+ //-------------------------------------------------------------------------
+ // Class variables
+ //
+
+ private static Comparator propComparator = null;
+
+ //-------------------------------------------------------------------------
+ // Inner classes
+ //
+
+ /**
+ * Default implementation of the jpos.util.JposProperties interface
+ * Speficies an interface used for returning multi properties. That is
+ * properties that are named like <name>.x where x = 0, 1, ...x
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ class MultiProp extends Object implements JposProperties.MultiProperty
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /**
+ * Creates a DefaultMultiProp with base prop name passed
+ * @param s the String base prop name
+ */
+ MultiProp( String s )
+ {
+ basePropName = s;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /**
+ * @return the base property name for this multi-property that is the
+ * name w/o the number suffix
+ */
+ public String getBasePropertyName() { return basePropName; }
+
+ /** @return an iterator of the property names for this multi-property */
+ public Iterator getPropertyNames() { return propMap.keySet().iterator(); }
+
+ /** @return an iterator of the property names alphabetically sorted for this multi-property */
+ public Iterator getSortedPropertyNames()
+ {
+ List namesList = new ArrayList( propMap.keySet() );
+
+ Collections.sort( namesList );
+
+ return namesList.iterator();
+ }
+
+ /** @return an iterator of the property values for this multi-property */
+ public Iterator getPropertyValues() { return propMap.values().iterator(); }
+
+ /**
+ * @return the value for this property from the full property name
+ * @param propName the full property name <name>.x
+ */
+ public String getPropertyString( String propName )
+ { return (String)propMap.get( propName ); }
+
+ /**
+ * @return the value for this property from the full property name
+ * @param number suffix for the property name
+ * @throws java.lang.IllegalArgumentException if the i negative
+ */
+ public String getPropertyString( int i ) throws IllegalArgumentException
+ {
+ if( i < 0 )
+ throw new IllegalArgumentException( "Cannot find property in multiprop with number i = " + i );
+
+ return getPropertyString( getBasePropertyName() + "." + i );
+ }
+
+ /** @return the number of properties defined in this multi-property */
+ public int getNumberOfProperties() { return propMap.size(); }
+
+ /**
+ * @return the number of this property name that is for property <propName>.x returns x
+ * @param propName the property name to get the number of
+ * @throws java.lang.IllegalArgumentException if the property name does not follow the <propName>.x name pattern
+ */
+ public int propertyNumber( String propName ) throws IllegalArgumentException
+ {
+ return validatePropName( propName );
+ }
+
+ //---------------------------------------------------------------------
+ // Package methods
+ //
+
+ /**
+ * Validates that propName passed is valid for this multi-prop
+ * @return the number of this property
+ * @throws java.lang.IllegalArgumentException if propName is not valid
+ */
+ int validatePropName( String propName ) throws IllegalArgumentException
+ {
+ if( !propName.startsWith( getBasePropertyName() + "." ) )
+ throw new IllegalArgumentException( "propName = " + propName + " passed does not match base prop name of " + getBasePropertyName() );
+
+ if( propName.endsWith( "." ) )
+ throw new IllegalArgumentException( "propName = " + propName + " passed must end with a pattern .<number>" );
+
+ String numberString = propName.substring( propName.lastIndexOf( "." ) + 1 );
+
+ int number = 0;
+
+ try{ number = Integer.parseInt( numberString ); }
+ catch( NumberFormatException nfe )
+ { throw new IllegalArgumentException( "propName = " + propName + " passed must end with a pattern .<number>" ); }
+
+ return number;
+ }
+
+ /**
+ * Adds a new <propName, propValue> to this multi property
+ * @param propName the property name
+ * @param propValue the property value
+ * @throws java.lang.IllegalArgumentException if the propName does not match the base prop name
+ */
+ void add( String propName, String propValue ) throws IllegalArgumentException
+ {
+ validatePropName( propName );
+ propMap.put( propName, propValue );
+ }
+
+ /**
+ * Removes existing property by name propName. If property does not exist does nothing
+ * @return the propValue of the property removed or null if not found
+ * @param propName the property name
+ */
+ String remove( String propName ) { return (String)propMap.remove( propName ); }
+
+ //---------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private String basePropName = "";
+ private HashMap propMap = new HashMap();
+ }
+
+ /**
+ * Simple wrapper class for a property pair <name, value>
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ * @since 1.3 (Washington DC 2001)
+ */
+ public static class Prop extends Object implements JposProperties.Prop
+ {
+ //---------------------------------------------------------------------
+ // Ctor
+ //
+
+ /**
+ * Creates a new Prop with name and value passed
+ * @param name this prop's name
+ * @param value this prop's value
+ */
+ public Prop( String name, String value )
+ {
+ this.name = name;
+ this.value = value;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the name of this property */
+ public String getName() { return name; }
+
+ /** @return the value of this property */
+ public String getValue() { return value; }
+
+ /**
+ * Sets the value of this property
+ * @param s the new prop name
+ */
+ public void setName( String s ) { name = s; }
+
+ /**
+ * Sets the value of this property
+ * @param s the name String
+ */
+ public void setValue( String s ) { value = s; }
+
+ /**
+ * @return 0 if 2 objects same -1 if this is less or +1 if this is more than other
+ * @param other the other object to compare against this
+ */
+ public int compareTo( JposProperties.Prop other )
+ {
+ if( other == null ) return -1;
+
+ return getName().compareTo( ( (JposProperties.Prop)other ).getName() );
+ }
+
+ /**
+ * @return 0 if 2 objects same -1 if this is less or +1 if this is more than other
+ * @param other the other object to compare against this
+ */
+ public int compareTo( Object other )
+ {
+ return compareTo( (JposProperties.Prop)other );
+ }
+
+ //---------------------------------------------------------------------
+ // Public overridden methods
+ //
+
+ /**
+ * @return true if this is logically equivalent to the other Prop
+ * @param otherProp the other Prop object
+ */
+ public boolean equals( Object otherProp )
+ {
+ if( otherProp == null ) return false;
+
+ if( !( otherProp instanceof JposProperties.Prop ) ) return false;
+
+ JposProperties.Prop prop = (JposProperties.Prop)otherProp;
+
+ return ( getName().equals( prop.getName() ) && getValue().equals( prop.getValue() ) );
+ }
+
+ /** @return a String representation of this property */
+ public String toString()
+ {
+ return "<name = " + getName() + ", value = " + getValue() + ">";
+ }
+
+ //---------------------------------------------------------------------
+ // Instance variables
+ //
+
+ private String name = "";
+ private String value = "";
+ }
+
+ //-------------------------------------------------------------------------
+ // Public static constants
+ //
+
+ public static final String STRING_LIST_SEPARATOR = ",";
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/util/FileUtil.java b/org.eclipse.osbp.fork.jpos/src/jpos/util/FileUtil.java
new file mode 100644
index 0000000..50cf457
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/util/FileUtil.java
@@ -0,0 +1,274 @@
+package jpos.util;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+
+import java.util.List;
+import java.util.LinkedList;
+import java.util.Enumeration;
+import java.util.StringTokenizer;
+
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+
+import jpos.util.tracing.Tracer;
+import jpos.util.tracing.TracerFactory;
+
+/**
+ * Utility class for various File related actions and methods
+ * @author E. Michael Maximilien
+ * @version 0.0.1
+ * @since 2.1.0
+ */
+public class FileUtil extends Object
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor protected to avoid contruction but allows subclassing */
+ protected FileUtil() {}
+
+ //-------------------------------------------------------------------------
+ // Private/protected static methods
+ //
+
+ protected synchronized static List getCpDirList()
+ {
+ String classpath = System.getProperty( "java.class.path" );
+
+ List cpDirList = new LinkedList();
+
+ StringTokenizer st = new StringTokenizer( classpath, File.pathSeparator );
+ while( st.hasMoreTokens() )
+ {
+ String cpEntry = st.nextToken();
+
+ if( cpEntry.toLowerCase().endsWith( "jar" ) ||
+ cpEntry.toLowerCase().endsWith( "zip" ) )
+ cpDirList.add( cpEntry.
+ substring( 0, cpEntry.
+ lastIndexOf( File.separator ) ) );
+ else
+ cpDirList.add( cpEntry );
+ }
+
+ return cpDirList;
+ }
+
+ protected synchronized static List getJarList()
+ {
+ String classpath = System.getProperty( "java.class.path" );
+
+ List cpJarFilesList = new LinkedList();
+
+ StringTokenizer st = new StringTokenizer( classpath, File.pathSeparator );
+ while( st.hasMoreTokens() )
+ {
+ String cpEntry = st.nextToken();
+
+ if( cpEntry.toLowerCase().endsWith( "jar" ) ||
+ cpEntry.toLowerCase().endsWith( "zip" ) )
+ cpJarFilesList.add( cpEntry );
+ }
+
+ return cpJarFilesList;
+ }
+
+ protected synchronized static JarEntry getJarEntry( JarFile jarFile, String fileName )
+ {
+ tracer.println( "<getJarEntry jarFile=" + jarFile + " fileName=" +
+ fileName + ">" );
+
+ if( jarFile == null ) return null;
+
+ Enumeration entries = jarFile.entries();
+ while( entries.hasMoreElements() )
+ {
+ JarEntry jarEntry = (JarEntry)entries.nextElement();
+
+ if( jarEntry.getName().equals( fileName ) )
+ {
+ tracer.println( "jarEntry.getName()=" + jarEntry.getName() );
+ return jarEntry;
+ }
+ }
+
+ tracer.println( "<message>Could not find JarEntry with fileName=" +
+ fileName +"</message>" );
+ tracer.println( "</getJarEntry>" );
+
+ return null;
+ }
+
+ /**
+ * @return the File object if found otherwise returns null
+ * @param fileName the relative fileName to search for
+ * @param searchInClassPath if true the file will be searched in all
+ * directories specified by CLASSPATH
+ */
+ protected synchronized static JarFile lookForFileInJars( String fileName )
+ {
+ try
+ {
+ tracer.println( "<lookForFileInJars fileName="+fileName +">" );
+
+ String classpath = System.getProperty( "java.class.path" );
+
+ tracer.println( "classpath="+classpath );
+
+ List cpJarFilesList = getJarList();
+ List cpDirList = getCpDirList();
+
+ for( int i = 0; i < cpJarFilesList.size(); ++i )
+ {
+ String jarFileName = (String)cpJarFilesList.get( i );
+
+ tracer.println( "jarFileName=" + jarFileName );
+
+ JarFile jarFile = new JarFile( new File( jarFileName ) );
+
+ JarEntry jarEntry = getJarEntry( jarFile, fileName );
+
+ if( jarEntry != null ) return jarFile;
+ }
+
+ return null;
+ }
+ catch( Exception ioe ) { return null; }
+ finally
+ {
+ tracer.println( "</lookForFileInJars>" );
+ }
+ }
+
+ //-------------------------------------------------------------------------
+ // Public static methods
+ //
+
+ /**
+ * @return true if the File passed by name below could be located by
+ * searching the classpath and or JAR files in CLASSPATH
+ * @param fileName the relative fileName to search for
+ * @param searchInClassPath if true the file will be searched in all
+ * directories specified by CLASSPATH
+ * @param searchInJarFile if true the file will be searched in all the JAR
+ * files that are located in CLASSPATH
+ */
+ public synchronized static boolean
+ locateFile( String fileName, boolean searchInClassPath,
+ boolean searchInJarFile )
+ {
+ File file = findFile( fileName, searchInClassPath );
+
+ if( file != null ) return true;
+
+ if( searchInJarFile )
+ {
+ JarFile jarFile = lookForFileInJars( fileName );
+
+ if( jarFile != null ) return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * @return the File object if found otherwise returns null
+ * @param fileName the relative fileName to search for
+ * @param searchInClassPath if true the file will be searched in all
+ * directories specified by CLASSPATH
+ */
+ public synchronized static File findFile( String fileName,
+ boolean searchInClassPath )
+ {
+ try
+ {
+ File file = new File( fileName );
+ if( file.exists() ) return file;
+
+ List cpJarFilesList = getJarList();
+ List cpDirList = getCpDirList();
+
+ if( searchInClassPath )
+ for( int i = 0; i < cpDirList.size(); ++i )
+ {
+ String path = (String)cpDirList.get( i );
+ File file2 = new File( path + File.separator + fileName );
+
+ if( file2.exists() ) return file2;
+ }
+
+ return null;
+ }
+ catch( Exception ioe ) { return null; }
+ }
+
+ /**
+ * @return a FileIOStream object for the file passed by name below could
+ * be located by searching the classpath and or JAR files in CLASSPATH
+ * @param fileName the relative fileName to search for
+ * @param searchInClassPath if true the file will be searched in all
+ * directories specified by CLASSPATH
+ * @param searchInJarFile if true the file will be searched in all the JAR
+ * files that are located in CLASSPATH
+ * @throws java.io.FileNotFoundException if the file could not be found
+ * @throws java.io.IOException if an error occurred while loading file
+ */
+ public synchronized static InputStream
+ loadFile( String fileName, boolean searchInClassPath,
+ boolean searchInJarFile )
+ throws FileNotFoundException, IOException
+ {
+ tracer.println( "<loadFile fileName=" + fileName + " searchInClassPath=" +
+ searchInClassPath + " searchInJarFile=" +
+ searchInJarFile + ">" );
+
+ File locatedFile = findFile( fileName, searchInClassPath );
+
+ if( locatedFile != null ) return new FileInputStream( locatedFile );
+
+ if( locatedFile == null && searchInJarFile == false )
+ throw new FileNotFoundException( "Could not find file: " + fileName );
+
+ JarFile locatedJarFile = lookForFileInJars( fileName );
+
+ if( locatedJarFile == null )
+ throw new FileNotFoundException( "Could not find file: " + fileName );
+
+ JarEntry locatedJarEntry = getJarEntry( locatedJarFile, fileName );
+
+ if( locatedJarEntry != null )
+ return locatedJarFile.getInputStream( locatedJarEntry );
+
+ throw new FileNotFoundException( "Could not find file: " + fileName );
+ }
+
+ //-------------------------------------------------------------------------
+ // Class variables
+ //
+
+ private static Tracer tracer = TracerFactory.getInstance().
+ createTracer( "FileUtil" );
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/util/JposEntryUtility.java b/org.eclipse.osbp.fork.jpos/src/jpos/util/JposEntryUtility.java
new file mode 100644
index 0000000..9511658
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/util/JposEntryUtility.java
@@ -0,0 +1,481 @@
+package jpos.util;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.util.*;
+
+import jpos.config.JposEntry;
+import jpos.config.JposEntryConst;
+import jpos.config.JposConfigException;
+import jpos.config.simple.SimpleEntry;
+
+/**
+ * Simple class used to validate JposEntry objects
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ * @since 1.3 (Tokyo 2001 meeting)
+ * @version 1.3.0
+ */
+public class JposEntryUtility extends Object
+{
+ //-------------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /** Make ctor private (utility class) */
+ private JposEntryUtility() {}
+
+ //-------------------------------------------------------------------------
+ // Public class mehods
+ //
+
+ /**
+ * @return true if this entry is valid with all required properties
+ * @param jposEntry the entry to validate
+ */
+ public static boolean isValidJposEntry( JposEntry jposEntry )
+ {
+ boolean valid = false;
+
+ if( jposEntry.hasPropertyWithName( JposEntry.LOGICAL_NAME_PROP_NAME ) &&
+ jposEntry.hasPropertyWithName( JposEntry.SI_FACTORY_CLASS_PROP_NAME ) &&
+ jposEntry.hasPropertyWithName( JposEntry.SERVICE_CLASS_PROP_NAME ) &&
+ jposEntry.hasPropertyWithName( JposEntry.DEVICE_CATEGORY_PROP_NAME ) &&
+ jposEntry.hasPropertyWithName( JposEntry.JPOS_VERSION_PROP_NAME ) &&
+ jposEntry.hasPropertyWithName( JposEntry.VENDOR_NAME_PROP_NAME ) &&
+ jposEntry.hasPropertyWithName( JposEntry.VENDOR_URL_PROP_NAME ) &&
+ jposEntry.hasPropertyWithName( JposEntry.PRODUCT_NAME_PROP_NAME ) &&
+ jposEntry.hasPropertyWithName( JposEntry.PRODUCT_URL_PROP_NAME ) &&
+ jposEntry.hasPropertyWithName( JposEntry.PRODUCT_DESCRIPTION_PROP_NAME ) )
+ valid = true;
+
+ return valid;
+ }
+
+ /**
+ * @return true if the property name passed is a required property
+ * @param name the property name
+ */
+ public static boolean isRequiredPropName( String name )
+ {
+ boolean valid = false;
+
+ if( name.equals( JposEntry.LOGICAL_NAME_PROP_NAME ) ||
+ name.equals( JposEntry.SI_FACTORY_CLASS_PROP_NAME ) ||
+ name.equals( JposEntry.SERVICE_CLASS_PROP_NAME ) ||
+ name.equals( JposEntry.DEVICE_CATEGORY_PROP_NAME ) ||
+ name.equals( JposEntry.JPOS_VERSION_PROP_NAME ) ||
+ name.equals( JposEntry.VENDOR_NAME_PROP_NAME ) ||
+ name.equals( JposEntry.VENDOR_URL_PROP_NAME ) ||
+ name.equals( JposEntry.PRODUCT_NAME_PROP_NAME ) ||
+ name.equals( JposEntry.PRODUCT_URL_PROP_NAME ) ||
+ name.equals( JposEntry.PRODUCT_DESCRIPTION_PROP_NAME ) )
+ valid = true;
+
+ return valid;
+ }
+
+ /**
+ * @return true if the property name passed is a RS232 property
+ * @param name the property name
+ */
+ public static boolean isRS232PropName( String name )
+ {
+ boolean valid = false;
+
+ if( name.equals( JposEntryConst.RS232_PORT_NAME_PROP_NAME ) ||
+ name.equals( JposEntryConst.RS232_BAUD_RATE_PROP_NAME ) ||
+ name.equals( JposEntryConst.RS232_DATA_BITS_PROP_NAME ) ||
+ name.equals( JposEntryConst.RS232_PARITY_PROP_NAME ) ||
+ name.equals( JposEntryConst.RS232_STOP_BITS_PROP_NAME ) ||
+ name.equals( JposEntryConst.RS232_FLOW_CONTROL_PROP_NAME ) )
+ valid = true;
+
+ return valid;
+ }
+
+ /**
+ * Removes all RS232 specific utilities from this JposEntry
+ * @param jposEntry the JposEntry to modify
+ */
+ public static void removeAllRS232Props( JposEntry jposEntry )
+ {
+ jposEntry.removeProperty( JposEntryConst.RS232_PORT_NAME_PROP_NAME );
+ jposEntry.removeProperty( JposEntryConst.RS232_BAUD_RATE_PROP_NAME );
+ jposEntry.removeProperty( JposEntryConst.RS232_DATA_BITS_PROP_NAME );
+ jposEntry.removeProperty( JposEntryConst.RS232_PARITY_PROP_NAME );
+ jposEntry.removeProperty( JposEntryConst.RS232_STOP_BITS_PROP_NAME );
+ jposEntry.removeProperty( JposEntryConst.RS232_FLOW_CONTROL_PROP_NAME );
+ }
+
+
+ /** @return an Iterator of all the standard property names */
+ public static Iterator getStandardPropNames() { return STANDARD_PROP_NAMES_LIST.iterator(); }
+
+ /**
+ * @return a enumeration of all non-required property names from the jposEntry
+ * @param jposEntry the JposEntry
+ */
+ public static Enumeration getNonRequiredPropNames( JposEntry jposEntry )
+ {
+ Vector vector = new Vector();
+
+ Enumeration names = jposEntry.getPropertyNames();
+ while( names.hasMoreElements() )
+ {
+ String name = (String)names.nextElement();
+
+ if( isRequiredPropName( name ) == false )
+ vector.add( name );
+ }
+
+ return vector.elements();
+ }
+
+ /**
+ * @return an Enumeration of property names that are required but missing
+ * from the JposEntry object passed
+ * @param jposEntry the entry to validate
+ */
+ public static Enumeration getMissingRequiredPropNames( JposEntry jposEntry )
+ {
+ Vector vector = new Vector();
+
+ if( !jposEntry.hasPropertyWithName( JposEntry.LOGICAL_NAME_PROP_NAME ) )
+ vector.add( JposEntry.LOGICAL_NAME_PROP_NAME );
+
+ if( !jposEntry.hasPropertyWithName( JposEntry.SI_FACTORY_CLASS_PROP_NAME ) )
+ vector.add( JposEntry.SI_FACTORY_CLASS_PROP_NAME );
+
+ if( !jposEntry.hasPropertyWithName( JposEntry.SERVICE_CLASS_PROP_NAME ) )
+ vector.add( JposEntry.SERVICE_CLASS_PROP_NAME );
+
+ if( !jposEntry.hasPropertyWithName( JposEntry.DEVICE_CATEGORY_PROP_NAME ) )
+ vector.add( JposEntry.DEVICE_CATEGORY_PROP_NAME );
+
+ if( !jposEntry.hasPropertyWithName( JposEntry.JPOS_VERSION_PROP_NAME ) )
+ vector.add( JposEntry.JPOS_VERSION_PROP_NAME );
+
+ if( !jposEntry.hasPropertyWithName( JposEntry.VENDOR_NAME_PROP_NAME ) )
+ vector.add( JposEntry.VENDOR_NAME_PROP_NAME );
+
+ if( !jposEntry.hasPropertyWithName( JposEntry.VENDOR_URL_PROP_NAME ) )
+ vector.add( JposEntry.VENDOR_URL_PROP_NAME );
+
+ if( !jposEntry.hasPropertyWithName( JposEntry.PRODUCT_NAME_PROP_NAME ) )
+ vector.add( JposEntry.PRODUCT_NAME_PROP_NAME );
+
+ if( !jposEntry.hasPropertyWithName( JposEntry.PRODUCT_URL_PROP_NAME ) )
+ vector.add( JposEntry.PRODUCT_URL_PROP_NAME );
+
+ if( !jposEntry.hasPropertyWithName( JposEntry.PRODUCT_DESCRIPTION_PROP_NAME ) )
+ vector.add( JposEntry.PRODUCT_DESCRIPTION_PROP_NAME );
+
+ return vector.elements();
+ }
+
+ /**
+ * @return an Enumeration of all RS232 property names that are missing
+ * from the JposEntry object passed
+ * @param jposEntry the entry to validate
+ */
+ public static Enumeration getMissingRS232PropNames( JposEntry jposEntry )
+ {
+ Vector vector = new Vector();
+
+ if( !jposEntry.hasPropertyWithName( JposEntryConst.RS232_PORT_NAME_PROP_NAME ) )
+ vector.add( JposEntryConst.RS232_PORT_NAME_PROP_NAME );
+
+ if( !jposEntry.hasPropertyWithName( JposEntryConst.RS232_BAUD_RATE_PROP_NAME ) )
+ vector.add( JposEntryConst.RS232_BAUD_RATE_PROP_NAME );
+
+ if( !jposEntry.hasPropertyWithName( JposEntryConst.RS232_DATA_BITS_PROP_NAME ) )
+ vector.add( JposEntryConst.RS232_DATA_BITS_PROP_NAME );
+
+ if( !jposEntry.hasPropertyWithName( JposEntryConst.RS232_PARITY_PROP_NAME ) )
+ vector.add( JposEntryConst.RS232_PARITY_PROP_NAME );
+
+ if( !jposEntry.hasPropertyWithName( JposEntryConst.RS232_STOP_BITS_PROP_NAME ) )
+ vector.add( JposEntryConst.RS232_STOP_BITS_PROP_NAME );
+
+ if( !jposEntry.hasPropertyWithName( JposEntryConst.RS232_FLOW_CONTROL_PROP_NAME ) )
+ vector.add( JposEntryConst.RS232_FLOW_CONTROL_PROP_NAME );
+
+ return vector.elements();
+ }
+
+ /**
+ * @return an Enumeration of all non-standard properties, that is vendor properties
+ * @param jposEntry the JposEntry to find the vendor property names from
+ */
+ public static Enumeration getVendorPropNames( JposEntry jposEntry )
+ {
+ Vector vector = new Vector();
+
+ Enumeration propNames = jposEntry.getPropertyNames();
+ while( propNames.hasMoreElements() )
+ vector.add( propNames.nextElement() );
+
+ Iterator standardPropNames = getStandardPropNames();
+
+ while( standardPropNames.hasNext() )
+ {
+ String name = (String)standardPropNames.next();
+ vector.remove( name );
+ }
+
+ return vector.elements();
+ }
+
+ /**
+ * Add defaults all required properties that are missing from this JposEntry
+ * @param jposEntry the JposEntry object
+ */
+ public static void addMissingRequiredProps( JposEntry jposEntry )
+ {
+ Enumeration missingPropNames = getMissingRequiredPropNames( jposEntry );
+
+ JposEntry prototype = getEntryPrototype();
+
+ while( missingPropNames.hasMoreElements() )
+ {
+ String propName = (String)missingPropNames.nextElement();
+ jposEntry.addProperty( propName, prototype.getPropertyValue( propName ) );
+ }
+ }
+
+ /**
+ * @return a prototypical instance of a JposEntry with all required properties set to
+ * their default values
+ */
+ public static JposEntry getEntryPrototype()
+ {
+ if( prototypeJposEntry == null )
+ {
+ prototypeJposEntry = new SimpleEntry();
+
+ prototypeJposEntry.addProperty( JposEntry.LOGICAL_NAME_PROP_NAME, JposEntryConst.LOGICAL_NAME_DEFAULT_PROP_VALUE );
+ prototypeJposEntry.addProperty( JposEntry.SI_FACTORY_CLASS_PROP_NAME, JposEntryConst.SI_FACTORY_CLASS_DEFAULT_PROP_VALUE );
+ prototypeJposEntry.addProperty( JposEntry.SERVICE_CLASS_PROP_NAME, JposEntryConst.SERVICE_CLASS_DEFAULT_PROP_VALUE );
+ prototypeJposEntry.addProperty( JposEntry.DEVICE_CATEGORY_PROP_NAME, JposEntryConst.DEVICE_CATEGORY_DEFAULT_PROP_VALUE );
+ prototypeJposEntry.addProperty( JposEntry.JPOS_VERSION_PROP_NAME, JposEntryConst.JPOS_VERSION_DEFAULT_PROP_VALUE );
+ prototypeJposEntry.addProperty( JposEntry.VENDOR_NAME_PROP_NAME, JposEntryConst.VENDOR_NAME_DEFAULT_PROP_VALUE );
+ prototypeJposEntry.addProperty( JposEntry.VENDOR_URL_PROP_NAME, JposEntryConst.VENDOR_URL_DEFAULT_PROP_VALUE );
+ prototypeJposEntry.addProperty( JposEntry.PRODUCT_NAME_PROP_NAME, JposEntryConst.PRODUCT_NAME_DEFAULT_PROP_VALUE );
+ prototypeJposEntry.addProperty( JposEntry.PRODUCT_URL_PROP_NAME, JposEntryConst.PRODUCT_URL_DEFAULT_PROP_VALUE );
+ prototypeJposEntry.addProperty( JposEntry.PRODUCT_DESCRIPTION_PROP_NAME, JposEntryConst.PRODUCT_DESCRIPTION_DEFAULT_PROP_VALUE );
+ }
+
+ return ( (SimpleEntry)prototypeJposEntry ).copy();
+ }
+
+ /**
+ * @return the short name of the Class object passed, that is return the name of the class
+ * w/o the package name
+ * @param classObject the Class object
+ * @since 2.0.0
+ */
+ public static String shortClassName( Class classObject )
+ { return classObject.toString().substring( classObject.toString().lastIndexOf( "." ) + 1 ); }
+
+ /**
+ * @return true if the Object passed is a valid JposEntry property value of the type passed
+ * @param propValue the property value object
+ * @param propType the property type object
+ * @see jpos.config.JposEntryConst#PROP_TYPES
+ * @since 2.0.0
+ */
+ public static boolean validatePropValue( Object propValue, Class propType )
+ {
+ if( propValue == null || propType == null ) return false;
+
+ if( !isValidPropType( propType ) ) return false;
+
+ return propType.isInstance( propValue );
+ }
+
+ /**
+ * @return true if the propType object passed is a valid JposEntry property type
+ * that is one of the JposEntryConst.PROP_TYPES
+ * @see jpos.config.JposEntryConst#PROP_TYPES
+ * @since 2.0.0
+ */
+ public static boolean isValidPropType( Class propType )
+ {
+ if( propType == null ) return false;
+
+ for( int i = 0; i < JposEntryConst.PROP_TYPES.length; ++i )
+ if( propType.equals( JposEntryConst.PROP_TYPES[ i ] ) )
+ return true;
+
+ return false;
+ }
+
+ /**
+ * @return the default value object for the propType class passed
+ * @param propType the property type Class
+ * @exception jpos.config.JposConfigException if this property type is not
+ * valid
+ */
+ public static Object getDefaultValueForType( Class propType ) throws JposConfigException
+ {
+ if( isValidPropType( propType ) == false )
+ throw new JposConfigException( "Invalid property type: " + propType );
+
+ Object propValue = "";
+
+ try
+ {
+ if( propType.equals( String.class ) )
+ propValue = "";
+ else
+ if( propType.equals( Boolean.class ) )
+ propValue = new Boolean( false );
+ else
+ if( propType.equals( Character.class ) )
+ propValue = new Character( 'a' );
+ else
+ if( propType.equals( Double.class ) )
+ propValue = new Double( 0 );
+ else
+ if( propType.equals( Float.class ) )
+ propValue = new Float( 0 );
+ else
+ if( propType.equals( Byte.class ) )
+ propValue = new Byte( (byte)0 );
+ else
+ if( propType.equals( Integer.class ) )
+ propValue = new Integer( 0 );
+ else
+ if( propType.equals( Long.class ) )
+ propValue = new Long( 0 );
+ else
+ if( propType.equals( Short.class ) )
+ propValue = new Short( (short)0 );
+ }
+ catch( Exception e )
+ { throw new JposConfigException( "Invalid property type" ); }
+
+ return propValue;
+ }
+
+ /**
+ * @return the property value Object parsed from the String passed assuming that its
+ * of a valid property type and also that the string can be converted
+ * @param stringValue the String value to parse
+ * @param propType the property value type
+ * @see jpos.config.JposEntryConst#PROP_TYPES
+ * @exception jpos.config.JposConfigException if this property value cannot be created
+ * from the arguments passed
+ * @since 2.0.0
+ */
+ public static Object parsePropValue( String stringValue, Class propType ) throws JposConfigException
+ {
+ if( isValidPropType( propType ) == false )
+ throw new JposConfigException( "Invalid property type: " + propType );
+
+ Object propValue = "";
+
+ try
+ {
+ if( propType.equals( String.class ) )
+ propValue = stringValue;
+ else
+ if( propType.equals( Boolean.class ) )
+ propValue = Boolean.valueOf( stringValue );
+ else
+ if( propType.equals( Character.class ) )
+ propValue = new Character( stringValue.charAt( 0 ) );
+ else
+ if( propType.equals( Double.class ) )
+ propValue = Double.valueOf( stringValue );
+ else
+ if( propType.equals( Float.class ) )
+ propValue = Float.valueOf( stringValue );
+ else
+ if( propType.equals( Byte.class ) )
+ propValue = Byte.decode( stringValue );
+ else
+ if( propType.equals( Integer.class ) )
+ propValue = Integer.decode( stringValue );
+ else
+ if( propType.equals( Long.class ) )
+ propValue = Long.decode( stringValue );
+ else
+ if( propType.equals( Short.class ) )
+ propValue = Short.decode( stringValue );
+ }
+ catch( Exception e )
+ { throw new JposConfigException( "Could not create property value of type: " +
+ propType + " from string: " + stringValue ); }
+
+ return propValue;
+ }
+
+ /**
+ * @return the Class type for the property from the typeString passed. The type
+ * string can either be the short name of the type or the fully-qualified class name
+ * @param typeString the type string name
+ * @throws jpos.config.JposConfigException if the typeString is not a valid property type string
+ */
+ public static Class propTypeFromString( String typeString ) throws JposConfigException
+ {
+ if( typeString == null ) throw new JposConfigException( "typeString cannot be null" );
+
+ String className = ( typeString.startsWith( "java.lang." ) ? typeString : "java.lang." + typeString );
+
+ try
+ {
+ Class typeClass = Class.forName( className );
+
+ if( isValidPropType( typeClass ) == false )
+ throw new JposConfigException( "Invalid property type: " + typeString );
+
+ return typeClass;
+ }
+ catch( ClassNotFoundException cnfe ) { throw new JposConfigException( "Invalid typeString", cnfe ); }
+ }
+
+ //-------------------------------------------------------------------------
+ // Class variables
+ //
+
+ private static JposEntry prototypeJposEntry = null;
+
+ //-------------------------------------------------------------------------
+ // Class constants
+ //
+
+ private static final List STANDARD_PROP_NAMES_LIST = new ArrayList();
+
+ //-------------------------------------------------------------------------
+ // Static initializer
+ //
+
+ /** Initializes the standard set of properties */
+ static
+ {
+ for( int i = 0; i < JposEntryConst.REQUIRED_PROPS.length; ++i )
+ STANDARD_PROP_NAMES_LIST.add( JposEntryConst.REQUIRED_PROPS[ i ] );
+
+ STANDARD_PROP_NAMES_LIST.add( JposEntryConst.DEVICE_BUS_PROP_NAME );
+
+ for( int i = 0; i < JposEntryConst.RS232_PROPS.length; ++i )
+ STANDARD_PROP_NAMES_LIST.add( JposEntryConst.RS232_PROPS[ i ] );
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/util/JposProperties.java b/org.eclipse.osbp.fork.jpos/src/jpos/util/JposProperties.java
new file mode 100644
index 0000000..6aedd6f
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/util/JposProperties.java
@@ -0,0 +1,204 @@
+package jpos.util;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.util.Iterator;
+import java.util.Enumeration;
+import java.util.List;
+
+/**
+ * Sample interface that contains constants for all the JposProperties (names, default
+ * values, etc...) and some methods that the implementing property class must define.
+ * @since 1.2 (NY 2K 99 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface JposProperties extends JposPropertiesConst
+{
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /**
+ * Loads the jpos.properties file from the "./jpos/res" directory
+ * @since 1.2 (NY 2K meeting)
+ */
+ public void loadJposProperties();
+
+ /**
+ * @return true if the properties are loaded
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public boolean isLoaded();
+
+ /**
+ * @return the String property by name specified looking in System then the "jpos.properties" resource bundle
+ * @param propName the property name to search for
+ * @since 1.2 (NY 2K meeting)
+ */
+ public String getPropertyString( String propName );
+
+ /**
+ * @return true if this property is defined in the Java System properties or in
+ * the jpos.properties resource file
+ * @param propName the property name to look for
+ * @since 1.2 (NY 2K meeting)
+ */
+ public boolean isPropertyDefined( String propName );
+
+ /**
+ * @return an enumeration of properties names defined
+ * @since 1.2 (NY 2K meeting)
+ */
+ public Enumeration getPropertyNames();
+
+ /**
+ * @return a List of property value parsed from the property value found
+ * for the property name
+ * @param propName the property name for which the values will be parsed from
+ * @since 2.1.0
+ */
+ public List getStringListProperty( String propName );
+
+ /**
+ * @return the MultiProperty by the name passed. MultiProperty are properties
+ * named like <propName>.<n> where n = 0, 1, ... If the multi-property does not
+ * exist then null is returned
+ * @param multiPropName the multi-property name
+ * @since 1.3 (Wahington DC 2001 meeting)
+ */
+ public JposProperties.MultiProperty getMultiProperty( String multiPropName );
+
+ /**
+ * @return true if the MultiProperty by the name passed exist otherwise false
+ * @param multiPropName the multi-property name
+ * @since 1.3 (Wahington DC 2001 meeting)
+ */
+ public boolean hasMultiProperty( String multiPropName );
+
+ /**
+ * @return an iterator of JposProperties.Prop for all the properties in this
+ * JposProperties. Changes to these properties do not affect the JposProperties properties
+ * @see jpos.util.JposProperties.Prop
+ * @since 1.3 (Washington DC 2001)
+ */
+ public Iterator getProps();
+
+ /**
+ * @return the number of properties in this JposProperties
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public int size();
+
+ //-------------------------------------------------------------------------
+ // Public inner interfaces
+ //
+
+ /**
+ * Speficies an interface used for returning multi properties. That is
+ * properties that are named like <name>.x where x = 0, 1, ...x
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public interface MultiProperty
+ {
+ /**
+ * @return the number of this property name that is for property <propName>.x returns x
+ * @param propName the property name to get the number of
+ * @throws java.lang.IllegalArgumentException if the property name does not follow the <propName>.x name pattern
+ */
+ public int propertyNumber( String propName ) throws IllegalArgumentException;
+
+ /**
+ * @return the base property name for this multi-property that is the
+ * name w/o the number suffix
+ */
+ public String getBasePropertyName();
+
+ /** @return an iterator of the property names for this multi-property */
+ public Iterator getPropertyNames();
+
+ /** @return an iterator of the property names alphabetically sorted for this multi-property */
+ public Iterator getSortedPropertyNames();
+
+ /** @return an iterator of the property values for this multi-property */
+ public Iterator getPropertyValues();
+
+ /**
+ * @return the value for this property from the full property name
+ * @param propName the full property name <name>.x
+ */
+ public String getPropertyString( String propName );
+
+ /**
+ * @return the value for this property from the full property name
+ * @param number suffix for the property name
+ * @throws java.lang.IllegalArgumentException if the i negative
+ */
+ public String getPropertyString( int i ) throws IllegalArgumentException;
+
+ /** @return the number of properties defined in this multi-property */
+ public int getNumberOfProperties();
+ }
+
+ /**
+ * Simple wrapper class for a property pair <name, value>
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ * @since 1.3 (Washington DC 2001)
+ */
+ public interface Prop extends Comparable
+ {
+ /** @return the name of this property */
+ public String getName();
+
+ /** @return the value of this property */
+ public String getValue();
+
+ /**
+ * Sets the value of this property
+ * @param s the new prop name
+ */
+ public void setName( String s );
+
+ /**
+ * Sets the value of this property
+ * @param s the name String
+ */
+ public void setValue( String s );
+
+ /**
+ * @return 0 if 2 objects same -1 if this is less or +1 if this is more than other
+ * @param other the other object to compare against this
+ */
+ public int compareTo( JposProperties.Prop other );
+
+ /**
+ * @return 0 if 2 objects same -1 if this is less or +1 if this is more than other
+ * @param other the other object to compare against this
+ */
+ public int compareTo( Object other );
+ }
+
+ //-------------------------------------------------------------------------
+ // Public static constants
+ //
+
+ public static final String TRACING_PROP_NAME = "jpos.util.tracing";
+ public static final String TRACING_ON_PROP_VALUE = "ON";
+ public static final String TRACING_TRUE_PROP_VALUE = "TRUE";
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/util/JposPropertiesConst.java b/org.eclipse.osbp.fork.jpos/src/jpos/util/JposPropertiesConst.java
new file mode 100644
index 0000000..357f75b
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/util/JposPropertiesConst.java
@@ -0,0 +1,141 @@
+package jpos.util;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Interface with all JposPropertiesConstants like property names and values
+ * @since 1.3 (Washington DC 2001 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public interface JposPropertiesConst
+{
+ //-------------------------------------------------------------------------
+ // Public constants (non-properties name)
+ //
+
+ /**
+ * Constant defining the resource name for the "jpos.properties" file
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static final String JPOS_PROPERTIES_FILENAME = "jpos/res/jpos.properties";
+
+ /**
+ * The default name for the serialized file of JposEntry
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public static final String DEFAULT_ENTRIES_SER_FILE_NAME = "jpos.cfg";
+
+ //-------------------------------------------------------------------------
+ // Public constants (properties name)
+ //
+
+ /**
+ * Constants defining the JavaPOS service manager class name Java property
+ * @since 0.1 (Philly 99 meeting)
+ */
+ public static final String JPOS_SERVICE_MANAGER_CLASS_PROP_NAME = "jpos.config.serviceManagerClass";
+
+ /**
+ * Constants defining the JavaPOS service manager class name Java property
+ * NOTE: this is the correct name to use to specify the class implementing the
+ * JposServiceManager interface since this interface was moved to the jpos.loader
+ * package. The JposServiceLoader will use both...
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static final String JPOS_SERVICE_MANAGER_CLASS_PROP_NAME2 = "jpos.loader.serviceManagerClass";
+
+ /**
+ * Constants defining the JavaPOS JposRegPopulator implementor class name Java property
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static final String JPOS_REG_POPULATOR_CLASS_PROP_NAME = "jpos.config.regPopulatorClass";
+
+ /**
+ * Constants defining the JavaPOS local populator file Java property
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static final String JPOS_POPULATOR_FILE_PROP_NAME = "jpos.config.populatorFile";
+
+
+ /**
+ * Constants defining the JavaPOS URL populator file Java property
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static final String JPOS_POPULATOR_FILE_URL_PROP_NAME = "jpos.config.populatorFileURL";
+
+ /**
+ * Constants defining the JavaPOS tracing facility Java property
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static final String JPOS_TRACING_PROP_NAME = "jpos.util.tracing";
+
+ //-------------------------------------------------------------------------
+ // Public constants (multi-properties name)
+ //
+
+ /**
+ * Defines the base name for a multi-property constant used to define the multiple
+ * populator class name
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public static final String JPOS_CONFIG_POPULATOR_CLASS_MULTIPROP_NAME = "jpos.config.populator.class";
+
+ /**
+ * Defines the base name for a multi-property constant used to define the multiple
+ * populator file (i.e. the file that the populator will use to load the entries.
+ * @since 1.3 (Washington DC 2001 meeting)
+ */
+ public static final String JPOS_CONFIG_POPULATOR_FILE_MULTIPROP_NAME = "jpos.config.populator.file";
+
+ //-------------------------------------------------------------------------
+ // Public constants (properties value)
+ //
+
+ /**
+ * Constants defining the JavaPOS tracing facility Java property value of ON
+ * <b>NOTE</b>: either this or the JposProperties#JPOS_TRACING_TRUE_PROP_VALUE works
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static final String JPOS_TRACING_ON_PROP_VALUE = "ON";
+
+ /**
+ * Constants defining the JavaPOS tracing facility Java property of TRUE
+ * <b>NOTE</b>: either this or the JposProperties#JPOS_TRACING_ON_PROP_VALUE works
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static final String JPOS_TRACING_TRUE_PROP_VALUE = "TRUE";
+
+ //-------------------------------------------------------------------------
+ // Public constants
+ //
+
+ /**
+ * String array of all property names
+ * @since 1.3 (Washington DC 2001)
+ */
+ public static final String[] PROP_NAME_ARRAY = { JPOS_SERVICE_MANAGER_CLASS_PROP_NAME,
+ JPOS_SERVICE_MANAGER_CLASS_PROP_NAME2,
+ JPOS_REG_POPULATOR_CLASS_PROP_NAME,
+ JPOS_POPULATOR_FILE_PROP_NAME,
+ JPOS_POPULATOR_FILE_URL_PROP_NAME,
+ JPOS_TRACING_PROP_NAME,
+ JPOS_CONFIG_POPULATOR_CLASS_MULTIPROP_NAME,
+ JPOS_CONFIG_POPULATOR_FILE_MULTIPROP_NAME };
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/util/JposPropertiesViewer.java b/org.eclipse.osbp.fork.jpos/src/jpos/util/JposPropertiesViewer.java
new file mode 100644
index 0000000..734ac36
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/util/JposPropertiesViewer.java
@@ -0,0 +1,46 @@
+package jpos.util;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import jpos.loader.*;
+
+/**
+ * Simple application to printout the current values from the JposProperties
+ * implementing class
+ * @since 1.2 (NY 2K 99 meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class JposPropertiesViewer extends Object
+{
+ //-------------------------------------------------------------------------
+ // Public class methods
+ //
+
+ /**
+ * Simple main entry point that prints out all current properties (name and value) defined
+ * @param args the array for String argument
+ */
+ public static void main( String[] args )
+ {
+ System.out.println( "<!-- JavaPOS jpos.config/loader (JCL) defined Java properties: -->" );
+ System.out.println( "<!-- name = \"propName\" value = \"propValue\" -->" );
+
+ System.out.println( JposServiceLoader.getManager().getProperties() );
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/util/PopupHelper.java b/org.eclipse.osbp.fork.jpos/src/jpos/util/PopupHelper.java
new file mode 100644
index 0000000..9af2351
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/util/PopupHelper.java
@@ -0,0 +1,99 @@
+package jpos.util;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.awt.*;
+import java.awt.event.*;
+
+import javax.swing.*;
+
+import java.util.*;
+
+/**
+ * utility class that enables and controls showing of popupMenus
+ * @author Manuel M Monserrate
+ * @since 1.3 (SF 2K meeting)
+ */
+public class PopupHelper
+{
+ static Dictionary dictionary = new Hashtable();
+
+ static MouseListener popupMouseListener = new java.awt.event.MouseAdapter()
+ {
+
+ void tryPopup( MouseEvent evt ) {
+
+ if ( !evt.isPopupTrigger() )
+ return;
+
+ Component mouseEvtComp = evt.getComponent();
+
+ Object o[] = (Object [])dictionary.get( mouseEvtComp );
+
+ if ( o == null )
+ return;
+
+ JPopupMenu popupMenu = (JPopupMenu)o[0];
+
+ PopupListener popupListener = (PopupListener)o[1];
+
+ int x = evt.getX(), y = evt.getY();
+
+ boolean go = true;
+
+ if ( popupListener != null )
+ go = popupListener.startPopup( x, y );
+
+ if ( go )
+ popupMenu.show( mouseEvtComp, x - 20, y - 10 );
+ }
+
+ public void mousePressed( MouseEvent evt ) { tryPopup( evt ); }
+
+ public void mouseReleased( MouseEvent evt ) { tryPopup( evt ); }
+ };
+
+
+ /**
+ * registers a component to listen to mouse events for the popupMenu, does not use
+ * the PopupListener to do extra setting up for the menu
+ * @since 1.3 (SF 2K meeting)
+ */
+ public static void setPopup( JComponent mouseEvtComp, JPopupMenu popupMenu ) { setPopup( mouseEvtComp, popupMenu, null ); }
+
+ /**
+ * registers a component to listen to mouse events for the popupMenu, uses
+ * the PopupListener to do extra setting up for the menu when mouse is clicked
+ * @since 1.3 (SF 2K meeting)
+ */
+ public static void setPopup( JComponent mouseEvtComp, JPopupMenu popupMenu, PopupListener popupListener )
+ {
+ Object o[] = { popupMenu, popupListener };
+
+ dictionary.put( mouseEvtComp, o );
+
+ mouseEvtComp.addMouseListener( popupMouseListener );
+ }
+
+ /**
+ * unregisters a component from listen to mouse events for the popupMenu
+ * @since 1.3 (SF 2K meeting)
+ */
+ public static void removePopup( JComponent mouseEvtComp ) { dictionary.remove( mouseEvtComp ); }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/util/PopupListener.java b/org.eclipse.osbp.fork.jpos/src/jpos/util/PopupListener.java
new file mode 100644
index 0000000..9d4b995
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/util/PopupListener.java
@@ -0,0 +1,38 @@
+package jpos.util;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * class that prepares a JPopoupMenu for display
+ * @author Manuel M Monserrate
+ * @since 1.3 (SF 2K meeting)
+ */
+public class PopupListener
+{
+ /**
+ * used to setUp the PopupMenu depending on the coordinates given to the method
+ * @param x, the x-coordinate
+ * @param y, the y-coordinate
+ * @return true to show menu, false to cancel
+ */
+ public boolean startPopup( int x, int y )
+ {
+ return true;
+ }
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/util/Sorter.java b/org.eclipse.osbp.fork.jpos/src/jpos/util/Sorter.java
new file mode 100644
index 0000000..0865e0c
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/util/Sorter.java
@@ -0,0 +1,134 @@
+package jpos.util;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.util.*;
+
+/**
+ * This is utility class to sort Comparable elements in Vector objects
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ * @version 1.1.x (JDK 1.1.x)
+ */
+public final class Sorter extends Object
+{
+ //-------------------------------------------------------------------------
+ // Ctor
+ //
+
+ /** Make ctor private to prevent construction */
+ private Sorter() {}
+
+ //-------------------------------------------------------------------------
+ // Class methods
+ //
+
+ /**
+ * @return the smallest Comparable element in this Vector
+ * <b>NOTE:</b>implements a simple one pass algorithm in O(n) time
+ */
+ public static Comparable min( Vector comparables )
+ {
+ Comparable smallest = null;
+ Enumeration elements = comparables.elements();
+
+ while( elements.hasMoreElements() )
+ {
+ Comparable element = (Comparable)elements.nextElement();
+
+ if( smallest != null )
+ {
+ if( smallest.compareTo( element ) > 0 )
+ smallest = element;
+ }
+ else
+ smallest = element;
+ }
+
+ return smallest;
+ }
+
+ /**
+ * @return the greatest Comparable element in this Vector
+ * <b>NOTE:</b>implements a simple one pass algorithm in O(n) time
+ */
+ public static Comparable max( Vector comparables )
+ {
+ Comparable greatest = null;
+ Enumeration elements = comparables.elements();
+
+ while( elements.hasMoreElements() )
+ {
+ Comparable element = (Comparable)elements.nextElement();
+
+ if( greatest != null )
+ {
+ if( greatest.compareTo( element ) < 0 )
+ greatest = element;
+ }
+ else
+ greatest = element;
+ }
+
+ return greatest;
+ }
+
+ /**
+ * @return a Vector of sorted Comparable objects
+ * <b>NOTE:</b>implements a simple Insertion Sort algorithm
+ * Sorts n element in place in O(n^2) worst-case time
+ * @param elements a Vector with the initial Comparable objects
+ */
+ public static Vector insertionSort( Vector comparables )
+ {
+ Comparable min = min( comparables );
+
+ comparables.removeElement( min );
+
+ comparables.insertElementAt( min, 0 );
+
+ for( int i = 2; i < comparables.size(); i++ )
+ {
+ Comparable temp = (Comparable)comparables.elementAt( i );
+ int j = 0;
+ for( j = i; j > 0 && temp.compareTo( (Comparable)comparables.elementAt( j - 1 ) ) < 0; --j )
+ comparables.setElementAt( comparables.elementAt( j - 1 ), j );
+
+ comparables.setElementAt( temp, j );
+ }
+
+ return comparables;
+ }
+
+ /**
+ * @return a Vector of sorted Comparable objects
+ * <b>NOTE:</b>implements the Merge Sort algorithm
+ * Sorts n element in O(nlgn) worst-case time
+ * @param elements a Vector with the initial Comparable objects
+ */
+ public static Vector mergeSort( Vector comparables )
+ {
+ //<todo why="Proboby useful for large number of values since Merge-sort is O(nlgn)">
+ throw new RuntimeException( "Not yet implemented!" );
+ //</todo>
+ }
+
+ //-------------------------------------------------------------------------
+ // Class variables
+ //
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/util/Tracer.java b/org.eclipse.osbp.fork.jpos/src/jpos/util/Tracer.java
new file mode 100644
index 0000000..befe641
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/util/Tracer.java
@@ -0,0 +1,187 @@
+package jpos.util;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Tracing class to help in the debugging of the JCL and JavaPOS controls:
+ * This class is a Singleton (see GoF Design Pattern book)
+ * <b>This class is superceded by the classes in the jpos.util.tracing package
+ * access the sole instance by doing: Tracer.getInstance() call
+ * @see jpos.util.tracing.Tracer
+ * @see jpos.util.tracing.TracerFactory
+ * @deprecated see the classes in the jpos.util.tracing package
+ * @since 1.2 (NY 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class Tracer extends Object
+{
+ //--------------------------------------------------------------------------
+ // Ctor
+ //
+
+ /**
+ * Make ctor private to avoid construction (this is a Singleton class)
+ * @since 1.2 (NY 2K meeting)
+ */
+ private Tracer() {}
+
+ //--------------------------------------------------------------------------
+ // Public class methods
+ //
+
+ /**
+ * @return the sole instance of this class (creating it if necessary)
+ * @since 1.2 (NY 2K meeting)
+ */
+ public static Tracer getInstance()
+ {
+ if( instance == null )
+ {
+ instance = new Tracer();
+
+ instance.init();
+ }
+
+ return instance;
+ }
+
+ //--------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /**
+ * Prints a string appended with a new line to the tracer output
+ * @param s the String to print
+ */
+ public void println( String s ) { getTracerOutput().println( s ); }
+
+ /**
+ * Prints a string appended without a new line to the tracer output
+ * @param s the String to print
+ */
+ public void print( String s ) { getTracerOutput().print( s ); }
+
+ /**
+ * Sets this tracer ON or OFF
+ * @param b the boolean parameter
+ * @since 1.2 (NY 2K meeting)
+ */
+ public void setOn( boolean b ) { tracerOn = b; }
+
+ /**
+ * @return true if the tracer is ON (i.e. enabled)
+ * @since 1.2 (NY 2K meeting)
+ */
+ public boolean isOn() { return tracerOn; }
+
+ //--------------------------------------------------------------------------
+ // Private methods
+ //
+
+ /**
+ * Intialize the current JCL instance using the DefaultProperties class
+ * @since 1.2 (NY 2K meeting)
+ */
+ private void init()
+ {
+ JposProperties props = new DefaultProperties();
+ props.loadJposProperties();
+
+ if( !props.isPropertyDefined( JposProperties.JPOS_TRACING_PROP_NAME ) )
+ setOn( false );
+ else
+ {
+ String tracingPropValue =
+ props.getPropertyString( JposProperties.
+ JPOS_TRACING_PROP_NAME );
+
+ if( tracingPropValue.
+ equalsIgnoreCase( JposProperties.
+ JPOS_TRACING_ON_PROP_VALUE ) ||
+ tracingPropValue.
+ equalsIgnoreCase( JposProperties.
+ JPOS_TRACING_TRUE_PROP_VALUE ) )
+ setOn( true );
+ }
+ }
+
+ /**
+ * @return the tracerOutput object for the Tracer
+ * @since 1.2 (NY 2K meeting)
+ */
+ private TracerOutput getTracerOutput()
+ {
+ return ( isOn() ? onTracerOutput : offTracerOutput );
+ }
+
+ //--------------------------------------------------------------------------
+ // Private instance variables
+ //
+
+ private boolean tracerOn = false;
+
+ private TracerOutput onTracerOutput = new DefaultTracerOutput();
+ private TracerOutput offTracerOutput =
+ new TracerOutput()
+ {
+ public void println( String s ) {}
+ public void print( String s ) {}
+ };
+
+ //--------------------------------------------------------------------------
+ // Private class variables
+ //
+
+ private static Tracer instance = null;
+
+ //--------------------------------------------------------------------------
+ // Private static inner classes
+ //
+
+ /**
+ * Inner class for a default TracerOutput. Just prints out info to
+ * System.err
+ * @since 1.2 (NY 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+ static class DefaultTracerOutput extends Object implements TracerOutput
+ {
+ /**
+ * Default ctor
+ * @since 1.2 (NY 2K meeting)
+ */
+ public DefaultTracerOutput() {}
+
+ //----------------------------------------------------------------------
+ // Public methods
+ //
+
+ /**
+ * Prints a string appended with a new line to the tracer output
+ * @param s the String to print
+ */
+ public void println( String s ) { System.err.println( s ); }
+
+ /**
+ * Prints a string appended without a new line to the tracer output
+ * @param s the String to print
+ */
+ public void print( String s ) { System.err.print( s ); }
+ }
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/util/TracerOutput.java b/org.eclipse.osbp.fork.jpos/src/jpos/util/TracerOutput.java
new file mode 100644
index 0000000..43247fc
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/util/TracerOutput.java
@@ -0,0 +1,43 @@
+package jpos.util;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Defines an interface for outputing tracing info
+ * @since 1.2 (NY 2K 99 meeting)
+ * @author EMM
+ */
+public interface TracerOutput
+{
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /**
+ * Prints a string appended with a new line to the tracer output
+ * @param s the String to print
+ */
+ public void println( String s );
+
+ /**
+ * Prints a string appended without a new line to the tracer output
+ * @param s the String to print
+ */
+ public void print( String s );
+}
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/util/XmlHelper.java b/org.eclipse.osbp.fork.jpos/src/jpos/util/XmlHelper.java
new file mode 100644
index 0000000..3219384
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/util/XmlHelper.java
@@ -0,0 +1,261 @@
+package jpos.util;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.io.*;
+import java.util.*;
+
+import jpos.util.tracing.Tracer;
+import jpos.util.tracing.TracerFactory;
+
+/**
+ * Simple helper class for XML related activities
+ * @since 1.3 (SF 2K meeting)
+ * @author E. Michael Maximilien (maxim@us.ibm.com)
+ */
+public class XmlHelper extends Object
+{
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /** @return the current DTD file name */
+ public String getDtdFileName() { return dtdFileName; }
+
+ /** @return the current DTD file path */
+ public String getDtdFilePath() { return dtdFilePath; }
+
+ /**
+ * Sets the DTD file name that should be extracted by this helper
+ * @param fileName the XML file name
+ */
+ public void setDtdFileName( String fileName ) { dtdFileName = fileName; }
+
+ /**
+ * Sets the DTD file path that should be extracted by this helper
+ * @param filePath the XML file name
+ */
+ public void setDtdFilePath( String filePath )
+ {
+ dtdFilePath = ( filePath.endsWith( File.separator ) ?
+ filePath :
+ filePath + File.separator );
+ }
+
+ /**
+ * Checks if the dtdFile is available in the DTD path specified if not
+ * then creates it extracting it from the JAR file
+ */
+ public void checkAndCreateTempDtd()
+ {
+ createdTempDTD = false;
+ createdTempDir = false;
+ InputStream is = null;
+
+ dtdJarFullFileName = dtdFilePath + dtdFileName;
+
+ try
+ {
+ File dtdPath = new File( dtdFilePath );
+ File dtdFile = new File( dtdJarFullFileName );
+
+ if( dtdFile.exists() )
+ return;
+
+ if( !dtdPath.exists() )
+ {
+ dtdPath.mkdirs();
+
+ createdTempDir = true;
+
+ tracer.println( "DTD file PATH does not exist. Created path " +
+ dtdFilePath );
+ }
+
+ is = ClassLoader.getSystemClassLoader().getResourceAsStream( dtdJarFullFileName );
+
+ tracer.println( "Got DTD InputStream from current ClassLoader" );
+
+ if( is != null )
+ readAndCreateTempDtdFile( is );
+ }
+ catch( IOException ioe )
+ {
+ tracer.println( "Error creating DTD file: Exception.message = " +
+ ioe.getMessage() );
+ }
+ finally
+ {
+ try{ if( is != null ) is.close(); }
+ catch( IOException ioe )
+ {
+ tracer.println( "Error while closing streams:" +
+ " Exception.message = " +
+ ioe.getMessage() );
+ }
+ }
+ }
+
+ /** Removes the DTD path if it was created */
+ public void removeTempDtd()
+ {
+ try
+ {
+ if( createdTempDTD )
+ {
+ File dtdFile = new File( dtdJarFullFileName );
+ dtdFile.delete();
+
+ if( createdTempDir )
+ removeDirs( dtdFilePath );
+
+ tracer.println( "Removed temp directory with DTD OK" );
+ }
+ }
+ catch( Exception e )
+ {
+ tracer.println( "Error removing temporary DTD file: " +
+ "Exception.msg = " + e.getMessage() );
+ }
+ }
+
+ //-------------------------------------------------------------------------
+ // Private methods
+ //
+
+ /**
+ * Reads the DTD file from the InputStream provided and creates a temp
+ * @exception java.io.IOException if anything goes wrong
+ */
+ private void readAndCreateTempDtdFile( InputStream is ) throws IOException
+ {
+ File dtdFile = new File( dtdJarFullFileName );
+
+ FileOutputStream fos = new FileOutputStream( dtdFile );
+ OutputStreamWriter osw = new OutputStreamWriter( fos );
+
+ StringBuffer sb = new StringBuffer();
+
+ while( is.available() > 0 )
+ {
+ byte[] buffer = new byte[ is.available() ];
+
+ is.read( buffer );
+
+ sb.append( new String( buffer ) );
+ }
+
+ osw.write( sb.toString().trim() );
+
+ createdTempDTD = true;
+
+ try
+ {
+ if( osw != null ) osw.close();
+ if( fos != null ) fos.close();
+ }
+ catch( IOException ioe )
+ {
+ tracer.println( "Error while closing streams: IOExeption.msg=" +
+ ioe.getMessage() );
+ }
+
+ tracer.println( "Read and created temp " + dtdFilePath + dtdFileName );
+ }
+
+ /**
+ * @return a Vector of the different directories from a directory string
+ * @param originalDirName the full directory name
+ */
+ private Vector getSubdirNames( String originalDirName )
+ {
+ String dirName = originalDirName.
+ replace( "\\".charAt( 0 ), "/".charAt( 0 ) );
+
+ if( !dirName.endsWith( "/" ) ) dirName = dirName + "/";
+
+ Vector dirs = new Vector();
+ String s = dirName;
+
+ while( s.indexOf( "/" ) != -1 )
+ {
+ dirs.add( s.substring( 0, s.indexOf( "/" ) ) );
+ s = s.substring( s.indexOf( "/" ) + 1 );
+ }
+
+ return dirs;
+ }
+
+ //-------------------------------------------------------------------------
+ // Package methods
+ //
+
+ /**
+ * Removes the directory specified by this dirName (including any sub-dirs)
+ * @param dirName the directory name to remove
+ * @exception java.io.IOException if something goes wrong
+ */
+ void removeDirs( String dirName ) throws IOException
+ {
+ Vector subdirNames = getSubdirNames( dirName );
+
+ while( subdirNames.size() > 0 )
+ {
+ Vector v = (Vector)subdirNames.clone();
+
+ String subdirName = "";
+ for( int i = 0; i < subdirNames.size(); ++i )
+ subdirName += (String)subdirNames.elementAt( i ) +
+ File.separator;
+
+ File subdirFile = new File( subdirName );
+
+ if( subdirFile.list() != null &&
+ subdirFile.list().length == 0 )
+ subdirFile.delete();
+
+ if( subdirNames.size() > 0 )
+ subdirNames.removeElementAt( subdirNames.size() - 1 );
+ }
+ }
+
+ //-------------------------------------------------------------------------
+ // Private instance variables
+ //
+
+ private String dtdFileName = DEFAULT_DTD_FILE_NAME;
+ private String dtdFilePath = DEFAULT_DTD_FILE_PATH;
+ private String dtdJarFullFileName = dtdFilePath + File.separator +
+ dtdFileName;
+
+ private boolean createdTempDTD = false;
+ private boolean createdTempDir = false;
+
+ private Tracer tracer = TracerFactory.getInstance().
+ createTracer( "XmlHelper" );
+
+ //-------------------------------------------------------------------------
+ // Class constants
+ //
+
+ public static final String DEFAULT_DTD_FILE_NAME = "jcl.dtd";
+ public static final String DEFAULT_DTD_FILE_PATH = "jpos" +
+ File.separator +
+ "res" + File.separator;
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/util/tracing/Tracer.java b/org.eclipse.osbp.fork.jpos/src/jpos/util/tracing/Tracer.java
new file mode 100644
index 0000000..ee92b48
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/util/tracing/Tracer.java
@@ -0,0 +1,351 @@
+package jpos.util.tracing;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import jpos.util.*;
+import java.io.PrintStream;
+
+/**
+ * Tracing class to help in the debugging of other package code
+ * <ol>
+ * <li>
+ * <b>Note 1:</b> this class is a Singleton (see GoF Design Pattern book)
+ * ccess the sole instance by doing: Tracer.getInstance() call
+ * </li>
+ * <li>
+ * <b>Note 2:</b> Will allow (in the future) the option of defining different
+ * ouput for the tracer (1.3 version)
+ * </li>
+ * <li>
+ * By default Tracer objects are turned OFF but can dynamically or via
+ * properties file be turned OFF
+ * </li>
+ * </ol>
+ * @see com.ibm.jutil.Tracer#getInstance
+ * @author E. Michael Maximilien
+ * @since 2.1.0
+ */
+public class Tracer extends Object
+{
+ //-------------------------------------------------------------------------
+ // Ctor
+ //
+
+ /** Make ctor private to avoid construction (this is a Singleton class) */
+ protected Tracer() { appendName = false; }
+
+ /**
+ * Creates a Tracer instance with name specified
+ * @param name the Tracer name
+ */
+ Tracer( String name )
+ {
+ if( name == null || name.equals( "" ) )
+ {
+ appendName = false;
+ tracerName = "";
+ onTracerOutput = new DefaultTracerOutput();
+ }
+ else
+ {
+ appendName = true;
+ onTracerOutput = new DefaultTracerOutput( "[" + name + "]" );
+ tracerName = name;
+ }
+ }
+
+ //-------------------------------------------------------------------------
+ // Public class methods
+ //
+
+ /** @return the sole instance of this class (creating it if necessary) */
+ public static Tracer getInstance()
+ {
+ if( instance == null )
+ {
+ instance = new Tracer();
+ instance.init();
+ }
+
+ return instance;
+ }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /**
+ * Prints a string appended with a new line to the tracer output
+ * @param s the String to print
+ */
+ public void println( String s ) { getTracerOutput().println( s ); }
+
+ /**
+ * Prints the String representation of the Object passed
+ * @param obj the Object to println
+ */
+ public void println( Object obj ) { getTracerOutput().println( obj.toString() ); }
+
+ /**
+ * Prints a string appended without a new line to the tracer output
+ * @param s the String to print
+ */
+ public void print( String s ) { getTracerOutput().print( s ); }
+
+ /**
+ * Prints a String representation of the Object passed
+ * @param obj the Object to print
+ */
+ public void print( Object obj ) { getTracerOutput().print( obj.toString() ); }
+
+ /**
+ * Prints a StackTrace from an Exception object.
+ * @param e the Exception to extract StackTrace from
+ */
+ public void print( Exception e ) { getTracerOutput().print( e ); }
+
+ /** Flushes the Tracer */
+ public void flush() { getTracerOutput().flush(); }
+
+ /**
+ * Sets this tracer ON or OFF
+ * @param b the boolean parameter
+ */
+ public void setOn( boolean b ) { tracerOn = b; }
+
+ /** @return true if the tracer is ON (i.e. enabled) */
+ public boolean isOn() { return tracerOn; }
+
+ /** @return this Tracer's name */
+ public String getName() { return tracerName; }
+
+ /**
+ * Tells Tracer instance whether it should append name for each trace
+ * message or not
+ * @param b the boolean parameter
+ */
+ public void setAppendName( boolean b ) { appendName = b; }
+
+ /** @return whether the Tracer should append its name to each println method call */
+ public boolean isAppendName() { return appendName; }
+
+ //-------------------------------------------------------------------------
+ // Protected methods
+ //
+
+ //-------------------------------------------------------------------------
+ // Private methods
+ //
+
+ /** Intialize the current instance using the DefaultProperties class */
+ private void init()
+ {
+ JposProperties props = new DefaultProperties();
+ props.loadJposProperties();
+
+ if( !props.isPropertyDefined( JposProperties.TRACING_PROP_NAME ) )
+ setOn( false );
+ else
+ {
+ String tracingPropValue = props.getPropertyString( JposProperties.TRACING_PROP_NAME );
+
+ if( tracingPropValue.equalsIgnoreCase( JposProperties.TRACING_ON_PROP_VALUE ) ||
+ tracingPropValue.equalsIgnoreCase( JposProperties.TRACING_TRUE_PROP_VALUE ) )
+ setOn( true );
+ }
+ }
+
+ /** @return the tracerOutput object for the Tracer */
+ private TracerOutput getTracerOutput()
+ {
+ if( customTracerOutput != null ) return customTracerOutput;
+
+ return ( isOn() ? onTracerOutput : offTracerOutput );
+ }
+
+ //-------------------------------------------------------------------------
+ // Package methods
+ //
+
+ /**
+ * Sets the TracerOutput object -- for debugging purposes
+ * @param tracerOutput the TracerOutput object
+ */
+ void setTracerOutput( TracerOutput tracerOutput )
+ {
+ tracerOn = true;
+ customTracerOutput = tracerOutput;
+ }
+
+ //-------------------------------------------------------------------------
+ // Private instance variables
+ //
+
+ private boolean tracerOn = false;
+
+ private String tracerName = "";
+ private boolean appendName = true;
+
+ private TracerOutput customTracerOutput = null;
+ private TracerOutput onTracerOutput = new DefaultTracerOutput();
+
+ private TracerOutput offTracerOutput = new TracerOutput()
+ {
+ public void close() {}
+ public String getPrefix() { return ""; }
+ public void print( Exception e ) {}
+ public void println( String s ) {}
+ public void print( String s ) {}
+ public void flush() {}
+ };
+
+ //-------------------------------------------------------------------------
+ // Private class variables
+ //
+
+ private static Tracer instance = null;
+
+ //-------------------------------------------------------------------------
+ // Private static inner classes
+ //
+
+ /**
+ * Inner class for a default TracerOutput. Just prints out info to System.err
+ * @author E. Michael Maximilien
+ */
+ class DefaultTracerOutput extends Object implements TracerOutput
+ {
+ //---------------------------------------------------------------------
+ // Ctor(s)
+ //
+
+ /**
+ * Default ctor. No prefix is used and the PrintStream is set
+ * to the System.err PrintStream
+ */
+ public DefaultTracerOutput()
+ {
+ prefix = "";
+ appendName = false;
+ }
+
+ /**
+ * Default ctor
+ * @param s the String prefix to use for this TracerOutput
+ */
+ public DefaultTracerOutput( String s )
+ {
+ if( s == null ) prefix = "";
+ else
+ if( s.equals( "" ) ) prefix = "";
+ else
+ {
+ prefix = s;
+ appendName = true;
+ }
+ }
+
+ /**
+ * Default ctor
+ * @param s the String prefix to use for this TracerOutput
+ * @param pStream the PrintStream object used for this TracerOutput
+ */
+ public DefaultTracerOutput( String s, PrintStream pStream )
+ {
+ this( s );
+ printStream = pStream;
+ }
+
+ //---------------------------------------------------------------------
+ // Public methods
+ //
+
+ /**
+ * @return any prefix that is to be used with this TracerOutput
+ * <p>An existing prefix gets appended to every message</p>
+ */
+ public String getPrefix() { return prefix; }
+
+ /**
+ * Closes the TracerOutput. If it is a file then closes the file
+ * Any errors are not propagated up and rather printed to the System.errr
+ */
+ public void close() { getPrintStream().close(); }
+
+ /**
+ * Prints a string appended with a new line to the tracer output
+ * @param s the String to print
+ */
+ public void println( String s )
+ {
+ getPrintStream().println( ( appendName ? prefix : "" ) + s );
+ }
+
+ /**
+ * Prints a string appended without a new line to the tracer output
+ * @param s the String to print
+ */
+ public void print( String s )
+ {
+ getPrintStream().print( ( appendName ? prefix : "" ) + s );
+ }
+
+ /**
+ * Prints a StackTrace from an Exception object.
+ * @param e the Exception to extract StackTrace from
+ */
+ public void print( Exception e )
+ {
+ if( appendName ) System.err.println( "<" + prefix + ">" );
+
+ e.printStackTrace( getPrintStream() );
+
+ if( appendName ) System.err.println( "</" + prefix + ">" );
+ }
+
+ /**
+ * Flushes this TracerOutput
+ * <i>
+ * For this TracerOutput does not do anything since output flushes
+ * automatically
+ * </i>
+ */
+ public void flush() { getPrintStream().flush(); }
+
+ //-------------------------------------------------------------------------
+ // Protected methods
+ //
+
+ /** @return the PrintStream object that is used for this TracerOutput */
+ protected PrintStream getPrintStream() { return printStream; }
+
+ /**
+ * Sets the PrintStream for this TracerOutput
+ * @param pStream a PrintStream object
+ */
+ protected void setPrintStream( PrintStream pStream ) { printStream = pStream; }
+
+ //-------------------------------------------------------------------------
+ // Instance variables
+ //
+
+ protected String prefix = "";
+ protected PrintStream printStream = System.err;
+ }
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/util/tracing/TracerFactory.java b/org.eclipse.osbp.fork.jpos/src/jpos/util/tracing/TracerFactory.java
new file mode 100644
index 0000000..75f7ff2
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/util/tracing/TracerFactory.java
@@ -0,0 +1,327 @@
+package jpos.util.tracing;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+import java.io.File;
+import java.io.IOException;
+import java.io.PrintStream;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.List;
+
+import jpos.util.*;
+
+/**
+ * This is a singleton factory used to create Tracer objects and access the
+ * global tracer. This implementation has the following semantics:
+ * <ol>
+ * <li>Its a Singleton class but can be subclassed if necessary</li>
+ * <li>It caches the default no-named Tracer. This is the global Tracer</li>
+ * <li>
+ * It caches the Tracer objects according to name and any access for the
+ * same named Tracer will return the same Tracer object
+ * </li>
+ * </ol>
+ * @see com.ibm.jutil.tracing.Tracer#getInstance
+ * @author E. Michael Maximilien
+ * @since 2.1.0
+ */
+public class TracerFactory extends Object
+{
+ //-------------------------------------------------------------------------
+ // Ctor
+ //
+
+ /** Make ctor protected to avoid construction (this is a Singleton class) */
+ protected TracerFactory() {}
+
+ //-------------------------------------------------------------------------
+ // Public class methods
+ //
+
+ /** @return the sole instance of this class (creating it if necessary) */
+ public static TracerFactory getInstance()
+ {
+ if( instance == null )
+ {
+ instance = new TracerFactory();
+ instance.init();
+ }
+
+ return instance;
+ }
+
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /**
+ * Sets the File that all subsequently created Tracer objects will print to
+ * if these Tracer objects are turned on. Successfully calling this method
+ * overrides the current setting for TracerOutput to files
+ * @throws java.io.IOException if a PrintStream could not be created from File
+ */
+ public void setOutputFile( File file ) throws IOException
+ {
+ //<todo/>
+ }
+
+ /**
+ * @return the global no named Tracer object -- creates it if necessary
+ * Its state is determined by the jutil.properties value
+ */
+ public Tracer createGlobalTracer() { return globalTracer; }
+
+ /**
+ * @return the global no named Tracer object -- creates it if necessary
+ * Its state is determined by the jutil.properties value
+ * @param b the boolean parameter for the initial state of the tracer
+ */
+ public Tracer createGlobalTracer( boolean b )
+ {
+ globalTracer.setOn( b );
+ return globalTracer;
+ }
+
+ /**
+ * @return creates (if necessary) and return the Tracer with named specified
+ * Its state is determined by the jutil.properties value
+ * @param name the Tracer name
+ */
+ public Tracer createTracer( String name )
+ {
+ if( tracerMap.containsKey( name ) )
+ return (Tracer)tracerMap.get( name );
+
+ Tracer tracer = new Tracer( name );
+
+ if( namedTracerState.containsKey( name ) )
+ tracer.setOn( ( (Boolean)namedTracerState.get( name ) ).booleanValue() );
+ else
+ tracer.setOn( false );
+
+ if( turnOnAllNamedTracers ) tracer.setOn( true );
+
+ tracerMap.put( name, tracer );
+
+ return tracer;
+ }
+
+ /**
+ * @return creates (if necessary) and return the Tracer with named specified
+ * Its state is determined by the jutil.properties value
+ * @param name the Tracer name
+ * @param b the boolean parameter for the initial state of the tracer
+ */
+ public Tracer createTracer( String name, boolean b )
+ {
+ Tracer tracer = createTracer( name );
+ tracer.setOn( b );
+
+ return tracer;
+ }
+
+ //-------------------------------------------------------------------------
+ // Protected methods
+ //
+
+ /**
+ * Finalizes this Tracer by closing the TracerOutput. This is useful
+ * if the TracerOutput is printing to a file. This method would then
+ * close that file
+ * @throws java.lang.Thowable any exception occuring while finalizing
+ */
+ protected void finalize()
+ {
+ if( printStream != null ) printStream.close();
+ }
+
+ //-------------------------------------------------------------------------
+ // Private methods
+ //
+
+ /**
+ * @return true if the propertyValue passed is valid and is equals (ignoring
+ * case) to TRUE or YES
+ * @param propValue the property value to check
+ */
+ private boolean isPropertyTrue( String propValue )
+ {
+ if( propValue == null ) return false;
+
+ if( propValue.
+ equalsIgnoreCase( JposProperties.TRACING_ON_PROP_VALUE ) ||
+ propValue.
+ equalsIgnoreCase( JposProperties.TRACING_TRUE_PROP_VALUE ) )
+ return true;
+
+ return false;
+ }
+
+ /** Intialize the current instance using the DefaultProperties class */
+ private void init()
+ {
+ JposProperties props = new DefaultProperties();
+ props.loadJposProperties();
+
+ initGlobalTracer( props );
+ initTurnedOnTracers( props );
+ initNamedTracers( props );
+ initTracerOutput();
+ }
+
+ /**
+ * Initializes the state of the globalTracer -not named
+ * @param props the JposProperties instance
+ */
+ private void initGlobalTracer( JposProperties props )
+ {
+ if( !props.isPropertyDefined( TRACING_PROP_NAME ) )
+ globalTracer.setOn( false );
+ else
+ {
+ String tracingPropValue =
+ props.getPropertyString( TRACING_PROP_NAME );
+
+ if( isPropertyTrue( tracingPropValue ) )
+ globalTracer.setOn( true );
+ }
+ }
+
+ /**
+ * Sets to on all named tracers listed in the value of the...
+ * TurnOnNamedTracers property
+ * @param props the JposProperties instance
+ */
+ private void initTurnedOnTracers( JposProperties props )
+ {
+ if( props.isPropertyDefined( TURN_ON_ALL_NAMED_TRACERS_PROP_NAME ) )
+ {
+ String turnOnAllNamedTracersValue = props.
+ getPropertyString( TURN_ON_ALL_NAMED_TRACERS_PROP_NAME );
+
+ if( isPropertyTrue( turnOnAllNamedTracersValue ) )
+ turnOnAllNamedTracers = true;
+ else
+ turnOnAllNamedTracers = false;
+ }
+ else
+ if( props.isPropertyDefined( TURN_ON_NAMED_TRACERS_PROP_NAME ) )
+ {
+ List turnOnNamedTracersList =
+ props.getStringListProperty( TURN_ON_NAMED_TRACERS_PROP_NAME );
+
+ for( int i = 0; i < turnOnNamedTracersList.size(); ++i )
+ {
+ String tracerName = turnOnNamedTracersList.get( i ).toString();
+ namedTracerState.put( tracerName, Boolean.TRUE );
+ }
+ }
+ }
+
+ /**
+ * Initializes the state of all named Tracer objects
+ * @param props the JposProperties instance
+ */
+ private void initNamedTracers( JposProperties props )
+ {
+ Enumeration propNames = props.getPropertyNames();
+
+ while( propNames.hasMoreElements() )
+ {
+ String propName = (String)propNames.nextElement();
+
+ if( propName.startsWith( TRACER_PROP_NAME ) )
+ {
+ String name = propName.
+ substring( ( TRACER_PROP_NAME + "." ).length(),
+ propName.length() );
+
+ if( props.isPropertyDefined( propName ) )
+ {
+ String propValue = (String)props.
+ getPropertyString( propName );
+
+ if( propValue.equalsIgnoreCase( JposProperties.
+ TRACING_ON_PROP_VALUE ) ||
+ propValue.equalsIgnoreCase( JposProperties.
+ TRACING_TRUE_PROP_VALUE ) )
+ namedTracerState.put( name, Boolean.TRUE );
+ else
+ namedTracerState.put( name, Boolean.FALSE );
+ }
+ }
+ }
+ }
+
+ /**
+ * Initializes whether TracerOutput will be to a file or System.err and
+ * if to a file its location and name. By default TracerOutput is to
+ * System.err for all tracers that are turned on
+ */
+ private void initTracerOutput()
+ {
+ //<todo/>
+ }
+
+ //-------------------------------------------------------------------------
+ // Private instance variables
+ //
+
+ private HashMap tracerMap = new HashMap();
+ private HashMap namedTracerState = new HashMap();
+
+ private Tracer globalTracer = Tracer.getInstance();
+
+ private PrintStream printStream = null;
+
+ private boolean turnOnAllNamedTracers = false;
+
+ //-------------------------------------------------------------------------
+ // Private class variables
+ //
+
+ private static TracerFactory instance = null;
+
+ //-------------------------------------------------------------------------
+ // Class constants
+ //
+
+ public static final String TRACING_PROP_NAME = "jpos.tracing";
+
+ public static final String TRACER_PROP_NAME =
+ "jpos.util.tracing.Tracer";
+
+ public static final String TURN_ON_NAMED_TRACERS_PROP_NAME =
+ "jpos.util.tracing.TurnOnNamedTracers";
+
+ public static final String TURN_ON_ALL_NAMED_TRACERS_PROP_NAME =
+ "jpos.util.tracing.TurnOnAllNamedTracers";
+
+ public static final String TRACER_OUTPUT_TO_FILE_PROP_NAME =
+ "jpos.util.tracing.TracerOutputToFile";
+
+ public static final String TRACER_OUTPUT_FILE_NAME_PROP_NAME =
+ "jpos.util.tracing.TracerOutputFileName";
+
+ public static final String TRACER_OUTPUT_FILE_LOCATION =
+ "jpos.util.tracing.TracerOutputFileLocation";
+
+ public static final String USER_HOME_LOCATION_VALUE = "<user.home>";
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/util/tracing/TracerOutput.java b/org.eclipse.osbp.fork.jpos/src/jpos/util/tracing/TracerOutput.java
new file mode 100644
index 0000000..5803c51
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/util/tracing/TracerOutput.java
@@ -0,0 +1,64 @@
+package jpos.util.tracing;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Defines an interface for outputing tracing info
+ * @author E. Michael Maximilien
+ * @since 2.1.0
+ */
+public interface TracerOutput
+{
+ //-------------------------------------------------------------------------
+ // Public methods
+ //
+
+ /**
+ * @return any suffix that is to be used with this TracerOutput
+ * <p>An existing suffix gets appended to every message</p>
+ */
+ public String getPrefix();
+
+ /**
+ * Closes the TracerOutput. If it is a file then closes the file
+ * Any errors are not propagated up and rather printed to the System.errr
+ */
+ void close();
+
+ /**
+ * Prints a string appended with a new line to the tracer output
+ * @param s the String to print
+ */
+ public void println( String s );
+
+ /**
+ * Prints a string appended without a new line to the tracer output
+ * @param s the String to print
+ */
+ public void print( String s );
+
+ /**
+ * Prints a StackTrace from an Exception object.
+ * @param e the Exception to extract StackTrace from
+ */
+ public void print( Exception e );
+
+ /** Flushes the output */
+ public void flush();
+}
\ No newline at end of file
diff --git a/org.eclipse.osbp.fork.jpos/src/jpos/util/tracing/Tracing.java b/org.eclipse.osbp.fork.jpos/src/jpos/util/tracing/Tracing.java
new file mode 100644
index 0000000..60e012d
--- /dev/null
+++ b/org.eclipse.osbp.fork.jpos/src/jpos/util/tracing/Tracing.java
@@ -0,0 +1,77 @@
+package jpos.util.tracing;
+
+///////////////////////////////////////////////////////////////////////////////
+//
+// This software is provided "AS IS". The JavaPOS working group (including
+// each of the Corporate members, contributors and individuals) MAKES NO
+// REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE,
+// EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
+// WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NON-INFRINGEMENT. The JavaPOS working group shall not be liable for
+// any damages suffered as a result of using, modifying or distributing this
+// software or its derivatives. Permission to use, copy, modify, and distribute
+// the software and its documentation for any purpose is hereby granted.
+//
+// The JavaPOS Config/Loader (aka JCL) is now under the CPL license, which
+// is an OSS Apache-like license. The complete license is located at:
+// http://oss.software.ibm.com/developerworks/opensource/license-cpl.html
+//
+///////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Tracing class to help in the debugging of other package code
+ * This class uses the Tracer class for all its static methods implementations
+ * its a convinient class to avoid having to cache the Tracer object or having
+ * to do Tracer.getInstance() everytime you need to access the Tracer.
+ * @see jpos.util.Tracer#getInstance
+ * @author E. Michael Maximilien
+ */
+public class Tracing extends Object
+{
+ //-------------------------------------------------------------------------
+ // Ctor
+ //
+
+ /** Make ctor private to avoid construction */
+ private Tracing() {}
+
+ //-------------------------------------------------------------------------
+ // Public class methods
+ //
+
+ /**
+ * Class method that facilitate usage of Tracer.println() method
+ * @param obj the Object to print -- obj.toString()
+ */
+ public static void println( Object obj ) { tracer.println( obj.toString() ); }
+
+ /**
+ * Class print method that facilitate usage Tracer.print() method
+ * @param obj the Object to print -- obj.toString()
+ */
+ public static void print( Object obj ) { tracer.print( obj.toString() ); }
+
+ /**
+ * Prints a StackTrace from an Exception object.
+ * @param e the Exception to extract StackTrace from
+ */
+ public static void print( Exception e ) { tracer.print( e ); }
+
+ /** Flushes the TracerOutput */
+ public static void flush() { tracer.flush(); }
+
+ /**
+ * Sets this tracer ON or OFF
+ * @param b the boolean parameter
+ */
+ public static void setOn( boolean b ) { tracer.setOn( b ); }
+
+ /** @return true if the tracer is ON (i.e. enabled) */
+ public static boolean isOn() { return tracer.isOn(); }
+
+ //---------------------------------------------------------------------------
+ // Class variables
+ //
+
+ private static Tracer tracer = TracerFactory.getInstance().createGlobalTracer();
+}
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..90d8e9c
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,105 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+#=======================================================================
+# Copyright (c) 2011, 2016 - Loetz GmbH&Co.KG (69115 Heidelberg, Germany).
+# This program and the accompanying materials are made available under the
+# terms of the Eclipse Public License 2.0 which is available at
+# http://www.eclipse.org/legal/epl-2.0.
+#
+# SPDX-License-Identifier: EPL-2.0
+#
+# Contributors:
+# Loetz GmbH&Co.KG - initial API and implementation
+# CQ: https://dev.eclipse.org/ipzilla/show_bug.cgi?id=14786
+#=======================================================================
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.eclipse.osbp.releng.maven</groupId>
+ <artifactId>org.eclipse.osbp.releng.maven.parent.tycho</artifactId>
+ <version>0.9.0-SNAPSHOT</version>
+ <relativePath/>
+ </parent>
+
+ <groupId>org.eclipse.osbp.fork.jpos</groupId>
+ <artifactId>org.eclipse.osbp.fork.jpos.aggregator</artifactId>
+ <version>1.14.0-SNAPSHOT</version>
+ <packaging>pom</packaging>
+
+ <url>${osbp.site.repository.url}</url>
+ <scm>
+ <url>${osbp.scm.url}</url>
+ <connection>${osbp.scm.connection}</connection>
+ <developerConnection>${osbp.scm.connection.dev}</developerConnection>
+ <tag>HEAD</tag>
+ </scm>
+ <distributionManagement>
+ <site>
+ <id>gh-pages</id>
+ <name>OSBP GitHub Pages</name>
+ <url>${distribution.site.url}</url>
+ </site>
+ </distributionManagement>
+
+ <properties>
+
+ <osbp.gitrepo.name>${project.groupId}</osbp.gitrepo.name>
+ </properties>
+
+ <modules>
+ <module>org.eclipse.osbp.fork.jpos</module>
+ <module>org.eclipse.osbp.fork.jpos.feature</module>
+ </modules>
+
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.eclipse.tycho</groupId>
+ <artifactId>target-platform-configuration</artifactId>
+ <version>${tycho-version}</version>
+ <configuration>
+ <resolver>p2</resolver>
+ <pomDependencies>consider</pomDependencies>
+ <environments>
+ <environment>
+ <os>win32</os>
+ <ws>win32</ws>
+ <arch>x86</arch>
+ </environment>
+ <environment>
+ <os>win32</os>
+ <ws>win32</ws>
+ <arch>x86_64</arch>
+ </environment>
+ <environment>
+ <os>linux</os>
+ <ws>gtk</ws>
+ <arch>x86</arch>
+ </environment>
+ <environment>
+ <os>linux</os>
+ <ws>gtk</ws>
+ <arch>x86_64</arch>
+ </environment>
+ <environment>
+ <os>macosx</os>
+ <ws>cocoa</ws>
+ <arch>x86_64</arch>
+ </environment>
+ </environments>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+</project>