| /* |
| * 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. |
| * |
| */ |
| |
| /* $Id: usecases.js 265544 2005-08-31 18:40:31Z thorsten $ */ |
| |
| var loadDocument; |
| |
| function loadDocument(uri) { |
| var parser = null; |
| var source = null; |
| var resolver = null; |
| try { |
| parser = cocoon.getComponent(Packages.org.apache.excalibur.xml.dom.DOMParser.ROLE); |
| resolver = cocoon.getComponent(Packages.org.apache.cocoon.environment.SourceResolver.ROLE); |
| source = resolver.resolveURI(uri); |
| var is = new Packages.org.xml.sax.InputSource(source.getInputStream()); |
| is.setSystemId(source.getURI()); |
| return parser.parseDocument(is); |
| } finally { |
| if (source != null) |
| resolver.release(source); |
| cocoon.releaseComponent(parser); |
| cocoon.releaseComponent(resolver); |
| } |
| } |
| |
| var saveDocument; |
| |
| function saveDocument(document, uri) { |
| var source = null; |
| var resolver = null; |
| var outputStream = null; |
| try { |
| resolver = cocoon.getComponent(Packages.org.apache.cocoon.environment.SourceResolver.ROLE); |
| source = resolver.resolveURI(uri); |
| |
| var tf = Packages.javax.xml.transform.TransformerFactory.newInstance(); |
| |
| if (source instanceof Packages.org.apache.excalibur.source.ModifiableSource |
| && tf.getFeature(Packages.javax.xml.transform.sax.SAXTransformerFactory.FEATURE)) { |
| |
| outputStream = source.getOutputStream(); |
| var transformerHandler = tf.newTransformerHandler(); |
| var transformer = transformerHandler.getTransformer(); |
| transformer.setOutputProperty(Packages.javax.xml.transform.OutputKeys.INDENT, "true"); |
| transformer.setOutputProperty(Packages.javax.xml.transform.OutputKeys.METHOD, "xml"); |
| transformerHandler.setResult(new Packages.javax.xml.transform.stream.StreamResult(outputStream)); |
| |
| var streamer = new Packages.org.apache.cocoon.xml.dom.DOMStreamer(transformerHandler); |
| streamer.stream(document); |
| } else { |
| throw new Packages.org.apache.cocoon.ProcessingException("Cannot write to source " + uri); |
| } |
| } finally { |
| if (source != null) |
| resolver.release(source); |
| cocoon.releaseComponent(resolver); |
| if (outputStream != null) { |
| try { |
| outputStream.flush(); |
| outputStream.close(); |
| } catch (error) { |
| cocoon.log.error("Could not flush/close outputstream: " + error); |
| } |
| } |
| } |
| } |
| /* |
| * 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. |
| * |
| */ |
| |
| /* $Id: usecases.js 265544 2005-08-31 18:40:31Z thorsten $ */ |
| |
| var loadDocument; |
| |
| function loadDocument(uri) { |
| var parser = null; |
| var source = null; |
| var resolver = null; |
| try { |
| parser = cocoon.getComponent(Packages.org.apache.excalibur.xml.dom.DOMParser.ROLE); |
| resolver = cocoon.getComponent(Packages.org.apache.cocoon.environment.SourceResolver.ROLE); |
| source = resolver.resolveURI(uri); |
| var is = new Packages.org.xml.sax.InputSource(source.getInputStream()); |
| is.setSystemId(source.getURI()); |
| return parser.parseDocument(is); |
| } finally { |
| if (source != null) |
| resolver.release(source); |
| cocoon.releaseComponent(parser); |
| cocoon.releaseComponent(resolver); |
| } |
| } |
| |
| var saveDocument; |
| |
| function saveDocument(document, uri) { |
| var source = null; |
| var resolver = null; |
| var outputStream = null; |
| try { |
| resolver = cocoon.getComponent(Packages.org.apache.cocoon.environment.SourceResolver.ROLE); |
| source = resolver.resolveURI(uri); |
| |
| var tf = Packages.javax.xml.transform.TransformerFactory.newInstance(); |
| |
| if (source instanceof Packages.org.apache.excalibur.source.ModifiableSource |
| && tf.getFeature(Packages.javax.xml.transform.sax.SAXTransformerFactory.FEATURE)) { |
| |
| outputStream = source.getOutputStream(); |
| var transformerHandler = tf.newTransformerHandler(); |
| var transformer = transformerHandler.getTransformer(); |
| transformer.setOutputProperty(Packages.javax.xml.transform.OutputKeys.INDENT, "true"); |
| transformer.setOutputProperty(Packages.javax.xml.transform.OutputKeys.METHOD, "xml"); |
| transformerHandler.setResult(new Packages.javax.xml.transform.stream.StreamResult(outputStream)); |
| |
| var streamer = new Packages.org.apache.cocoon.xml.dom.DOMStreamer(transformerHandler); |
| streamer.stream(document); |
| } else { |
| throw new Packages.org.apache.cocoon.ProcessingException("Cannot write to source " + uri); |
| } |
| } finally { |
| if (source != null) |
| resolver.release(source); |
| cocoon.releaseComponent(resolver); |
| if (outputStream != null) { |
| try { |
| outputStream.flush(); |
| outputStream.close(); |
| } catch (error) { |
| cocoon.log.error("Could not flush/close outputstream: " + error); |
| } |
| } |
| } |
| } |