[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