Skip to content

Commit

Permalink
Interim commit.
Browse files Browse the repository at this point in the history
  • Loading branch information
mederly committed Oct 20, 2016
1 parent 077f6f7 commit af854b8
Show file tree
Hide file tree
Showing 34 changed files with 611 additions and 166 deletions.
Expand Up @@ -17,7 +17,6 @@
package com.evolveum.midpoint.gui.api.component.result;

import com.evolveum.midpoint.gui.api.page.PageBase;
import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.Visitable;
import com.evolveum.midpoint.prism.Visitor;
import com.evolveum.midpoint.schema.result.OperationResult;
Expand Down Expand Up @@ -142,7 +141,7 @@ public static OpResult getOpResult(PageBase page, OperationResult result){
try {
OperationResultType resultType = result.createOperationResultType();
ObjectFactory of = new ObjectFactory();
opResult.xml = page.getPrismContext().xmlSerializer().serializeAtomicValue(of.createOperationResult(resultType));
opResult.xml = page.getPrismContext().xmlSerializer().serialize(of.createOperationResult(resultType));
} catch (SchemaException|RuntimeException ex) {
String m = "Can't create xml: " + ex;
// error(m);
Expand Down
Expand Up @@ -63,12 +63,12 @@ public ExpressionTypeDto(@Nullable ExpressionType expression, @NotNull PrismCont
private void loadExpression(PrismContext context) {
try {
if (expressionObject.getExpressionEvaluator().size() == 1) {
expression = context.xmlSerializer().serializeAtomicValue(expressionObject.getExpressionEvaluator().get(0));
expression = context.xmlSerializer().serialize(expressionObject.getExpressionEvaluator().get(0));
} else {
StringBuilder sb = new StringBuilder();

for (JAXBElement<?> element: expressionObject.getExpressionEvaluator()) {
String subElement = context.xmlSerializer().serializeAtomicValue(element);
String subElement = context.xmlSerializer().serialize(element);
sb.append(subElement).append("\n");
}
expression = sb.toString();
Expand Down
Expand Up @@ -28,7 +28,6 @@

import javax.xml.bind.JAXBElement;
import java.io.Serializable;
import java.util.Map;

/**
* @author shood
Expand Down Expand Up @@ -89,11 +88,11 @@ private void loadExpression(String expression, ExpressionUtil.ExpressionEvaluato

try{
if(expressionType.getExpressionEvaluator().size() == 1){
expression = prismContext.xmlSerializer().serializeAtomicValue(expressionType.getExpressionEvaluator().get(0));
expression = prismContext.xmlSerializer().serialize(expressionType.getExpressionEvaluator().get(0));
} else {
StringBuilder sb = new StringBuilder();
for(JAXBElement<?> element: expressionType.getExpressionEvaluator()){
String subElement = prismContext.xmlSerializer().serializeAtomicValue(element);
String subElement = prismContext.xmlSerializer().serialize(element);
sb.append(subElement).append("\n");
}

Expand Down
Expand Up @@ -67,7 +67,6 @@
import org.apache.wicket.validation.IValidator;

import com.evolveum.midpoint.common.configuration.api.MidpointConfiguration;
import com.evolveum.midpoint.common.refinery.RefinedResourceSchema;
import com.evolveum.midpoint.gui.api.model.LoadableModel;
import com.evolveum.midpoint.gui.api.util.WebComponentUtil;
import com.evolveum.midpoint.prism.Definition;
Expand All @@ -76,10 +75,8 @@
import com.evolveum.midpoint.prism.PrismProperty;
import com.evolveum.midpoint.prism.polystring.PolyStringNormalizer;
import com.evolveum.midpoint.prism.query.AndFilter;
import com.evolveum.midpoint.prism.query.EqualFilter;
import com.evolveum.midpoint.prism.query.ObjectFilter;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.prism.query.RefFilter;
import com.evolveum.midpoint.schema.AbstractSummarizingResultHandler;
import com.evolveum.midpoint.schema.GetOperationOptions;
import com.evolveum.midpoint.schema.ResultHandler;
Expand Down Expand Up @@ -700,7 +697,7 @@ private void showShadowResult(AjaxRequestTarget target, IModel<SelectableBean> r


try {
xml = getPrismContext().xmlSerializer().serializeAtomicValue(result, ShadowType.F_RESULT);
xml = getPrismContext().xmlSerializer().serializeRealValue(result, ShadowType.F_RESULT);
aceEditor.updateModel(new Model<String>(xml));
} catch (SchemaException e) {
LoggingUtils.logUnexpectedException(LOGGER, "Couldn't parse result", e);
Expand Down
Expand Up @@ -370,7 +370,7 @@ private void useInObjectListPerformed(AjaxRequestTarget target) {
String filterAsString;
if (parsedFilter != null) {
SearchFilterType filterType = QueryConvertor.createSearchFilterType(parsedFilter, getPrismContext());
filterAsString = getPrismContext().xmlSerializer().serializeAtomicValue(filterType, SchemaConstantsGenerated.Q_FILTER);
filterAsString = getPrismContext().xmlSerializer().serializeRealValue(filterType, SchemaConstantsGenerated.Q_FILTER);
// TODO remove extra xmlns from serialized value
} else {
filterAsString = "";
Expand Down
Expand Up @@ -231,7 +231,7 @@ private static String serialize(JAXBElement<?> element, PrismContext prismContex
RootXNode rootNode = new RootXNode(element.getName(), raw.serializeToXNode());
xml = prismContext.xmlSerializer().serialize(rootNode);
} else {
xml = prismContext.xmlSerializer().serializeAtomicValue(element);
xml = prismContext.xmlSerializer().serialize(element);
}
return WebXmlUtil.stripNamespaceDeclarations(xml);
}
Expand Down
Expand Up @@ -189,10 +189,10 @@ public <ID extends ItemDefinition> ID findItemDefinitionByType(@NotNull QName ty
}

@Override
@Nullable
public <ID extends ItemDefinition> ID findItemDefinitionByElementName(@NotNull QName elementName,
@NotNull
public <ID extends ItemDefinition> List<ID> findItemDefinitionsByElementName(@NotNull QName elementName,
@NotNull Class<ID> definitionClass) {
return refinedResourceSchema.findItemDefinitionByElementName(elementName, definitionClass);
return refinedResourceSchema.findItemDefinitionsByElementName(elementName, definitionClass);
}

@Override
Expand Down
Expand Up @@ -556,10 +556,10 @@ public <ID extends ItemDefinition> ID findItemDefinitionByType(
}

@Override
@Nullable
public <ID extends ItemDefinition> ID findItemDefinitionByElementName(@NotNull QName elementName,
@NotNull
public <ID extends ItemDefinition> List<ID> findItemDefinitionsByElementName(@NotNull QName elementName,
@NotNull Class<ID> definitionClass) {
return originalResourceSchema.findItemDefinitionByElementName(elementName, definitionClass);
return originalResourceSchema.findItemDefinitionsByElementName(elementName, definitionClass);
}

//endregion
Expand Down
Expand Up @@ -1387,8 +1387,8 @@ public static void copyDefinition(Containerable aClone, Containerable original,
}
}

public QName getConcreteType() {
return complexTypeDefinition != null ? complexTypeDefinition.getTypeName() : null;
public QName getTypeName() {
return getComplexTypeDefinition() != null ? getComplexTypeDefinition().getTypeName() : null;
}

@Nullable
Expand Down
Expand Up @@ -26,4 +26,8 @@ public interface PrismContainerable<T extends Containerable> extends Itemable {

public Class<T> getCompileTimeClass();

default ComplexTypeDefinition getComplexTypeDefinition() {
PrismContainerDefinition def = getDefinition();
return def != null ? def.getComplexTypeDefinition() : null;
}
}
Expand Up @@ -59,8 +59,8 @@
public class PrismPropertyValue<T> extends PrismValue implements DebugDumpable, Serializable {

private T value;
// The rawElement is set during a schema-less parsing, e.g. during a dumb JAXB parsing or XML parsing without a
// definition.

// The rawElement is set during a schema-less parsing, e.g. during parsing without a definition.
// We can't do anything smarter, as we don't have definition nor prism context. So we store the raw
// elements here and process them later (e.g. during applyDefinition or getting a value with explicit type).
private XNode rawElement;
Expand Down
Expand Up @@ -95,7 +95,7 @@ public interface PrismSerializer<T> {
* @return String/RootXNode representation of the value.
*/
@NotNull
T serialize(@NotNull PrismValue value, @NotNull QName rootName) throws SchemaException;
T serialize(@NotNull PrismValue value, QName rootName) throws SchemaException;

@NotNull
T serialize(@NotNull RootXNode xnode) throws SchemaException;
Expand All @@ -110,9 +110,9 @@ public interface PrismSerializer<T> {
* cases like PolyStringType, ProtectedStringType, etc.
*/

T serializeAtomicValue(JAXBElement<?> value) throws SchemaException;
T serializeAtomicValue(Object value) throws SchemaException;
T serializeAtomicValue(Object value, QName rootName) throws SchemaException;
T serialize(JAXBElement<?> value) throws SchemaException;
T serializeRealValue(Object value) throws SchemaException;
T serializeRealValue(Object value, QName rootName) throws SchemaException;
T serializeAnyData(Object value) throws SchemaException;
T serializeAnyData(Object value, QName rootName) throws SchemaException;
}
Expand Up @@ -105,10 +105,7 @@ private Element serializeInternal(@NotNull RootXNode rootxnode, Element parentEl
parentElement.appendChild(topElement);
}
QName typeQName = rootxnode.getTypeQName();
if (typeQName == null && rootxnode.getSubnode().getTypeQName() != null) {
typeQName = rootxnode.getSubnode().getTypeQName();
}
if (typeQName != null && !schemaRegistry.hasImplicitTypeDefinition(rootElementName, typeQName)) {
if (typeQName != null && rootxnode.isExplicitTypeDeclaration()) {
DOMUtil.setXsiType(topElement, setQNamePrefixExplicitIfNeeded(typeQName));
}
XNode subnode = rootxnode.getSubnode();
Expand Down
Expand Up @@ -143,10 +143,6 @@ private static <ID extends ItemDefinition> ID augmentWithClass(ID definition, Cl
if (definition != null && definition.getTypeName().equals(typeNameFromClass)) {
return definition;
}
if (!PrismContainerDefinition.class.isAssignableFrom(definitionClass)) {
return definition;
}
// the following may be null
@SuppressWarnings("unchecked")
List<ID> defFromClass = schemaRegistry.findItemDefinitionsByCompileTimeClass((Class) clazz, (Class) definitionClass);
if (defFromClass.size() != 1) {
Expand All @@ -170,7 +166,7 @@ public QName getTypeName() {

@NotNull
public static ItemInfo determineFromValue(@NotNull PrismValue value, QName itemName, ItemDefinition itemDefinition,
@NotNull SchemaRegistry schemaRegistry) {
@NotNull SchemaRegistry schemaRegistry) {
ItemInfo info = new ItemInfo();

// definition
Expand Down
Expand Up @@ -822,7 +822,8 @@ public <T> XNode marshall(T bean, SerializationContext ctx) throws SchemaExcepti
} else if (bean instanceof XmlAsStringType) {
return marshalXmlAsStringType((XmlAsStringType) bean);
} else if (prismContext != null && prismContext.getSchemaRegistry().determineDefinitionFromClass(bean.getClass()) != null){
return ((PrismContextImpl) prismContext).getPrismMarshaller().marshalItem(((Objectable)bean).asPrismObject(),
// TODO change to marshalItemContent
return ((PrismContextImpl) prismContext).getPrismMarshaller().marshalItemAsRoot(((Objectable)bean).asPrismObject(),
null, null, ctx).getSubnode();
}
// Note: SearchFilterType is treated below
Expand Down

0 comments on commit af854b8

Please sign in to comment.