Search in sources :

Example 1 with TNodeType

use of org.eclipse.winery.model.tosca.TNodeType in project winery by eclipse.

the class BackendUtils method createWrapperDefinitionsAndInitialEmptyElement.

public static Definitions createWrapperDefinitionsAndInitialEmptyElement(IRepository repository, DefinitionsChildId id) {
    final Definitions definitions = createWrapperDefinitions(id);
    HasIdInIdOrNameField element;
    if (id instanceof RelationshipTypeImplementationId) {
        element = new TRelationshipTypeImplementation();
    } else if (id instanceof NodeTypeImplementationId) {
        element = new TNodeTypeImplementation();
    } else if (id instanceof RequirementTypeId) {
        element = new TRequirementType();
    } else if (id instanceof NodeTypeId) {
        element = new TNodeType();
    } else if (id instanceof RelationshipTypeId) {
        element = new TRelationshipType();
    } else if (id instanceof CapabilityTypeId) {
        element = new TCapabilityType();
    } else if (id instanceof ArtifactTypeId) {
        element = new TArtifactType();
    } else if (id instanceof PolicyTypeId) {
        element = new TPolicyType();
    } else if (id instanceof PolicyTemplateId) {
        element = new TPolicyTemplate();
    } else if (id instanceof ServiceTemplateId) {
        element = new TServiceTemplate();
    } else if (id instanceof ArtifactTemplateId) {
        element = new TArtifactTemplate();
    } else if (id instanceof XSDImportId) {
        // TImport has no id; thus directly generating it without setting an id
        TImport tImport = new TImport();
        definitions.setElement(tImport);
        return definitions;
    } else {
        throw new IllegalStateException("Unhandled id branch. Could happen for XSDImportId");
    }
    copyIdToFields(element, id);
    definitions.setElement((TExtensibleElements) element);
    return definitions;
}
Also used : ArtifactTypeId(org.eclipse.winery.common.ids.definitions.ArtifactTypeId) TArtifactTemplate(org.eclipse.winery.model.tosca.TArtifactTemplate) TImport(org.eclipse.winery.model.tosca.TImport) TCapabilityType(org.eclipse.winery.model.tosca.TCapabilityType) TRequirementType(org.eclipse.winery.model.tosca.TRequirementType) TNodeTypeImplementation(org.eclipse.winery.model.tosca.TNodeTypeImplementation) HasIdInIdOrNameField(org.eclipse.winery.model.tosca.HasIdInIdOrNameField) TArtifactType(org.eclipse.winery.model.tosca.TArtifactType) TPolicyType(org.eclipse.winery.model.tosca.TPolicyType) TServiceTemplate(org.eclipse.winery.model.tosca.TServiceTemplate) NodeTypeImplementationId(org.eclipse.winery.common.ids.definitions.NodeTypeImplementationId) XSDImportId(org.eclipse.winery.common.ids.definitions.imports.XSDImportId) RelationshipTypeId(org.eclipse.winery.common.ids.definitions.RelationshipTypeId) CapabilityTypeId(org.eclipse.winery.common.ids.definitions.CapabilityTypeId) TDefinitions(org.eclipse.winery.model.tosca.TDefinitions) Definitions(org.eclipse.winery.model.tosca.Definitions) RelationshipTypeImplementationId(org.eclipse.winery.common.ids.definitions.RelationshipTypeImplementationId) ServiceTemplateId(org.eclipse.winery.common.ids.definitions.ServiceTemplateId) ArtifactTemplateId(org.eclipse.winery.common.ids.definitions.ArtifactTemplateId) TNodeType(org.eclipse.winery.model.tosca.TNodeType) TRelationshipType(org.eclipse.winery.model.tosca.TRelationshipType) TPolicyTemplate(org.eclipse.winery.model.tosca.TPolicyTemplate) PolicyTypeId(org.eclipse.winery.common.ids.definitions.PolicyTypeId) TRelationshipTypeImplementation(org.eclipse.winery.model.tosca.TRelationshipTypeImplementation) RequirementTypeId(org.eclipse.winery.common.ids.definitions.RequirementTypeId) PolicyTemplateId(org.eclipse.winery.common.ids.definitions.PolicyTemplateId) NodeTypeId(org.eclipse.winery.common.ids.definitions.NodeTypeId)

Example 2 with TNodeType

use of org.eclipse.winery.model.tosca.TNodeType in project winery by eclipse.

the class IGenericRepository method getReferencedDefinitionsChildIds.

