This is an automated email from the ASF dual-hosted git repository.
grv pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/ofbiz-plugins.git The following commit(s) were added to refs/heads/trunk by this push: new 290f0b8 Model classes added corresponding to REST XMl schema (#42) 290f0b8 is described below commit 290f0b8af93d28d88f4e687763d122d40ac2df10 Author: girishvasmatkar <[hidden email]> AuthorDate: Tue Sep 15 13:35:50 2020 +0530 Model classes added corresponding to REST XMl schema (#42) --- .../org/apache/ofbiz/ws/rs/model/ModelApi.java | 113 +++++++++++ .../apache/ofbiz/ws/rs/model/ModelApiReader.java | 77 ++++++++ .../apache/ofbiz/ws/rs/model/ModelOperation.java | 214 +++++++++++++++++++++ .../apache/ofbiz/ws/rs/model/ModelResource.java | 177 +++++++++++++++++ 4 files changed, 581 insertions(+) diff --git a/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/model/ModelApi.java b/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/model/ModelApi.java new file mode 100644 index 0000000..2381e5a --- /dev/null +++ b/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/model/ModelApi.java @@ -0,0 +1,113 @@ +/******************************************************************************* + * 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.ofbiz.ws.rs.model; + +import java.util.ArrayList; +import java.util.List; + +public class ModelApi { + + private List<ModelResource> resources; + private String name; + private String displayName; + private String description; + + /** + * @return + */ + public List<ModelResource> getResources() { + if (resources == null) { + resources = new ArrayList<ModelResource>(); + } + return this.resources; + } + + /** + * @param resource + * @return + */ + public ModelApi addResource(ModelResource resource) { + if (this.resources == null) { + this.resources = new ArrayList<>(); + } + this.resources.add(resource); + return this; + } + + /** + * Gets the value of the name property. + * + * @return possible object is {@link String } + * + */ + public String getName() { + return name; + } + + /** + * Sets the value of the name property. + * + * @param value allowed object is {@link String } + * + */ + public void setName(String value) { + this.name = value; + } + + /** + * Gets the value of the displayName property. + * + * @return possible object is {@link String } + * + */ + public String getDisplayName() { + return displayName; + } + + /** + * Sets the value of the displayName property. + * + * @param value allowed object is {@link String } + * + */ + public void setDisplayName(String value) { + this.displayName = value; + } + + /** + * Gets the value of the description property. + * + * @return possible object is {@link String } + * + */ + public String getDescription() { + return description; + } + + /** + * Sets the value of the description property. + * + * @param value allowed object is {@link String } + * + */ + public void setDescription(String value) { + this.description = value; + } + +} diff --git a/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/model/ModelApiReader.java b/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/model/ModelApiReader.java new file mode 100644 index 0000000..208e3af --- /dev/null +++ b/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/model/ModelApiReader.java @@ -0,0 +1,77 @@ +/******************************************************************************* + * 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.ofbiz.ws.rs.model; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; + +import javax.xml.parsers.ParserConfigurationException; + +import org.apache.ofbiz.base.util.Debug; +import org.apache.ofbiz.base.util.UtilXml; +import org.w3c.dom.Element; +import org.xml.sax.SAXException; + +public final class ModelApiReader { + private static final String MODULE = ModelApiReader.class.getName(); + + private ModelApiReader() { + + } + public static ModelApi getModelApi(final File apiDef) { + Element docElement; + try { + docElement = UtilXml.readXmlDocument(new FileInputStream(apiDef), true, "REST API file", true) + .getDocumentElement(); + } catch (SAXException | ParserConfigurationException | IOException e) { + e.printStackTrace(); + return null; + } + docElement.normalize(); + ModelApi api = new ModelApi(); + for (Element resourceEle : UtilXml.childElementList(docElement, "resource")) { + ModelResource resource = new ModelResource() + .name(UtilXml.checkEmpty(resourceEle.getAttribute("name")).intern()) + .description(UtilXml.checkEmpty(resourceEle.getAttribute("description")).intern()) + .displayName(UtilXml.checkEmpty(resourceEle.getAttribute("displayName")).intern()) + .path(UtilXml.checkEmpty(resourceEle.getAttribute("path")).intern()) + .enabled(Boolean.parseBoolean(UtilXml.checkEmpty(resourceEle.getAttribute("name")).intern())); + createOperations(resourceEle, resource); + Debug.logInfo(resource.toString(), MODULE); + api.addResource(resource); + } + return api; + } + + private static void createOperations(Element resourceEle, ModelResource resource) { + for (Element operationEle : UtilXml.childElementList(resourceEle, "operation")) { + Element serviceEle = UtilXml.firstChildElement(operationEle, "service"); + String serviceName = UtilXml.checkEmpty(serviceEle.getAttribute("name")).intern(); + ModelOperation op = new ModelOperation() + .path(UtilXml.checkEmpty(operationEle.getAttribute("path")).intern()) + .verb(UtilXml.checkEmpty(operationEle.getAttribute("verb")).intern()).service(serviceName) + .produces(UtilXml.checkEmpty(operationEle.getAttribute("produces")).intern()) + .consumes(UtilXml.checkEmpty(operationEle.getAttribute("consumes")).intern()) + .description(UtilXml.checkEmpty(operationEle.getAttribute("description")).intern()); + resource.addOperation(op); + } + } + +} diff --git a/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/model/ModelOperation.java b/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/model/ModelOperation.java new file mode 100644 index 0000000..88cf914 --- /dev/null +++ b/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/model/ModelOperation.java @@ -0,0 +1,214 @@ +/******************************************************************************* + * 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.ofbiz.ws.rs.model; + +public class ModelOperation { + + private String service; + private String verb; + private String produces; + private String consumes; + private String path; + private String description; + + /** + * Gets the value of the service property. + * + * @return possible object is {@link Service } + * + */ + public String getService() { + return service; + } + + /** + * Sets the value of the service property. + * + * @param value allowed object is {@link Service } + * + */ + public void setService(String value) { + this.service = value; + } + + /** + * @param value + * @return + */ + public ModelOperation service(String value) { + this.service = value; + return this; + } + + /** + * Gets the value of the verb property. + * + * @return possible object is {@link String } + * + */ + public String getVerb() { + return verb; + } + + /** + * Sets the value of the verb property. + * + * @param value allowed object is {@link String } + * + */ + public void setVerb(String value) { + this.verb = value; + } + + /** + * @param value + * @return + */ + public ModelOperation verb(String value) { + this.verb = value; + return this; + } + + /** + * Gets the value of the produces property. + * + * @return possible object is {@link String } + * + */ + public String getProduces() { + return produces; + } + + /** + * Sets the value of the produces property. + * + * @param value allowed object is {@link String } + * + */ + public void setProduces(String value) { + this.produces = value; + } + + /** + * @param value + * @return + */ + public ModelOperation produces(String value) { + this.produces = value; + return this; + } + + /** + * Gets the value of the consumes property. + * + * @return possible object is {@link String } + * + */ + public String getConsumes() { + return consumes; + } + + /** + * Sets the value of the consumes property. + * + * @param value allowed object is {@link String } + * + */ + public void setConsumes(String value) { + this.consumes = value; + } + + /** + * @param value + * @return + */ + public ModelOperation consumes(String value) { + this.consumes = value; + return this; + } + + /** + * Gets the value of the path property. + * + * @return possible object is {@link String } + * + */ + public String getPath() { + return path; + } + + /** + * Sets the value of the path property. + * + * @param value allowed object is {@link String } + * + */ + public void setPath(String value) { + this.path = value; + } + + /** + * @param value + * @return + */ + public ModelOperation path(String value) { + this.path = value; + return this; + } + + /** + * Gets the value of the description property. + * + * @return possible object is {@link String } + * + */ + public String getDescription() { + return description; + } + + /** + * Sets the value of the description property. + * + * @param value allowed object is {@link String } + * + */ + public void setDescription(String value) { + this.description = value; + } + + /** + * @param value + * @return + */ + public ModelOperation description(String value) { + this.description = value; + return this; + } + + /** + * @return + */ + @Override + public String toString() { + // TODO Auto-generated method stub + return "service: " + service + ", path: " + path + ", verb: " + verb + ", description: " + description + + ", produces: " + produces; + } + +} diff --git a/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/model/ModelResource.java b/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/model/ModelResource.java new file mode 100644 index 0000000..0103f6f --- /dev/null +++ b/ofbiz-rest-impl/src/main/java/org/apache/ofbiz/ws/rs/model/ModelResource.java @@ -0,0 +1,177 @@ +/******************************************************************************* + * 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.ofbiz.ws.rs.model; + +import java.util.ArrayList; +import java.util.List; + +public class ModelResource { + + private List<ModelOperation> operations; + private String name; + private String path; + private String displayName; + private String description; + private boolean enabled; + + /** + * @return the operation + */ + public List<ModelOperation> getOperations() { + return operations == null ? new ArrayList<ModelOperation>() : operations; + } + + /** + * @param operation + * @return + */ + public ModelResource addOperation(ModelOperation operation) { + if (this.operations == null) { + this.operations = new ArrayList<>(); + } + this.operations.add(operation); + return this; + } + + /** + * @return the name + */ + public String getName() { + return name; + } + + /** + * @param name the name to set + */ + public void setName(String name) { + this.name = name; + } + + /** + * @param name + * @return + */ + public ModelResource name(String name) { + this.name = name; + return this; + } + + /** + * @param path + * @return + */ + public ModelResource path(String path) { + this.path = path; + return this; + } + + /** + * @return the path + */ + public String getPath() { + return path; + } + + /** + * @param path the path to set + */ + public void setPath(String path) { + this.path = path; + } + + /** + * @return the displayName + */ + public String getDisplayName() { + return displayName; + } + + /** + * @param displayName + * @return + */ + public ModelResource displayName(String displayName) { + this.displayName = displayName; + return this; + } + + /** + * @param displayName the displayName to set + */ + public void setDisplayName(String displayName) { + this.displayName = displayName; + } + + /** + * @return the description + */ + public String getDescription() { + return description; + } + + /** + * @param description the description to set + */ + public void setDescription(String description) { + this.description = description; + } + + /** + * @param description + * @return + */ + public ModelResource description(String description) { + this.description = description; + return this; + } + + /** + * @return the enabled + */ + public Boolean getEnabled() { + return enabled; + } + + /** + * @param enabled the enabled to set + */ + public void setEnabled(Boolean enabled) { + this.enabled = enabled; + } + + /** + * @param enabled + * @return + */ + public ModelResource enabled(boolean enabled) { + this.enabled = enabled; + return this; + } + + /** + * @return + */ + @Override + public String toString() { + // TODO Auto-generated method stub + return "name: " + name + ", path: " + path + ", displayName: " + displayName + ", description: " + description + + ", enabled: " + enabled; + } + +} |
Free forum by Nabble | Edit this page |