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.usermodel.HSSFSheet
|
||||
*/
|
||||
public final class Sheet implements Model {
|
||||
public final class Sheet {
|
||||
public static final short LeftMargin = 0;
|
||||
public static final short RightMargin = 1;
|
||||
public static final short TopMargin = 2;
|
||||
|
@ -108,7 +108,7 @@ import org.apache.poi.util.POILogger;
|
||||
* @author Glen Stampoultzis (glens at apache.org)
|
||||
* @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.
|
||||
* 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 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.extractor.TestExcelExtractor;
|
||||
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/>
|
||||
*
|
||||
* Mostly this is for my convenience.
|
||||
*
|
||||
* @author Andrew C. Oliver acoliver@apache.org
|
||||
*/
|
||||
public final class HSSFTests {
|
||||
@ -50,7 +47,6 @@ public final class HSSFTests {
|
||||
suite.addTest(AllHSSFUtilTests.suite());
|
||||
suite.addTest(new TestSuite(TestExcelExtractor.class));
|
||||
suite.addTest(new TestSuite(TestEventRecordFactory.class));
|
||||
suite.addTest(new TestSuite(TestModelFactory.class));
|
||||
suite.addTest(AllSSFormulaTests.suite());
|
||||
suite.addTest(AllSSUtilTests.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