default Collection<DefinitionsChildId> getReferencedDefinitionsChildIds(NodeTypeId id) {
    Collection<DefinitionsChildId> ids = new ArrayList<>();
    Collection<NodeTypeImplementationId> allNodeTypeImplementations = this.getAllElementsReferencingGivenType(NodeTypeImplementationId.class, id.getQName());
    for (NodeTypeImplementationId ntiId : allNodeTypeImplementations) {
        ids.add(ntiId);
    }
    final TNodeType nodeType = this.getElement(id);
    // add all referenced requirement types
    TNodeType.RequirementDefinitions reqDefsContainer = nodeType.getRequirementDefinitions();
    if (reqDefsContainer != null) {
        List<TRequirementDefinition> reqDefs = reqDefsContainer.getRequirementDefinition();
        for (TRequirementDefinition reqDef : reqDefs) {
            RequirementTypeId reqTypeId = new RequirementTypeId(reqDef.getRequirementType());
            ids.add(reqTypeId);
        }
    }
    // add all referenced capability types
    TNodeType.CapabilityDefinitions capDefsContainer = nodeType.getCapabilityDefinitions();
    if (capDefsContainer != null) {
        List<TCapabilityDefinition> capDefs = capDefsContainer.getCapabilityDefinition();
        for (TCapabilityDefinition capDef : capDefs) {
            CapabilityTypeId capTypeId = new CapabilityTypeId(capDef.getCapabilityType());
            ids.add(capTypeId);
        }
    }
    return ids;
}
Also used : NodeTypeImplementationId(org.eclipse.winery.common.ids.definitions.NodeTypeImplementationId) DefinitionsChildId(org.eclipse.winery.common.ids.definitions.DefinitionsChildId) CapabilityTypeId(org.eclipse.winery.common.ids.definitions.CapabilityTypeId) ArrayList(java.util.ArrayList) TNodeType(org.eclipse.winery.model.tosca.TNodeType) RequirementTypeId(org.eclipse.winery.common.ids.definitions.RequirementTypeId) TRequirementDefinition(org.eclipse.winery.model.tosca.TRequirementDefinition) TCapabilityDefinition(org.eclipse.winery.model.tosca.TCapabilityDefinition)

Example 3 with TNodeType

use of org.eclipse.winery.model.tosca.TNodeType in project winery by eclipse.

the class InterfacesResource method onPost.

@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response onPost(List<TInterface> interfaceApiData) {
    if (!interfaceApiData.isEmpty()) {
        for (TInterface tInt : interfaceApiData) {
            if (!tInt.getOperation().isEmpty()) {
                for (TOperation tOp : tInt.getOperation()) {
                    if (tOp.getInputParameters() == null || tOp.getInputParameters().getInputParameter().isEmpty()) {
                        tOp.setInputParameters(null);
                    }
                    if (tOp.getOutputParameters() == null || tOp.getOutputParameters().getOutputParameter().isEmpty()) {
                        tOp.setOutputParameters(null);
                    }
                }
            } else {
                return Response.status(Response.Status.BAD_REQUEST).entity("No operation provided!").build();
            }
        }
    } else {
        return Response.status(Response.Status.BAD_REQUEST).entity("No interface provided!").build();
    }
    if (this.res instanceof RelationshipTypeResource) {
        TRelationshipType relationshipType = (TRelationshipType) this.res.getElement();
        switch(this.interfaceType) {
            case "source":
                TRelationshipType.SourceInterfaces sourceInterfaces = new TRelationshipType.SourceInterfaces();
                sourceInterfaces.getInterface().clear();
                sourceInterfaces.getInterface().addAll(interfaceApiData);
                relationshipType.setSourceInterfaces(sourceInterfaces);
                break;
            default:
                // it will be target
                TRelationshipType.TargetInterfaces targetInterfaces = new TRelationshipType.TargetInterfaces();
                targetInterfaces.getInterface().clear();
                targetInterfaces.getInterface().addAll(interfaceApiData);
                relationshipType.setTargetInterfaces(targetInterfaces);
                break;
        }
    } else if (this.res instanceof NodeTypeResource) {
        TNodeType nodeType = (TNodeType) this.res.getElement();
        TNodeType.Interfaces interfaces = new TNodeType.Interfaces();
        interfaces.getInterface().clear();
        interfaces.getInterface().addAll(interfaceApiData);
        nodeType.setInterfaces(interfaces);
    } else {
        throw new IllegalStateException("Interfaces are not supported for this element type!");
    }
    return RestUtils.persist(this.res);
}
Also used : TInterface(org.eclipse.winery.model.tosca.TInterface) RelationshipTypeResource(org.eclipse.winery.repository.rest.resources.entitytypes.relationshiptypes.RelationshipTypeResource) TNodeType(org.eclipse.winery.model.tosca.TNodeType) TRelationshipType(org.eclipse.winery.model.tosca.TRelationshipType) TOperation(org.eclipse.winery.model.tosca.TOperation) NodeTypeResource(org.eclipse.winery.repository.rest.resources.entitytypes.nodetypes.NodeTypeResource)

