]> source.dussan.org Git - poi.git/commitdiff
oops...forgot these
authorAndrew C. Oliver <acoliver@apache.org>
Mon, 2 Jul 2007 16:02:58 +0000 (16:02 +0000)
committerAndrew C. Oliver <acoliver@apache.org>
Mon, 2 Jul 2007 16:02:58 +0000 (16:02 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@552522 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/hssf/record/ObjectProtectRecord.java [new file with mode: 0644]
src/java/org/apache/poi/hssf/record/ScenarioProtectRecord.java [new file with mode: 0644]

diff --git a/src/java/org/apache/poi/hssf/record/ObjectProtectRecord.java b/src/java/org/apache/poi/hssf/record/ObjectProtectRecord.java
new file mode 100644 (file)
index 0000000..64d50cb
--- /dev/null
@@ -0,0 +1,129 @@
+
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+        
+
+package org.apache.poi.hssf.record;
+
+import org.apache.poi.util.LittleEndian;
+
+/**
+ * Title: Object Protect Record<P>
+ * Description: Protect embedded object with the lamest "security" ever invented.  
+ * This record tells  "I want to protect my objects" with lame security.  It 
+ * appears in conjunction with the PASSWORD and PROTECT records as well as its 
+ * scenario protect cousin.<P>
+ * REFERENCE:  PG 368 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)<P>
+ * @author Andrew C. Oliver (acoliver at apache dot org)
+ */
+
+public class ObjectProtectRecord
+    extends Record
+{
+    public final static short sid = 0x63;
+    private short             field_1_protect;
+
+    public ObjectProtectRecord()
+    {
+    }
+
+    /**
+     * Constructs a Protect record and sets its fields appropriately.
+     * @param in the RecordInputstream to read the record from
+     */
+
+    public ObjectProtectRecord(RecordInputStream in)
+    {
+        super(in);
+    }
+
+    protected void validateSid(short id)
+    {
+        if (id != sid)
+        {
+            throw new RecordFormatException("NOT AN OBJECTPROTECT RECORD");
+        }
+    }
+
+    protected void fillFields(RecordInputStream in)
+    {
+        field_1_protect = in.readShort();
+    }
+
+    /**
+     * set whether the sheet is protected or not
+     * @param protect whether to protect the sheet or not
+     */
+
+    public void setProtect(boolean protect)
+    {
+        if (protect)
+        {
+            field_1_protect = 1;
+        }
+        else
+        {
+            field_1_protect = 0;
+        }
+    }
+
+    /**
+     * get whether the sheet is protected or not
+     * @return whether to protect the sheet or not
+     */
+
+    public boolean getProtect()
+    {
+        return (field_1_protect == 1);
+    }
+
+    public String toString()
+    {
+        StringBuffer buffer = new StringBuffer();
+
+        buffer.append("[SCENARIOPROTECT]\n");
+           buffer.append("    .protect         = ").append(getProtect())
+            .append("\n");
+        buffer.append("[/SCENARIOPROTECT]\n");
+        return buffer.toString();
+    }
+
+    public int serialize(int offset, byte [] data)
+    {
+        LittleEndian.putShort(data, 0 + offset, sid);
+        LittleEndian.putShort(data, 2 + offset,
+                              (( short ) 0x02));   // 2 bytes (6 total)
+        LittleEndian.putShort(data, 4 + offset, field_1_protect);
+        return getRecordSize();
+    }
+
+    public int getRecordSize()
+    {
+        return 6;
+    }
+
+    public short getSid()
+    {
+        return sid;
+    }
+
+    public Object clone() {
+        ObjectProtectRecord rec = new ObjectProtectRecord();
+        rec.field_1_protect = field_1_protect;
+        return rec;
+    }
+}
diff --git a/src/java/org/apache/poi/hssf/record/ScenarioProtectRecord.java b/src/java/org/apache/poi/hssf/record/ScenarioProtectRecord.java
new file mode 100644 (file)
index 0000000..f843163
--- /dev/null
@@ -0,0 +1,130 @@
+
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+        
+
+package org.apache.poi.hssf.record;
+
+import org.apache.poi.util.LittleEndian;
+
+/**
+ * Title: Scenario Protect Record<P>
+ * Description:  I have no idea what a Scenario is or why on would want to 
+ * protect it with the lamest "security" ever invented.  However this record tells
+ * excel "I want to protect my scenarios" (0xAF) with lame security.  It appears 
+ * in conjunction with the PASSWORD and PROTECT records as well as its object 
+ * protect cousin.<P>
+ * REFERENCE:  PG 383 Microsoft Excel 97 Developer's Kit (ISBN: 1-57231-498-2)<P>
+ * @author Andrew C. Oliver (acoliver at apache dot org)
+ */
+
+public class ScenarioProtectRecord
+    extends Record
+{
+    public final static short sid = 0xdd;
+    private short             field_1_protect;
+
+    public ScenarioProtectRecord()
+    {
+    }
+
+    /**
+     * Constructs a Protect record and sets its fields appropriately.
+     * @param in the RecordInputstream to read the record from
+     */
+
+    public ScenarioProtectRecord(RecordInputStream in)
+    {
+        super(in);
+    }
+
+    protected void validateSid(short id)
+    {
+        if (id != sid)
+        {
+            throw new RecordFormatException("NOT A SCENARIOPROTECT RECORD");
+        }
+    }
+
+    protected void fillFields(RecordInputStream in)
+    {
+        field_1_protect = in.readShort();
+    }
+
+    /**
+     * set whether the sheet is protected or not
+     * @param protect whether to protect the sheet or not
+     */
+
+    public void setProtect(boolean protect)
+    {
+        if (protect)
+        {
+            field_1_protect = 1;
+        }
+        else
+        {
+            field_1_protect = 0;
+        }
+    }
+
+    /**
+     * get whether the sheet is protected or not
+     * @return whether to protect the sheet or not
+     */
+
+    public boolean getProtect()
+    {
+        return (field_1_protect == 1);
+    }
+
+    public String toString()
+    {
+        StringBuffer buffer = new StringBuffer();
+
+        buffer.append("[SCENARIOPROTECT]\n");
+           buffer.append("    .protect         = ").append(getProtect())
+            .append("\n");
+        buffer.append("[/SCENARIOPROTECT]\n");
+        return buffer.toString();
+    }
+
+    public int serialize(int offset, byte [] data)
+    {
+        LittleEndian.putShort(data, 0 + offset, sid);
+        LittleEndian.putShort(data, 2 + offset,
+                              (( short ) 0x02));   // 2 bytes (6 total)
+        LittleEndian.putShort(data, 4 + offset, field_1_protect);
+        return getRecordSize();
+    }
+
+    public int getRecordSize()
+    {
+        return 6;
+    }
+
+    public short getSid()
+    {
+        return sid;
+    }
+
+    public Object clone() {
+        ScenarioProtectRecord rec = new ScenarioProtectRecord();
+        rec.field_1_protect = field_1_protect;
+        return rec;
+    }
+}