[prev in list] [next in list] [prev in thread] [next in thread]
List: xml-cocoon-cvs
Subject: svn commit: r1044301 - in
From: simonetripodi () apache ! org
Date: 2010-12-10 11:34:38
Message-ID: 20101210113438.B971B23888E4 () eris ! apache ! org
[Download RAW message or body]
Author: simonetripodi
Date: Fri Dec 10 11:34:38 2010
New Revision: 1044301
URL: http://svn.apache.org/viewvc?rev=1044301&view=rev
Log:
first checkin of SAX Pipeline DSL
Added:
cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/LinkedSAXPipelineComponentBuilderImpl.java \
(with props) cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/LinkedSAXPipelineStarterBuilderImpl.java \
(with props) cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/SAXPipelineBuilder.java \
(with props)
Added: cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/LinkedSAXPipelineComponentBuilderImpl.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/ap \
ache/cocoon/sax/builder/LinkedSAXPipelineComponentBuilderImpl.java?rev=1044301&view=auto
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/LinkedSAXPipelineComponentBuilderImpl.java \
(added)
+++ cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/LinkedSAXPipelineComponentBuilderImpl.java \
Fri Dec 10 11:34:38 2010 @@ -0,0 +1,209 @@
+/*
+ * 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.cocoon.sax.builder;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.URL;
+import java.text.SimpleDateFormat;
+import java.util.Collections;
+import java.util.Map;
+
+import org.apache.cocoon.pipeline.Pipeline;
+import org.apache.cocoon.pipeline.builder.LinkedPipelineConfigurationBuilder;
+import org.apache.cocoon.pipeline.builder.LinkedPipelineSetupBuilder;
+import org.apache.cocoon.sax.SAXPipelineComponent;
+import org.apache.cocoon.sax.component.CleaningTransformer;
+import org.apache.cocoon.sax.component.IncludeTransformer;
+import org.apache.cocoon.sax.component.LogAsXMLTransformer;
+import org.apache.cocoon.sax.component.LogTransformer;
+import org.apache.cocoon.sax.component.SchemaProcessorTransformer;
+import org.apache.cocoon.sax.component.XIncludeTransformer;
+import org.apache.cocoon.sax.component.XMLSerializer;
+import org.apache.cocoon.sax.component.XSLTTransformer;
+
+/**
+ *
+ *
+ * @version $Id$
+ */
+public final class LinkedSAXPipelineComponentBuilderImpl implements \
LinkedSAXPipelineComponentBuilder { +
+ private final Pipeline<SAXPipelineComponent> pipeline;
+
+ public LinkedSAXPipelineComponentBuilderImpl(final \
Pipeline<SAXPipelineComponent> pipeline) { + this.pipeline = pipeline;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineComponentBuilder addCleaningTransformer() {
+ return this.addComponent(new CleaningTransformer());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineComponentBuilder addIncludeTransformer() {
+ return this.addComponent(new IncludeTransformer());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineComponentBuilder addLogAsXMLTransformer() {
+ return this.addComponent(new LogAsXMLTransformer());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineComponentBuilder addLogAsXMLTransformer(File logFile) {
+ if (logFile == null) {
+ throw new IllegalArgumentException("Parameter 'logFile' must be not \
null"); + }
+ return this.addComponent(new LogAsXMLTransformer(logFile));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineComponentBuilder addLogTransformer(File logFile) throws \
IOException { + return this.addLogTransformer(logFile, false);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineComponentBuilder addLogTransformer(File logFile, boolean \
append) throws IOException { + return this.addLogTransformer(logFile, append, \
"yyyy-MM-dd'T'hh:mm:ss"); + }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineComponentBuilder addLogTransformer(File logFile, boolean \
append, String datePattern) throws IOException { + if (datePattern == null) {
+ throw new IllegalArgumentException("Parameter 'datePattern' must be not \
null"); + }
+ return this.addLogTransformer(logFile, append, new \
SimpleDateFormat(datePattern)); + }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineComponentBuilder addLogTransformer(File logFile, boolean \
append, SimpleDateFormat dateFormat) throws IOException { + if (logFile == \
null) { + throw new IllegalArgumentException("Parameter 'logFile' must be \
not null"); + }
+ if (dateFormat == null) {
+ throw new IllegalArgumentException("Parameter 'dateFormat' must be not \
null"); + }
+ return this.addComponent(new LogTransformer(logFile, append, dateFormat));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineComponentBuilder addSchemaProcessorTransformer(URL \
source) { + if (source == null) {
+ throw new IllegalArgumentException("Parameter 'source' must be not \
null"); + }
+ return this.addComponent(new SchemaProcessorTransformer(source));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineComponentBuilder addXIncludeTransformer() {
+ return this.addXIncludeTransformer(null);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineComponentBuilder addXIncludeTransformer(URL baseUrl) {
+ // baseUrl can be null, but only if documents don't have relative paths \
inside + return this.addComponent(new XIncludeTransformer(baseUrl));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineComponentBuilder addXSLTTransformer(URL source) {
+ return this.addXSLTTransformer(source, null);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineComponentBuilder addXSLTTransformer(URL source, \
Map<String, Object> attributes) { + if (source == null) {
+ throw new IllegalArgumentException("Parameter 'source' must be not \
null"); + }
+ return this.addComponent(new XSLTTransformer(source, attributes));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public <SPC extends SAXPipelineComponent> LinkedSAXPipelineComponentBuilder \
addComponent(SPC pipelineComponent) { + if (pipelineComponent == null) {
+ throw new IllegalArgumentException("Parameter 'pipelineComponent' must \
not be null"); + }
+ this.pipeline.addComponent(pipelineComponent);
+ return this;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedPipelineConfigurationBuilder<SAXPipelineComponent> addSerializer() \
{ + this.pipeline.addComponent(new XMLSerializer());
+
+ return new LinkedPipelineConfigurationBuilder<SAXPipelineComponent>() {
+
+ @SuppressWarnings("unchecked")
+ public LinkedPipelineSetupBuilder<SAXPipelineComponent> \
withEmptyConfiguration() { + return \
this.setConfiguration(Collections.EMPTY_MAP); + }
+
+ public LinkedPipelineSetupBuilder<SAXPipelineComponent> \
setConfiguration(final Map<String, ? extends Object> parameters) { + \
if (parameters == null) { + throw new \
IllegalArgumentException("Parameter 'parameters' must be not null"); + \
} + pipeline.setConfiguration(parameters);
+
+ return new LinkedPipelineSetupBuilder<SAXPipelineComponent>() {
+
+ public Pipeline<SAXPipelineComponent> setup(final OutputStream \
outputStream) { + if (outputStream == null) {
+ throw new IllegalArgumentException("Parameter \
'outputStream' must be not null"); + }
+ pipeline.setup(outputStream);
+ return pipeline;
+ }
+
+ };
+ }
+
+ };
+ }
+
+}
Propchange: cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/LinkedSAXPipelineComponentBuilderImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/LinkedSAXPipelineComponentBuilderImpl.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/LinkedSAXPipelineComponentBuilderImpl.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/LinkedSAXPipelineStarterBuilderImpl.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/ap \
ache/cocoon/sax/builder/LinkedSAXPipelineStarterBuilderImpl.java?rev=1044301&view=auto
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/LinkedSAXPipelineStarterBuilderImpl.java \
(added)
+++ cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/LinkedSAXPipelineStarterBuilderImpl.java \
Fri Dec 10 11:34:38 2010 @@ -0,0 +1,144 @@
+/*
+ * 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.cocoon.sax.builder;
+
+import java.io.File;
+import java.io.InputStream;
+import java.net.URL;
+
+import org.apache.cocoon.pipeline.Pipeline;
+import org.apache.cocoon.pipeline.component.Starter;
+import org.apache.cocoon.sax.SAXPipelineComponent;
+import org.apache.cocoon.sax.component.XMLGenerator;
+import org.apache.cocoon.xml.sax.SAXBuffer;
+import org.w3c.dom.Node;
+
+/**
+ *
+ *
+ * @version $Id$
+ */
+final class LinkedSAXPipelineStarterBuilderImpl implements \
LinkedSAXPipelineStarterBuilder { +
+ private final Pipeline<SAXPipelineComponent> pipeline;
+
+ /**
+ *
+ * @param pipeline
+ */
+ public LinkedSAXPipelineStarterBuilderImpl(Pipeline<SAXPipelineComponent> \
pipeline) { + this.pipeline = pipeline;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineComponentBuilder setByteArrayGenerator(byte[] bytes) {
+ if (bytes == null) {
+ throw new IllegalArgumentException("Parameter 'bytes' must be not \
null"); + }
+ return this.setStarter(new XMLGenerator(bytes));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineComponentBuilder setByteArrayGenerator(byte[] bytes, \
String encoding) { + if (bytes == null) {
+ throw new IllegalArgumentException("Parameter 'bytes' must be not \
null"); + }
+ if (encoding == null) {
+ throw new IllegalArgumentException("Parameter 'encoding' must be not \
null"); + }
+ return this.setStarter(new XMLGenerator(bytes, encoding));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineComponentBuilder setFileGenerator(File file) {
+ if (file == null) {
+ throw new IllegalArgumentException("Parameter 'file' must be not null");
+ }
+ return this.setStarter(new XMLGenerator(file));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineComponentBuilder setInputStreamGenerator(InputStream \
inputStream) { + if (inputStream == null) {
+ throw new IllegalArgumentException("Parameter 'inputStream' must be not \
null"); + }
+ return this.setStarter(new XMLGenerator(inputStream));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineComponentBuilder setNodeGenerator(Node node) {
+ if (node == null) {
+ throw new IllegalArgumentException("Parameter 'node' must be not null");
+ }
+ return this.setStarter(new XMLGenerator(node));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineComponentBuilder setSAXBufferGenerator(SAXBuffer \
saxBuffer) { + if (saxBuffer == null) {
+ throw new IllegalArgumentException("Parameter 'saxBuffer' must be not \
null"); + }
+ return this.setStarter(new XMLGenerator(saxBuffer));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineComponentBuilder setStringGenerator(String xmlString) {
+ if (xmlString == null) {
+ throw new IllegalArgumentException("Parameter 'xmlString' must be not \
null"); + }
+ return this.setStarter(new XMLGenerator(xmlString));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineComponentBuilder setURLGenerator(URL url) {
+ if (url == null) {
+ throw new IllegalArgumentException("Parameter 'url' must be not null");
+ }
+ return this.setStarter(new XMLGenerator(url));
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public <SPC extends SAXPipelineComponent> LinkedSAXPipelineComponentBuilder \
setStarter(SPC starter) { + if (starter == null) {
+ throw new IllegalArgumentException("Parameter 'starter' must be not \
null"); + }
+ if (!(starter instanceof Starter)) {
+ throw new IllegalArgumentException("Parameter 'starter' must be \
org.apache.cocoon.pipeline.component.Starter instance"); + }
+ this.pipeline.addComponent(starter);
+ return null;
+ }
+
+}
Propchange: cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/LinkedSAXPipelineStarterBuilderImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/LinkedSAXPipelineStarterBuilderImpl.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/LinkedSAXPipelineStarterBuilderImpl.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/SAXPipelineBuilder.java
URL: http://svn.apache.org/viewvc/cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/SAXPipelineBuilder.java?rev=1044301&view=auto
==============================================================================
--- cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/SAXPipelineBuilder.java \
(added)
+++ cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/SAXPipelineBuilder.java \
Fri Dec 10 11:34:38 2010 @@ -0,0 +1,60 @@
+/*
+ * 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.cocoon.sax.builder;
+
+import org.apache.cocoon.pipeline.AsyncCachePipeline;
+import org.apache.cocoon.pipeline.CachingPipeline;
+import org.apache.cocoon.pipeline.NonCachingPipeline;
+import org.apache.cocoon.pipeline.Pipeline;
+import org.apache.cocoon.sax.SAXPipelineComponent;
+
+/**
+ *
+ *
+ * @version $Id$
+ */
+public final class SAXPipelineBuilder {
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineStarterBuilder newAsyncCachePipeline() {
+ return this.newPipeline(new AsyncCachePipeline<SAXPipelineComponent>());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineStarterBuilder newCachingPipeline() {
+ return this.newPipeline(new CachingPipeline<SAXPipelineComponent>());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public LinkedSAXPipelineStarterBuilder newNonCachingPipeline() {
+ return this.newPipeline(new NonCachingPipeline<SAXPipelineComponent>());
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ private LinkedSAXPipelineStarterBuilder newPipeline(final \
Pipeline<SAXPipelineComponent> pipeline) { + return new \
LinkedSAXPipelineStarterBuilderImpl(pipeline); + }
+
+}
Propchange: cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/SAXPipelineBuilder.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/SAXPipelineBuilder.java
------------------------------------------------------------------------------
svn:keywords = Date Author Id Revision HeadURL
Propchange: cocoon/cocoon3/trunk/cocoon-sax/src/main/java/org/apache/cocoon/sax/builder/SAXPipelineBuilder.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic