Removed unused Model, ModelFactory. ModelFactoryListener etc.
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@893041 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
7033e79c35
commit
cac5b3d60f
@ -1,113 +0,0 @@
|
|||||||
/* ====================================================================
|
|
||||||
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.eventmodel;
|
|
||||||
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.apache.poi.hssf.model.Model;
|
|
||||||
import org.apache.poi.hssf.model.Sheet;
|
|
||||||
import org.apache.poi.hssf.model.Workbook;
|
|
||||||
import org.apache.poi.hssf.record.BOFRecord;
|
|
||||||
import org.apache.poi.hssf.record.EOFRecord;
|
|
||||||
import org.apache.poi.hssf.record.Record;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ModelFactory creates workbook and sheet models based upon
|
|
||||||
* events thrown by them there events from the EventRecordFactory.
|
|
||||||
*
|
|
||||||
* @see org.apache.poi.hssf.eventmodel.EventRecordFactory
|
|
||||||
* @author Andrew C. Oliver acoliver@apache.org
|
|
||||||
*/
|
|
||||||
public class ModelFactory implements ERFListener
|
|
||||||
{
|
|
||||||
|
|
||||||
List listeners;
|
|
||||||
Model currentmodel;
|
|
||||||
boolean lastEOF;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor for ModelFactory. Does practically nothing.
|
|
||||||
*/
|
|
||||||
public ModelFactory()
|
|
||||||
{
|
|
||||||
super();
|
|
||||||
listeners = new ArrayList(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* register a ModelFactoryListener so that it can receive
|
|
||||||
* Models as they are created.
|
|
||||||
*/
|
|
||||||
public void registerListener(ModelFactoryListener listener) {
|
|
||||||
listeners.add(listener);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Start processing the Workbook stream into Model events.
|
|
||||||
*/
|
|
||||||
public void run(InputStream stream) {
|
|
||||||
EventRecordFactory factory = new EventRecordFactory(this,null);
|
|
||||||
lastEOF = true;
|
|
||||||
factory.processRecords(stream);
|
|
||||||
}
|
|
||||||
|
|
||||||
//ERFListener
|
|
||||||
public boolean processRecord(Record rec) {
|
|
||||||
if (rec.getSid() == BOFRecord.sid) {
|
|
||||||
if (lastEOF != true) {
|
|
||||||
throw new RuntimeException("Not yet handled embedded models");
|
|
||||||
}
|
|
||||||
BOFRecord bof = (BOFRecord)rec;
|
|
||||||
switch (bof.getType()) {
|
|
||||||
case BOFRecord.TYPE_WORKBOOK:
|
|
||||||
currentmodel = new Workbook();
|
|
||||||
break;
|
|
||||||
case BOFRecord.TYPE_WORKSHEET:
|
|
||||||
currentmodel = Sheet.createSheet();
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
throw new RuntimeException("Unsupported model type "+bof.getType());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (rec.getSid() == EOFRecord.sid) {
|
|
||||||
lastEOF = true;
|
|
||||||
throwEvent(currentmodel);
|
|
||||||
} else {
|
|
||||||
lastEOF = false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Throws the model as an event to the listeners
|
|
||||||
* @param model to be thrown
|
|
||||||
*/
|
|
||||||
private void throwEvent(Model model)
|
|
||||||
{
|
|
||||||
Iterator i = listeners.iterator();
|
|
||||||
while (i.hasNext()) {
|
|
||||||
ModelFactoryListener mfl = (ModelFactoryListener) i.next();
|
|
||||||
mfl.process(model);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,36 +0,0 @@
|
|||||||
/* ====================================================================
|
|
||||||
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.eventmodel;
|
|
||||||
|
|
||||||
import org.apache.poi.hssf.model.Model;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ModelFactoryListener is registered with the
|
|
||||||
* ModelFactory. It receives Models.
|
|
||||||
*
|
|
||||||
* @author Andrew C. Oliver acoliver@apache.org
|
|
||||||
*/
|
|
||||||
public interface ModelFactoryListener
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Process a model. Called by the ModelFactory
|
|
||||||
* @param model to be processed
|
|
||||||
* @return abortable - currently ignored (may be implemented in the future)
|
|
||||||
*/
|
|
||||||
public boolean process(Model model);
|
|
||||||
}
|
|
@ -1,29 +0,0 @@
|
|||||||
/* ====================================================================
|
|
||||||
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.model;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* enclosing_type describe the purpose here
|
|
||||||
*
|
|
||||||
* @author Andrew C. Oliver androliv@cisco.com
|
|
||||||
*/
|
|
||||||
public interface Model
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
@ -94,7 +94,7 @@ import org.apache.poi.util.POILogger;
|
|||||||
* @see org.apache.poi.hssf.model.Workbook
|
* @see org.apache.poi.hssf.model.Workbook
|
||||||
* @see org.apache.poi.hssf.usermodel.HSSFSheet
|
* @see org.apache.poi.hssf.usermodel.HSSFSheet
|
||||||
*/
|
*/
|
||||||
public final class Sheet implements Model {
|
public final class Sheet {
|
||||||
public static final short LeftMargin = 0;
|
public static final short LeftMargin = 0;
|
||||||
public static final short RightMargin = 1;
|
public static final short RightMargin = 1;
|
||||||
public static final short TopMargin = 2;
|
public static final short TopMargin = 2;
|
||||||
|
@ -108,7 +108,7 @@ import org.apache.poi.util.POILogger;
|
|||||||
* @author Glen Stampoultzis (glens at apache.org)
|
* @author Glen Stampoultzis (glens at apache.org)
|
||||||
* @see org.apache.poi.hssf.usermodel.HSSFWorkbook
|
* @see org.apache.poi.hssf.usermodel.HSSFWorkbook
|
||||||
*/
|
*/
|
||||||
public final class Workbook implements Model {
|
public final class Workbook {
|
||||||
/**
|
/**
|
||||||
* Excel silently truncates long sheet names to 31 chars.
|
* Excel silently truncates long sheet names to 31 chars.
|
||||||
* This constant is used to ensure uniqueness in the first 31 chars
|
* This constant is used to ensure uniqueness in the first 31 chars
|
||||||
|
@ -21,7 +21,6 @@ import junit.framework.Test;
|
|||||||
import junit.framework.TestSuite;
|
import junit.framework.TestSuite;
|
||||||
|
|
||||||
import org.apache.poi.hssf.eventmodel.TestEventRecordFactory;
|
import org.apache.poi.hssf.eventmodel.TestEventRecordFactory;
|
||||||
import org.apache.poi.hssf.eventmodel.TestModelFactory;
|
|
||||||
import org.apache.poi.hssf.eventusermodel.AllEventUserModelTests;
|
import org.apache.poi.hssf.eventusermodel.AllEventUserModelTests;
|
||||||
import org.apache.poi.hssf.extractor.TestExcelExtractor;
|
import org.apache.poi.hssf.extractor.TestExcelExtractor;
|
||||||
import org.apache.poi.hssf.model.AllModelTests;
|
import org.apache.poi.hssf.model.AllModelTests;
|
||||||
@ -34,8 +33,6 @@ import org.apache.poi.ss.util.AllSSUtilTests;
|
|||||||
/**
|
/**
|
||||||
* Test Suite for all sub-packages of org.apache.poi.hssf<br/>
|
* Test Suite for all sub-packages of org.apache.poi.hssf<br/>
|
||||||
*
|
*
|
||||||
* Mostly this is for my convenience.
|
|
||||||
*
|
|
||||||
* @author Andrew C. Oliver acoliver@apache.org
|
* @author Andrew C. Oliver acoliver@apache.org
|
||||||
*/
|
*/
|
||||||
public final class HSSFTests {
|
public final class HSSFTests {
|
||||||
@ -50,7 +47,6 @@ public final class HSSFTests {
|
|||||||
suite.addTest(AllHSSFUtilTests.suite());
|
suite.addTest(AllHSSFUtilTests.suite());
|
||||||
suite.addTest(new TestSuite(TestExcelExtractor.class));
|
suite.addTest(new TestSuite(TestExcelExtractor.class));
|
||||||
suite.addTest(new TestSuite(TestEventRecordFactory.class));
|
suite.addTest(new TestSuite(TestEventRecordFactory.class));
|
||||||
suite.addTest(new TestSuite(TestModelFactory.class));
|
|
||||||
suite.addTest(AllSSFormulaTests.suite());
|
suite.addTest(AllSSFormulaTests.suite());
|
||||||
suite.addTest(AllSSUtilTests.suite());
|
suite.addTest(AllSSUtilTests.suite());
|
||||||
return suite;
|
return suite;
|
||||||
|
@ -1,151 +0,0 @@
|
|||||||
/* ====================================================================
|
|
||||||
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.eventmodel;
|
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.apache.poi.hssf.model.Model;
|
|
||||||
import org.apache.poi.hssf.model.Sheet;
|
|
||||||
import org.apache.poi.hssf.model.Workbook;
|
|
||||||
import org.apache.poi.hssf.usermodel.HSSFCell;
|
|
||||||
import org.apache.poi.hssf.usermodel.HSSFRow;
|
|
||||||
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
|
||||||
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
|
||||||
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
|
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Tests the ModelFactory.
|
|
||||||
*
|
|
||||||
* @author Andrew C. Oliver acoliver@apache.org
|
|
||||||
*/
|
|
||||||
public class TestModelFactory extends TestCase {
|
|
||||||
private ModelFactory factory;
|
|
||||||
private HSSFWorkbook book;
|
|
||||||
private InputStream in;
|
|
||||||
private List models;
|
|
||||||
|
|
||||||
protected void setUp() throws Exception
|
|
||||||
{
|
|
||||||
ModelFactory mf = new ModelFactory();
|
|
||||||
assertTrue("listeners member cannot be null", mf.listeners != null);
|
|
||||||
models = new ArrayList(3);
|
|
||||||
factory = new ModelFactory();
|
|
||||||
book = new HSSFWorkbook();
|
|
||||||
ByteArrayOutputStream stream = setupRunFile(book);
|
|
||||||
POIFSFileSystem fs = new POIFSFileSystem(
|
|
||||||
new ByteArrayInputStream(stream.toByteArray())
|
|
||||||
);
|
|
||||||
in = fs.createDocumentInputStream("Workbook");
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void tearDown() throws Exception
|
|
||||||
{
|
|
||||||
super.tearDown();
|
|
||||||
factory = null;
|
|
||||||
book = null;
|
|
||||||
in = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* tests that listeners can be registered
|
|
||||||
*/
|
|
||||||
public void testRegisterListener()
|
|
||||||
{
|
|
||||||
if (factory.listeners.size() != 0) {
|
|
||||||
factory = new ModelFactory();
|
|
||||||
}
|
|
||||||
|
|
||||||
factory.registerListener(new MFListener(null));
|
|
||||||
factory.registerListener(new MFListener(null));
|
|
||||||
assertTrue("Factory listeners should be two, was="+
|
|
||||||
factory.listeners.size(),
|
|
||||||
factory.listeners.size() == 2);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* tests that given a simple input stream with one workbook and sheet
|
|
||||||
* that those models are processed and returned.
|
|
||||||
*/
|
|
||||||
public void testRun()
|
|
||||||
{
|
|
||||||
Model temp = null;
|
|
||||||
Iterator mi = null;
|
|
||||||
|
|
||||||
if (factory.listeners.size() != 0) {
|
|
||||||
factory = new ModelFactory();
|
|
||||||
}
|
|
||||||
|
|
||||||
factory.registerListener(new MFListener(models));
|
|
||||||
factory.run(in);
|
|
||||||
|
|
||||||
assertTrue("Models size must be 2 was = "+models.size(),
|
|
||||||
models.size() == 2);
|
|
||||||
mi = models.iterator();
|
|
||||||
temp = (Model)mi.next();
|
|
||||||
|
|
||||||
assertTrue("First model is Workbook was " + temp.getClass().getName(),
|
|
||||||
temp instanceof Workbook);
|
|
||||||
|
|
||||||
temp = (Model)mi.next();
|
|
||||||
|
|
||||||
assertTrue("Second model is Sheet was " + temp.getClass().getName(),
|
|
||||||
temp instanceof Sheet);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets up a test file
|
|
||||||
*/
|
|
||||||
private ByteArrayOutputStream setupRunFile(HSSFWorkbook book) throws Exception {
|
|
||||||
ByteArrayOutputStream stream = new ByteArrayOutputStream();
|
|
||||||
HSSFSheet sheet = book.createSheet("Test");
|
|
||||||
HSSFRow row = sheet.createRow(0);
|
|
||||||
HSSFCell cell = row.createCell(0);
|
|
||||||
cell.setCellValue(10.5);
|
|
||||||
book.write(stream);
|
|
||||||
return stream;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* listener for use in the test
|
|
||||||
*/
|
|
||||||
class MFListener implements ModelFactoryListener {
|
|
||||||
private List mlist;
|
|
||||||
public MFListener(List mlist) {
|
|
||||||
this.mlist = mlist;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean process(Model model)
|
|
||||||
{
|
|
||||||
mlist.add(model);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Iterator models() {
|
|
||||||
return mlist.iterator();
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user