--- /dev/null
+/* ====================================================================
+ 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.ss.usermodel;
+
+public interface CreationHelper {}
String getCellFormula();
- /**
- * Creates a RichTextString, which you can then pass to
- * {@link #setCellValue(RichTextString)}. This is required
- * because Java is broken, and won't allow you to define
- * static methods or constructors on interfaces, and without
- * that there's no way to get a RichTextString without
- * creating the appropriate concrete class.
- * @param text The text to initialise the RichTextString with
- */
- RichTextString createRichTextString(String text);
-
/**
* get the value of the cell as a number. For strings we throw an exception.
* For blank cells we return a 0.
--- /dev/null
+/* ====================================================================
+ 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.ss.usermodel;
+
+/**
+ * An object that handles instantiating concrete
+ * classes of the various instances one needs for
+ * HSSF and XSSF.
+ * Works around a major shortcoming in Java, where we
+ * can't have static methods on interfaces or abstract
+ * classes.
+ * This allows you to get the appropriate class for
+ * a given interface, without you having to worry
+ * about if you're dealing with HSSF or XSSF, despite
+ * Java being quite rubbish.
+ */
+public interface CreationHelper {
+ /**
+ * Creates a new RichTextString instance
+ * @param text The text to initialise the RichTextString with
+ */
+ RichTextString createRichTextString(String text);
+
+ /**
+ * Creates a new DataFormat instance
+ */
+ DataFormat createDataFormat();
+}
\ No newline at end of file
package org.apache.poi.ss.usermodel;
public interface DataFormat {
-
/**
* get the format index that matches the given format string.
* Creates a new format if one is not found. Aliases text to the proper format.
* @param format string matching a built in format
* @return index of format.
*/
-
short getFormat(String format);
/**
* @param index of a format
* @return string represented at index of format or null if there is not a format at that index
*/
-
String getFormat(short index);
-
}
\ No newline at end of file
*/
List getAllEmbeddedObjects();
+ /**
+ * Returns an object that handles instantiating concrete
+ * classes of the various instances one needs for
+ * HSSF and XSSF.
+ * Works around a major shortcoming in Java, where we
+ * can't have static methods on interfaces or abstract
+ * classes.
+ */
+ CreationHelper getCreationHelper();
}
\ No newline at end of file
--- /dev/null
+/* ====================================================================
+ 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.xssf.usermodel;
+
+import org.apache.poi.ss.usermodel.CreationHelper;
+import org.apache.poi.ss.usermodel.DataFormat;
+import org.apache.poi.ss.usermodel.RichTextString;
+
+public class XSSFCreationHelper implements CreationHelper {
+ private XSSFWorkbook workbook;
+ private XSSFDataFormat dataFormat;
+ XSSFCreationHelper(XSSFWorkbook wb) {
+ workbook = wb;
+
+ // Create the things we only ever need one of
+ dataFormat = new XSSFDataFormat();
+ }
+
+ /**
+ * Creates a new XSSFRichTextString for you.
+ */
+ public RichTextString createRichTextString(String text) {
+ return new XSSFRichTextString(text);
+ }
+
+ public DataFormat createDataFormat() {
+ return dataFormat;
+ }
+}
--- /dev/null
+/* ====================================================================
+ 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.xssf.usermodel;
+
+import org.apache.poi.ss.usermodel.DataFormat;
+
+/**
+ * TODO - figure out how this should really work for XSSF
+ */
+public class XSSFDataFormat implements DataFormat {
+ public short getFormat(String format) {
+ return -1;
+ }
+
+ public String getFormat(short index) {
+ return null;
+ }
+}
import org.apache.poi.POIXMLDocument;
import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.DataFormat;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.Name;
this.sharedStringSource = sharedStringSource;
}
+ public CreationHelper getCreationHelper() {
+ return new XSSFCreationHelper(this);
+ }
}