public void insert()

in taverna-scufl2-ucfpackage/src/main/java/org/apache/taverna/scufl2/ucfpackage/impl/odfdom/pkg/OdfPackage.java [820:887]


	public void insert(Document fileDOM, String packagePath, String mediaType)
			throws Exception {
		packagePath = ensureValidPackagePath(packagePath);

		try {
			if (mManifestEntries == null)
				parseManifest();
		} catch (Exception e) {
			throw new RuntimeException(e);
		}

		if (mediaType == null)
			mediaType = XML_MEDIA_TYPE;
		String d = EMPTY_STRING;
		StringTokenizer tok = new StringTokenizer(packagePath, SLASH);
		while (tok.hasMoreTokens()) {
			String s = tok.nextToken();
			if (EMPTY_STRING.equals(d))
				d = s + SLASH;
			else
				d = d + s + SLASH;
			if (tok.hasMoreTokens() && !mPackageEntries.contains(d))
				addDirectory(d);
		}

		mContentStreams.remove(packagePath);
		if (fileDOM == null)
			mContentDoms.remove(packagePath);
		else
			mContentDoms.put(packagePath, fileDOM);

		if (!mPackageEntries.contains(packagePath))
			mPackageEntries.add(packagePath);

		try {
			if (!OdfPackage.OdfFile.MANIFEST.packagePath.equals(packagePath)) {
				if (mManifestEntries != null
						&& mManifestEntries.get(packagePath) == null) {
					OdfFileEntry fileEntry = new OdfFileEntry(packagePath,
							mediaType);
					mManifestEntries.put(packagePath, fileEntry);
					mManifestList.add(packagePath);
				}
			} else
				parseManifest();
			// try to get the package from our cache
			ZipEntry ze = mZipEntries.get(packagePath);
			if (ze == null) {
				ze = new ZipEntry(packagePath);
				ze.setMethod(DEFLATED);
				mZipEntries.put(packagePath, ze);
			}
			if (!isFileCompressed(packagePath))
				ze.setMethod(STORED);

			entryUpdate(packagePath);
		} catch (SAXException se) {
			throw new Exception("SAXException:" + se.getMessage());
		} catch (ParserConfigurationException pce) {
			throw new Exception("ParserConfigurationException:"
					+ pce.getMessage());
		} catch (TransformerConfigurationException tce) {
			throw new Exception("TransformerConfigurationException:"
					+ tce.getMessage());
		} catch (TransformerException te) {
			throw new Exception("TransformerException:" + te.getMessage());
		}
	}