Example 4 with TNodeType

use of org.eclipse.winery.model.tosca.TNodeType in project winery by eclipse.

the class TOSCAModelHelper method createTNodeType.

public static TNodeType createTNodeType(String id, String namespace) {
    TNodeType nodeType = new TNodeType();
    nodeType.setName(id);
    nodeType.setId(id);
    nodeType.setTargetNamespace(namespace);
    return nodeType;
}
Also used : TNodeType(org.eclipse.winery.model.tosca.TNodeType)

Example 5 with TNodeType

use of org.eclipse.winery.model.tosca.TNodeType in project winery by eclipse.

the class GeneratorTest method testMultipleOperationsInOrOut.

@Test
public void testMultipleOperationsInOrOut() throws Exception {
    TInterface tinterface = new TInterface();
    tinterface.setName("TestInOrOut");
    TOperation opIn = new TOperation();
    opIn.setName("OpIn");
    tinterface.getOperation().add(opIn);
    TOperation.InputParameters op1InputParameters = new TOperation.InputParameters();
    TParameter op1ip1 = new TParameter();
    op1ip1.setName("op1ip1");
    op1ip1.setType("xs:string");
    op1InputParameters.getInputParameter().add(op1ip1);
    TParameter op1ip2 = new TParameter();
    op1ip2.setName("op1ip2");
    op1ip2.setType("xs:string");
    op1InputParameters.getInputParameter().add(op1ip2);
    opIn.setInputParameters(op1InputParameters);
    TOperation opOut = new TOperation();
    opOut.setName("OpOut");
    tinterface.getOperation().add(opOut);
    TOperation.OutputParameters op1OutputParameters = new TOperation.OutputParameters();
    TParameter op1op1 = new TParameter();
    op1op1.setName("op1op1");
    op1op1.setType("xs:string");
    op1OutputParameters.getOutputParameter().add(op1op1);
    TParameter op1op2 = new TParameter();
    op1op2.setName("op1op2");
    op1op1.setType("xs:string");
    op1OutputParameters.getOutputParameter().add(op1op2);
    opOut.setOutputParameters(op1OutputParameters);
    TNodeType nodeType = new TNodeType();
    nodeType.setName("test");
    nodeType.setTargetNamespace("http://asd.com");
    Generator gen = new Generator(tinterface, "org.opentosca.ia", new URL("http://asd.com"), "testname", WORKING_DIR.toFile());
    Path generateProject = gen.generateProject();
    System.out.println(generateProject);
}
Also used : Path(java.nio.file.Path) TInterface(org.eclipse.winery.model.tosca.TInterface) TOperation(org.eclipse.winery.model.tosca.TOperation) TParameter(org.eclipse.winery.model.tosca.TParameter) URL(java.net.URL) TNodeType(org.eclipse.winery.model.tosca.TNodeType) Test(org.junit.Test)

Aggregations

TNodeType (org.eclipse.winery.model.tosca.TNodeType)10 Test (org.junit.Test)6 DefinitionsChildId (org.eclipse.winery.common.ids.definitions.DefinitionsChildId)4 NodeTypeId (org.eclipse.winery.common.ids.definitions.NodeTypeId)4 TInterface (org.eclipse.winery.model.tosca.TInterface)4 TOperation (org.eclipse.winery.model.tosca.TOperation)4 URL (java.net.URL)3 Path (java.nio.file.Path)3 HashMap (java.util.HashMap)3 TOSCAModelHelper.createNodeTypeId (org.eclipse.winery.compliance.TOSCAModelHelper.createNodeTypeId)3 TOSCAModelHelper.createTNodeTemplate (org.eclipse.winery.compliance.TOSCAModelHelper.createTNodeTemplate)3 TOSCAModelHelper.createTNodeType (org.eclipse.winery.compliance.TOSCAModelHelper.createTNodeType)3 TExtensibleElements (org.eclipse.winery.model.tosca.TExtensibleElements)3 TNodeTemplate (org.eclipse.winery.model.tosca.TNodeTemplate)3 TRelationshipType (org.eclipse.winery.model.tosca.TRelationshipType)3 ArrayList (java.util.ArrayList)2 QName (javax.xml.namespace.QName)2 CapabilityTypeId (org.eclipse.winery.common.ids.definitions.CapabilityTypeId)2 NodeTypeImplementationId (org.eclipse.winery.common.ids.definitions.NodeTypeImplementationId)2 RelationshipTypeId (org.eclipse.winery.common.ids.definitions.RelationshipTypeId)2