Search in sources :

Example 1 with DiagramElementExtensionConverter

use of org.kie.dmn.backend.marshalling.v1_3.xstream.DiagramElementExtensionConverter in project drools by kiegroup.

the class XStreamMarshaller method newXStream.

private XStream newXStream() {
    XStream xStream = XStreamUtils.createNonTrustingXStream(staxDriver, Definitions.class.getClassLoader(), DMNXStream::from);
    xStream.addPermission(new TypeHierarchyPermission(QName.class));
    xStream.addPermission(new TypeHierarchyPermission(KieDMNModelInstrumentedBase.class));
    xStream.addPermission(new TypeHierarchyPermission(org.kie.dmn.model.v1_3.KieDMNModelInstrumentedBase.class));
    xStream.alias("artifact", TArtifact.class);
    xStream.alias("definitions", TDefinitions.class);
    xStream.alias("inputData", TInputData.class);
    xStream.alias("decision", TDecision.class);
    xStream.alias("variable", TInformationItem.class);
    xStream.alias("informationRequirement", TInformationRequirement.class);
    xStream.alias("requiredInput", TDMNElementReference.class);
    xStream.alias("literalExpression", TLiteralExpression.class);
    xStream.alias("DMNElement", TDMNElement.class);
    xStream.alias("allowedValues", TUnaryTests.class);
    xStream.alias("artifact", TArtifact.class);
    xStream.alias("association", TAssociation.class);
    xStream.alias("authorityRequirement", TAuthorityRequirement.class);
    xStream.alias("binding", TBinding.class);
    xStream.alias("businessContextElement", TBusinessContextElement.class);
    xStream.alias("businessKnowledgeModel", TBusinessKnowledgeModel.class);
    xStream.alias("column", TInformationItem.class);
    xStream.alias("context", TContext.class);
    xStream.alias("contextEntry", TContextEntry.class);
    xStream.alias("decision", TDecision.class);
    xStream.alias("decisionMade", TDMNElementReference.class);
    xStream.alias("decisionMaker", TDMNElementReference.class);
    xStream.alias("decisionOwned", TDMNElementReference.class);
    xStream.alias("decisionOwner", TDMNElementReference.class);
    xStream.alias("decisionService", TDecisionService.class);
    xStream.alias("decisionTable", TDecisionTable.class);
    xStream.alias("defaultOutputEntry", TLiteralExpression.class);
    xStream.alias("definitions", TDefinitions.class);
    xStream.alias("drgElement", TDMNElementReference.class);
    xStream.alias("elementCollection", TElementCollection.class);
    xStream.alias("encapsulatedDecision", TDMNElementReference.class);
    xStream.alias("encapsulatedLogic", TFunctionDefinition.class);
    xStream.alias("expression", TExpression.class);
    xStream.alias("formalParameter", TInformationItem.class);
    xStream.alias("functionItem", TFunctionItem.class);
    xStream.alias("functionDefinition", TFunctionDefinition.class);
    xStream.alias("group", TGroup.class);
    xStream.alias("impactedPerformanceIndicator", TDMNElementReference.class);
    xStream.alias("impactingDecision", TDMNElementReference.class);
    xStream.alias("import", TImport.class);
    xStream.alias("import", TImport.class);
    // TODO where?
    xStream.alias("importedElement", String.class);
    xStream.alias("importedValues", TImportedValues.class);
    xStream.alias("informationItem", TInformationItem.class);
    xStream.alias("informationRequirement", TInformationRequirement.class);
    xStream.alias("input", TInputClause.class);
    xStream.alias("inputData", TInputData.class);
    xStream.alias("inputDecision", TDMNElementReference.class);
    xStream.alias("inputEntry", TUnaryTests.class);
    xStream.alias("inputExpression", TLiteralExpression.class);
    xStream.alias("inputValues", TUnaryTests.class);
    xStream.alias("invocation", TInvocation.class);
    xStream.alias("itemComponent", TItemDefinition.class);
    xStream.alias("itemDefinition", TItemDefinition.class);
    xStream.alias("knowledgeRequirement", TKnowledgeRequirement.class);
    xStream.alias("knowledgeSource", TKnowledgeSource.class);
    xStream.alias("literalExpression", TLiteralExpression.class);
    xStream.alias("namedElement", TNamedElement.class);
    xStream.alias("organizationUnit", TOrganizationUnit.class);
    xStream.alias("output", TOutputClause.class);
    xStream.alias("outputDecision", TDMNElementReference.class);
    xStream.alias("outputEntry", TLiteralExpression.class);
    xStream.alias("outputValues", TUnaryTests.class);
    xStream.alias("owner", TDMNElementReference.class);
    xStream.alias("parameter", TInformationItem.class);
    xStream.alias("parameters", TInformationItem.class);
    xStream.alias("performanceIndicator", TPerformanceIndicator.class);
    xStream.alias("relation", TRelation.class);
    xStream.alias("requiredAuthority", TDMNElementReference.class);
    xStream.alias("requiredDecision", TDMNElementReference.class);
    xStream.alias("requiredInput", TDMNElementReference.class);
    xStream.alias("requiredKnowledge", TDMNElementReference.class);
    xStream.alias("rule", TDecisionRule.class);
    xStream.alias("sourceRef", TDMNElementReference.class);
    xStream.alias("supportedObjective", TDMNElementReference.class);
    xStream.alias("targetRef", TDMNElementReference.class);
    xStream.alias("textAnnotation", TTextAnnotation.class);
    // TODO where?
    xStream.alias("type", String.class);
    xStream.alias("typeRef", QName.class);
    xStream.alias("usingProcess", TDMNElementReference.class);
    xStream.alias("usingTask", TDMNElementReference.class);
    xStream.alias("variable", TInformationItem.class);
    xStream.alias("row", org.kie.dmn.model.v1_4.TList.class);
    xStream.alias("list", org.kie.dmn.model.v1_4.TList.class);
    xStream.alias("extensionElements", TDMNElement.TExtensionElements.class);
    // Manually imported TEXT = String
    xStream.alias(LiteralExpressionConverter.TEXT, String.class);
    // unnecessary 'text' key repetition:        xStream.alias( TextAnnotationConverter.TEXT, String.class );
    // unnecessary 'text' key repetition:        xStream.alias( UnaryTestsConverter.TEXT, String.class );
    xStream.alias(DecisionConverter.QUESTION, String.class);
    xStream.alias(DecisionConverter.ALLOWED_ANSWERS, String.class);
    xStream.alias(DMNElementConverter.DESCRIPTION, String.class);
    // unnecessary 'text' key repetition:      xStream.alias("text", xsd:string.class );
    // unnecessary 'text' key repetition:      xStream.alias("text", xsd:string.class );
    // unnecessary 'text' key repetition:      xStream.alias("text", xsd:string.class );
    // xStream.alias("question", xsd:string.class );
    // xStream.alias("allowedAnswers", xsd:string.class );
    // xStream.alias("description", xsd:string.class );
    // DMN v1.2:
    // Note, to comply with NS for XStream need also to adjust entries inside DMNModelInstrumentedBaseConverter
    xStream.alias("annotation", TRuleAnnotationClause.class);
    xStream.alias("annotationEntry", TRuleAnnotation.class);
    xStream.registerConverter(new RuleAnnotationClauseConverter(xStream));
    xStream.registerConverter(new RuleAnnotationConverter(xStream));
    xStream.alias("DMNDI", DMNDI.class);
    xStream.registerConverter(new DMNDIConverter(xStream));
    xStream.alias("DMNDiagram", DMNDiagram.class);
    xStream.registerConverter(new DMNDiagramConverter(xStream));
    xStream.alias("DMNStyle", DMNStyle.class);
    xStream.registerConverter(new DMNStyleConverter(xStream));
    xStream.alias("Size", Dimension.class);
    xStream.registerConverter(new DimensionConverter(xStream));
    xStream.alias("DMNShape", DMNShape.class);
    xStream.registerConverter(new DMNShapeConverter(xStream));
    xStream.alias("FillColor", Color.class);
    xStream.alias("StrokeColor", Color.class);
    xStream.alias("FontColor", Color.class);
    xStream.registerConverter(new ColorConverter(xStream));
    xStream.alias("Bounds", Bounds.class);
    xStream.registerConverter(new BoundsConverter(xStream));
    xStream.alias("DMNLabel", DMNLabel.class);
    xStream.registerConverter(new DMNLabelConverter(xStream));
    xStream.alias("DMNEdge", DMNEdge.class);
    xStream.registerConverter(new DMNEdgeConverter(xStream));
    xStream.alias("DMNDecisionServiceDividerLine", DMNDecisionServiceDividerLine.class);
    xStream.registerConverter(new DMNDecisionServiceDividerLineConverter(xStream));
    xStream.alias("waypoint", Point.class);
    xStream.registerConverter(new PointConverter(xStream));
    xStream.alias("extension", DiagramElement.Extension.class);
    xStream.alias(DMNLabelConverter.TEXT, String.class);
    xStream.alias("for", TFor.class);
    xStream.alias("every", TEvery.class);
    xStream.alias("some", TSome.class);
    xStream.alias("conditional", TConditional.class);
    xStream.alias("filter", TFilter.class);
    xStream.registerConverter(new AssociationConverter(xStream));
    xStream.registerConverter(new AuthorityRequirementConverter(xStream));
    xStream.registerConverter(new BindingConverter(xStream));
    xStream.registerConverter(new BusinessKnowledgeModelConverter(xStream));
    xStream.registerConverter(new ContextConverter(xStream));
    xStream.registerConverter(new ContextEntryConverter(xStream));
    xStream.registerConverter(new DecisionConverter(xStream));
    xStream.registerConverter(new DecisionRuleConverter(xStream));
    xStream.registerConverter(new DecisionServiceConverter(xStream));
    xStream.registerConverter(new DecisionTableConverter(xStream));
    xStream.registerConverter(new DefinitionsConverter(xStream));
    xStream.registerConverter(new DMNElementReferenceConverter(xStream));
    xStream.registerConverter(new GroupConverter(xStream));
    xStream.registerConverter(new FunctionDefinitionConverter(xStream));
    xStream.registerConverter(new ImportConverter(xStream));
    xStream.registerConverter(new ImportedValuesConverter(xStream));
    xStream.registerConverter(new InformationItemConverter(xStream));
    xStream.registerConverter(new InformationRequirementConverter(xStream));
    xStream.registerConverter(new InputClauseConverter(xStream));
    xStream.registerConverter(new InputDataConverter(xStream));
    xStream.registerConverter(new InvocationConverter(xStream));
    xStream.registerConverter(new ItemDefinitionConverter(xStream));
    xStream.registerConverter(new KnowledgeRequirementConverter(xStream));
    xStream.registerConverter(new KnowledgeSourceConverter(xStream));
    xStream.registerConverter(new LiteralExpressionConverter(xStream));
    xStream.registerConverter(new OrganizationUnitConverter(xStream));
    xStream.registerConverter(new OutputClauseConverter(xStream));
    xStream.registerConverter(new PerformanceIndicatorConverter(xStream));
    xStream.registerConverter(new RelationConverter(xStream));
    xStream.registerConverter(new TextAnnotationConverter(xStream));
    xStream.registerConverter(new UnaryTestsConverter(xStream));
    xStream.registerConverter(new FunctionItemConverter(xStream));
    xStream.registerConverter(new ChildExpressionConverter(xStream));
    xStream.registerConverter(new TypedChildExpressionConverter(xStream));
    xStream.registerConverter(new ForConverter(xStream));
    xStream.registerConverter(new EveryConverter(xStream));
    xStream.registerConverter(new SomeConverter(xStream));
    xStream.registerConverter(new ConditionalConverter(xStream));
    xStream.registerConverter(new FilterConverter(xStream));
    xStream.registerConverter(new QNameConverter());
    xStream.registerConverter(new DMNListConverter(xStream));
    xStream.registerConverter(new ElementCollectionConverter(xStream));
    xStream.registerConverter(new ExtensionElementsConverter(xStream, extensionRegisters));
    xStream.registerConverter(new DiagramElementExtensionConverter(xStream, extensionRegisters));
    for (DMNExtensionRegister extensionRegister : extensionRegisters) {
        extensionRegister.registerExtensionConverters(xStream);
    }
    xStream.ignoreUnknownElements();
    return xStream;
}
Also used : KieDMNModelInstrumentedBase(org.kie.dmn.model.v1_4.KieDMNModelInstrumentedBase) DMNStyleConverter(org.kie.dmn.backend.marshalling.v1_3.xstream.DMNStyleConverter) DimensionConverter(org.kie.dmn.backend.marshalling.v1_3.xstream.DimensionConverter) DMNDiagramConverter(org.kie.dmn.backend.marshalling.v1_3.xstream.DMNDiagramConverter) DMNDecisionServiceDividerLineConverter(org.kie.dmn.backend.marshalling.v1_3.xstream.DMNDecisionServiceDividerLineConverter) DiagramElementExtensionConverter(org.kie.dmn.backend.marshalling.v1_3.xstream.DiagramElementExtensionConverter) XStream(com.thoughtworks.xstream.XStream) DMNXStream(org.kie.dmn.backend.marshalling.v1x.DMNXStream) DMNShapeConverter(org.kie.dmn.backend.marshalling.v1_3.xstream.DMNShapeConverter) DMNDIConverter(org.kie.dmn.backend.marshalling.v1_3.xstream.DMNDIConverter) BoundsConverter(org.kie.dmn.backend.marshalling.v1_3.xstream.BoundsConverter) PointConverter(org.kie.dmn.backend.marshalling.v1_3.xstream.PointConverter) DMNExtensionRegister(org.kie.dmn.api.marshalling.DMNExtensionRegister) DiagramElement(org.kie.dmn.model.v1_3.dmndi.DiagramElement) ColorConverter(org.kie.dmn.backend.marshalling.v1_3.xstream.ColorConverter) DMNXStream(org.kie.dmn.backend.marshalling.v1x.DMNXStream) TypeHierarchyPermission(com.thoughtworks.xstream.security.TypeHierarchyPermission) DMNEdgeConverter(org.kie.dmn.backend.marshalling.v1_3.xstream.DMNEdgeConverter) QName(javax.xml.namespace.QName) TDefinitions(org.kie.dmn.model.v1_4.TDefinitions) Definitions(org.kie.dmn.model.api.Definitions) TDMNElement(org.kie.dmn.model.v1_4.TDMNElement) DMNLabelConverter(org.kie.dmn.backend.marshalling.v1_3.xstream.DMNLabelConverter)

