summaryrefslogtreecommitdiffstats
path: root/sandbox/slaws/modules/domain-model-xml/src/main/java/org/apache/tuscany/sca/domain/model/xml/DomainProcessor.java
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/slaws/modules/domain-model-xml/src/main/java/org/apache/tuscany/sca/domain/model/xml/DomainProcessor.java')
-rw-r--r--sandbox/slaws/modules/domain-model-xml/src/main/java/org/apache/tuscany/sca/domain/model/xml/DomainProcessor.java181
1 files changed, 181 insertions, 0 deletions
diff --git a/sandbox/slaws/modules/domain-model-xml/src/main/java/org/apache/tuscany/sca/domain/model/xml/DomainProcessor.java b/sandbox/slaws/modules/domain-model-xml/src/main/java/org/apache/tuscany/sca/domain/model/xml/DomainProcessor.java
new file mode 100644
index 0000000000..8f39edfa8b
--- /dev/null
+++ b/sandbox/slaws/modules/domain-model-xml/src/main/java/org/apache/tuscany/sca/domain/model/xml/DomainProcessor.java
@@ -0,0 +1,181 @@
+/*
+ * 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.tuscany.sca.domain.model.xml;
+
+import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
+import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.StringTokenizer;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.tuscany.sca.assembly.AssemblyFactory;
+import org.apache.tuscany.sca.assembly.Binding;
+import org.apache.tuscany.sca.assembly.Callback;
+import org.apache.tuscany.sca.assembly.Component;
+import org.apache.tuscany.sca.assembly.ComponentProperty;
+import org.apache.tuscany.sca.assembly.ComponentReference;
+import org.apache.tuscany.sca.assembly.ComponentService;
+import org.apache.tuscany.sca.assembly.Composite;
+import org.apache.tuscany.sca.assembly.CompositeReference;
+import org.apache.tuscany.sca.assembly.CompositeService;
+import org.apache.tuscany.sca.assembly.ConfiguredOperation;
+import org.apache.tuscany.sca.assembly.ConstrainingType;
+import org.apache.tuscany.sca.assembly.Contract;
+import org.apache.tuscany.sca.assembly.Implementation;
+import org.apache.tuscany.sca.assembly.OperationsConfigurator;
+import org.apache.tuscany.sca.assembly.Property;
+import org.apache.tuscany.sca.assembly.Reference;
+import org.apache.tuscany.sca.assembly.Service;
+import org.apache.tuscany.sca.assembly.Wire;
+import org.apache.tuscany.sca.contribution.Artifact;
+import org.apache.tuscany.sca.contribution.ContributionFactory;
+import org.apache.tuscany.sca.contribution.processor.BaseStAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.processor.StAXArtifactProcessor;
+import org.apache.tuscany.sca.contribution.resolver.ModelResolver;
+import org.apache.tuscany.sca.contribution.service.ContributionReadException;
+import org.apache.tuscany.sca.contribution.service.ContributionResolveException;
+import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
+import org.apache.tuscany.sca.domain.model.Contribution;
+import org.apache.tuscany.sca.domain.model.Domain;
+import org.apache.tuscany.sca.domain.model.DomainFactory;
+import org.apache.tuscany.sca.domain.model.Node;
+import org.apache.tuscany.sca.domain.model.impl.DomainlFactoryImpl;
+import org.apache.tuscany.sca.interfacedef.InterfaceContract;
+import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
+import org.apache.tuscany.sca.policy.Intent;
+import org.apache.tuscany.sca.policy.IntentAttachPointType;
+import org.apache.tuscany.sca.policy.PolicyFactory;
+import org.apache.tuscany.sca.policy.PolicySet;
+import org.apache.tuscany.sca.policy.PolicySetAttachPoint;
+import org.w3c.dom.Document;
+
+/**
+ * A domain processor.
+ *
+ * @version $Rev: 615632 $ $Date: 2008-01-27 19:14:25 +0000 (Sun, 27 Jan 2008) $
+ */
+public class DomainProcessor extends BaseStAXArtifactProcessor implements Constants, StAXArtifactProcessor<Domain> {
+
+ DomainFactory domainFactory;
+
+ /**
+ * Construct a new domain processor
+ *
+ * @param extensionProcessor
+ */
+ public DomainProcessor(StAXArtifactProcessor extensionProcessor) {
+ domainFactory = new DomainlFactoryImpl();
+ }
+
+ /**
+ * Read and XML stream and Construct a new domain
+ *
+ * @param reader the input XML stream
+ */
+
+ public Domain read(XMLStreamReader reader) throws ContributionReadException, XMLStreamException {
+ Domain domain = null;
+ Node node = null;
+ Contribution contribution = null;
+
+ QName name;
+
+ // Read the composite document
+ while (reader.hasNext()) {
+ int event = reader.getEventType();
+ switch (event) {
+ case START_ELEMENT:
+ name = reader.getName();
+
+ if (DOMAIN_QNAME.equals(name)) {
+
+ // Read a <domain>
+ domain = domainFactory.createDomain();
+ domain.setDomainURI(getString(reader, org.apache.tuscany.sca.assembly.xml.Constants.URI));
+
+ } else if (NODE_QNAME.equals(name)) {
+
+ // Read a <node>
+ node = domainFactory.createNode();
+ node.setNodeURI(getString(reader, org.apache.tuscany.sca.assembly.xml.Constants.URI));
+ domain.getNodes().add(node);
+
+ } else if (COMPOSITE_QNAME.equals(name)) {
+
+ // Read a <composite>
+ QName compositeQName = getQName(reader, org.apache.tuscany.sca.assembly.xml.Constants.NAME);
+ node.setCompositeName(compositeQName);
+ } else if (CONTRIBUTION_QNAME.equals(name)) {
+
+ // Read a <contribution>
+ contribution = domainFactory.createContribution();
+ contribution.setContributionName(getString(reader, org.apache.tuscany.sca.assembly.xml.Constants.NAME));
+ domain.getContributions().add(contribution);
+ }
+
+ break;
+
+ case XMLStreamConstants.CHARACTERS:
+ break;
+
+ case END_ELEMENT:
+ name = reader.getName();
+
+ // Clear current state when reading end element
+ if (NODE_QNAME.equals(name)) {
+ node = null;
+ } else if (CONTRIBUTION_QNAME.equals(name)) {
+ contribution = null;
+ }
+ break;
+ }
+
+ // Read the next element
+ if (reader.hasNext()) {
+ reader.next();
+ }
+ }
+ return domain;
+ }
+
+ public void write(Domain domain, XMLStreamWriter writer) throws ContributionWriteException, XMLStreamException {
+
+ }
+
+ public void resolve(Domain domain, ModelResolver resolver) throws ContributionResolveException {
+
+
+ }
+
+ public QName getArtifactType() {
+ return DOMAIN_QNAME;
+ }
+
+ public Class<Domain> getModelType() {
+ return Domain.class;
+ }
+}