summaryrefslogtreecommitdiff
path: root/xmerge/source/palmtests/qa/comparator/Record.java
diff options
context:
space:
mode:
Diffstat (limited to 'xmerge/source/palmtests/qa/comparator/Record.java')
-rw-r--r--xmerge/source/palmtests/qa/comparator/Record.java165
1 files changed, 165 insertions, 0 deletions
diff --git a/xmerge/source/palmtests/qa/comparator/Record.java b/xmerge/source/palmtests/qa/comparator/Record.java
new file mode 100644
index 000000000000..f506f1a2b190
--- /dev/null
+++ b/xmerge/source/palmtests/qa/comparator/Record.java
@@ -0,0 +1,165 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+import java.io.OutputStream;
+import java.io.InputStream;
+import java.io.DataOutputStream;
+import java.io.DataInputStream;
+import java.io.IOException;
+
+/**
+ * <p>Contains the raw bytes for a record in a pdb.</p>
+ *
+ * <p>Note that it is not associated with a record number or id.</p>
+ *
+ * @author Akhil Arora, Herbie Ong
+ * @see PalmDB
+ */
+
+
+public final class Record {
+
+ /** record bytes */
+ private byte[] data;
+
+ /**
+ * Default constructor.
+ */
+
+ public Record() {
+
+ data = new byte[0];
+ }
+
+ /**
+ * Constructor to create a Record filled with bytes.
+ * Note that this does not check for 64k record sizes.
+ * User of this class has to check for that.
+ *
+ * @param d byte array contents for this object.
+ */
+
+ public Record(byte[] d) {
+
+ data = new byte[d.length];
+ System.arraycopy(d, 0, data, 0, d.length);
+ }
+
+ /**
+ * This method returns the number of bytes in this object.
+ *
+ * @return int number of bytes in this object.
+ */
+
+ public int getSize() {
+
+ return data.length;
+ }
+
+ /**
+ * This method returns the contents of this object.
+ *
+ * @return byte[] contents in byte array
+ */
+
+ public byte[] getBytes() {
+
+ return data;
+ }
+
+ /**
+ * Write out the record length followed by the data
+ * in this Record object.
+ *
+ * @param out the stream to write the object to
+ * @throws IOException if any I/O error occurs
+ */
+
+
+ public void write(OutputStream outs) throws IOException {
+
+ DataOutputStream out = new DataOutputStream(outs);
+ out.writeShort(data.length);
+ out.write(data);
+ }
+
+ /**
+ * Read the necessary data to create a pdb from
+ * the input stream.
+ *
+ * @param in the stream to read data from in order to
+ * restore the object
+ * @throws IOException if any I/O error occurs
+ */
+
+ public void read(InputStream ins) throws IOException {
+
+ DataInputStream in = new DataInputStream(ins);
+ int len = in.readUnsignedShort();
+ data = new byte[len];
+ in.readFully(data);
+ }
+
+ /**
+ * Override equals method of Object.
+ *
+ * 2 Record objects are equal if they contain the same bytes
+ * in the array.
+ *
+ * This is used primarily for testing purposes only for now.
+ *
+ * @param obj a Record object to compare with
+ * @return boolean true if obj is equal to this, else false.
+ */
+
+ public boolean equals(Object obj) {
+
+ boolean bool = false;
+
+ if (obj instanceof Record) {
+
+ Record rec = (Record) obj;
+
+ checkLabel: {
+
+ if (rec.getSize() == data.length) {
+
+ for (int i = 0; i < data.length; i++) {
+
+ if (data[i] != rec.data[i]) {
+ break checkLabel;
+ }
+ }
+
+ bool = true;
+ }
+ }
+ }
+
+ return bool;
+ }
+}