Aggregations

XStream (com.thoughtworks.xstream.XStream)1 TypeHierarchyPermission (com.thoughtworks.xstream.security.TypeHierarchyPermission)1 QName (javax.xml.namespace.QName)1 DMNExtensionRegister (org.kie.dmn.api.marshalling.DMNExtensionRegister)1 BoundsConverter (org.kie.dmn.backend.marshalling.v1_3.xstream.BoundsConverter)1 ColorConverter (org.kie.dmn.backend.marshalling.v1_3.xstream.ColorConverter)1 DMNDIConverter (org.kie.dmn.backend.marshalling.v1_3.xstream.DMNDIConverter)1 DMNDecisionServiceDividerLineConverter (org.kie.dmn.backend.marshalling.v1_3.xstream.DMNDecisionServiceDividerLineConverter)1 DMNDiagramConverter (org.kie.dmn.backend.marshalling.v1_3.xstream.DMNDiagramConverter)1 DMNEdgeConverter (org.kie.dmn.backend.marshalling.v1_3.xstream.DMNEdgeConverter)1 DMNLabelConverter (org.kie.dmn.backend.marshalling.v1_3.xstream.DMNLabelConverter)1 DMNShapeConverter (org.kie.dmn.backend.marshalling.v1_3.xstream.DMNShapeConverter)1 DMNStyleConverter (org.kie.dmn.backend.marshalling.v1_3.xstream.DMNStyleConverter)1 DiagramElementExtensionConverter (org.kie.dmn.backend.marshalling.v1_3.xstream.DiagramElementExtensionConverter)1 DimensionConverter (org.kie.dmn.backend.marshalling.v1_3.xstream.DimensionConverter)1 PointConverter (org.kie.dmn.backend.marshalling.v1_3.xstream.PointConverter)1 DMNXStream (org.kie.dmn.backend.marshalling.v1x.DMNXStream)1 Definitions (org.kie.dmn.model.api.Definitions)1 DiagramElement (org.kie.dmn.model.v1_3.dmndi.DiagramElement)1 KieDMNModelInstrumentedBase (org.kie.dmn.model.v1_4.KieDMNModelInstrumentedBase)1