Skip to content

Commit

Permalink
asPrismObject() method now returns parametrized PrismObject (either <…
Browse files Browse the repository at this point in the history
…? extends X> or <X>)
  • Loading branch information
mederly committed Mar 7, 2017
1 parent 59a04ec commit 2536d73
Show file tree
Hide file tree
Showing 29 changed files with 72 additions and 88 deletions.
Expand Up @@ -64,7 +64,7 @@ public class DynamicFormPanel<O extends ObjectType> extends BasePanel<ObjectWrap

public DynamicFormPanel(String id, final IModel<O> model, String formOid, Form<?> mainForm,
boolean runPrivileged, final PageBase parentPage) {
this(id, model.getObject().asPrismObject(), formOid, mainForm, runPrivileged, parentPage);
this(id, (PrismObject<O>) model.getObject().asPrismObject(), formOid, mainForm, runPrivileged, parentPage);

}

Expand Down
Expand Up @@ -1008,7 +1008,7 @@ private String nameFromReference(ObjectReferenceType reference, Task task, Opera
}
ObjectType object = prismObject.asObjectable();
if (object instanceof AbstractRoleType) {
return getNameToDisplay(object.asPrismObject());
return getNameToDisplay((PrismObject<? extends FocusType>) object.asPrismObject());
} else {
return PolyString.getOrig(object.getName());
}
Expand Down
Expand Up @@ -291,7 +291,7 @@ protected ObjectWrapper<O> loadObjectWrapper(PrismObject<O> objectToEdit) {
LOGGER.trace("Loading object: New object (creating)");
O focusType = createNewObject();
getMidpointApplication().getPrismContext().adopt(focusType);
object = focusType.asPrismObject();
object = (PrismObject<O>) focusType.asPrismObject();
} else {
LOGGER.trace("Loading object: New object (supplied): {}", objectToEdit);
object = objectToEdit;
Expand Down
Expand Up @@ -390,7 +390,7 @@ public ObjectType getFocus(PageBase pageBase) {
focus = (ObjectType) object.asObjectable();
try {
ObjectDelta<Objectable> objectDelta = DeltaConvertor.createObjectDelta(delta, pageBase.getPrismContext());
objectDelta.applyTo(focus.asPrismObject());
objectDelta.applyTo((PrismObject) focus.asPrismObject());
} catch (SchemaException e) {
throw new SystemException("Cannot apply delta to focus object: " + e.getMessage(), e);
}
Expand Down
Expand Up @@ -91,9 +91,9 @@ public static ObjectListType toObjectListType(List<PrismObject<? extends ObjectT
}

public static <T extends ObjectType> List<PrismObject<T>> toList(Class<T> type, ObjectListType listType) {
List<PrismObject<T>> list = new ArrayList<PrismObject<T>>();
List<PrismObject<T>> list = new ArrayList<>();
for (ObjectType o : listType.getObject()) {
list.add(((T)o).asPrismObject());
list.add((PrismObject<T>) o.asPrismObject());
}
return list;
}
Expand Down
Expand Up @@ -43,7 +43,7 @@

<xsd:include schemaLocation="http://midpoint.evolveum.com/xml/ns/public/common/common-core-3" />

<xsd:complexType name="AccessCertificationDefinitionType">
<xsd:complexType name="AbstractAccessCertificationDefinitionType" abstract="true">
<xsd:annotation>
<xsd:documentation>
Definition of an access certification - a template for
Expand Down Expand Up @@ -137,7 +137,6 @@
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="accessCertificationDefinition" type="tns:AccessCertificationDefinitionType" substitutionGroup="c:object"/>

<xsd:complexType name="AccessCertificationDefinitionForReportType">
<xsd:annotation>
Expand All @@ -149,7 +148,7 @@
</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="c:AccessCertificationDefinitionType">
<xsd:extension base="c:AbstractAccessCertificationDefinitionType">
<xsd:sequence>
<xsd:element name="campaigns" type="xsd:int" minOccurs="0"/>
<xsd:element name="openCampaigns" type="xsd:int" minOccurs="0"/>
Expand All @@ -159,6 +158,19 @@
</xsd:complexType>
<xsd:element name="accessCertificationDefinitionForReport" type="tns:AccessCertificationDefinitionForReportType" substitutionGroup="c:object"/>

<xsd:complexType name="AccessCertificationDefinitionType">
<xsd:annotation>
<xsd:documentation>
Access certification definition.
</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="c:AbstractAccessCertificationDefinitionType">
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="accessCertificationDefinition" type="tns:AccessCertificationDefinitionType" substitutionGroup="c:object"/>

<xsd:complexType name="AccessCertificationStageDefinitionType">
<xsd:annotation>
<xsd:documentation>
Expand Down
Expand Up @@ -136,7 +136,7 @@ public void testPrismParseJaxbObjectType() throws JAXBException, SchemaException
JaxbTestUtil jaxbProcessor = JaxbTestUtil.getInstance();

// WHEN
ObjectType genericType = jaxbProcessor.unmarshalObject(GENERIC_FILE, ObjectType.class);
GenericObjectType genericType = jaxbProcessor.unmarshalObject(GENERIC_FILE, GenericObjectType.class);

// THEN
assertGenericObject(genericType.asPrismObject());
Expand Down Expand Up @@ -177,8 +177,8 @@ public void testPrismParseJaxbElementObjectType() throws JAXBException, SchemaEx
JaxbTestUtil jaxbProcessor = JaxbTestUtil.getInstance();

// WHEN
JAXBElement<ObjectType> jaxbElement = jaxbProcessor.unmarshalElement(GENERIC_FILE, ObjectType.class);
ObjectType genericType = jaxbElement.getValue();
JAXBElement<GenericObjectType> jaxbElement = jaxbProcessor.unmarshalElement(GENERIC_FILE, GenericObjectType.class);
GenericObjectType genericType = jaxbElement.getValue();

// THEN
assertGenericObject(genericType.asPrismObject());
Expand Down
Expand Up @@ -134,7 +134,7 @@ public void testPrismParseJaxbObjectType() throws JAXBException, SchemaException
JaxbTestUtil jaxbProcessor = JaxbTestUtil.getInstance();

// WHEN
ObjectType taskType = jaxbProcessor.unmarshalObject(TASK_FILE, ObjectType.class);
TaskType taskType = jaxbProcessor.unmarshalObject(TASK_FILE, TaskType.class);

// THEN
System.out.println("Parsed task:");
Expand Down Expand Up @@ -179,8 +179,8 @@ public void testPrismParseJaxbElementObjectType() throws JAXBException, SchemaEx
JaxbTestUtil jaxbProcessor = JaxbTestUtil.getInstance();

// WHEN
JAXBElement<ObjectType> jaxbElement = jaxbProcessor.unmarshalElement(TASK_FILE, ObjectType.class);
ObjectType taskType = jaxbElement.getValue();
JAXBElement<TaskType> jaxbElement = jaxbProcessor.unmarshalElement(TASK_FILE, TaskType.class);
TaskType taskType = jaxbElement.getValue();

// THEN
System.out.println("Parsed task:");
Expand Down
Expand Up @@ -129,7 +129,7 @@ private <O extends ObjectType> void serializationRoundTripObjectType(O parsedObj
System.out.println("Deserialized object (ObjectType):");
System.out.println(deserializedObject.asPrismObject().debugDump());

ObjectDelta<O> diff = parsedObject.asPrismObject().diff(deserializedObject.asPrismObject());
ObjectDelta<O> diff = parsedObject.asPrismObject().diff((PrismObject) deserializedObject.asPrismObject());
assertTrue("Something changed in serializetion of "+parsedObject+" (ObjectType): "+diff, diff.isEmpty());
}

Expand Down
Expand Up @@ -125,7 +125,7 @@ public <O extends ObjectType> PrismObject<O> resolve(PrismReferenceValue refVal,
if (typeQName != null) {
typeClass = prismContext.getSchemaRegistry().determineCompileTimeClass(typeQName);
}
return (getObjectSimple((Class<O>)typeClass, oid, options, task, result)).asPrismObject();
return (PrismObject<O>) (getObjectSimple((Class<O>)typeClass, oid, options, task, result)).asPrismObject();
}

public <T extends ObjectType> T getObjectSimple(Class<T> clazz, String oid, GetOperationOptions options, Task task,
Expand Down
Expand Up @@ -112,7 +112,7 @@ public <O extends ObjectType> PrismObject<O> reconstructObject(Class<O> type, St
// TODO: authorizations

O currentObjectType = objectResolver.getObjectSimple(type, oid, null, task, result);
PrismObject<O> currentObject = currentObjectType.asPrismObject();
PrismObject<O> currentObject = (PrismObject<O>) currentObjectType.asPrismObject();

List<AuditEventRecord> changeTrail = getChangeTrail(oid, eventIdentifier);
LOGGER.trace("Found change trail for {} containing {} events", oid, changeTrail.size());
Expand Down
Expand Up @@ -236,14 +236,14 @@ public <T extends ObjectType> PrismObject<T> getObject(Class<T> clazz, String oi
ref.setType(ObjectTypes.getObjectType(clazz).getTypeQName());
Utils.clearRequestee(task);

// Specal-purpose code to hunt down read-write resource fetch from GUI.
// Special-purpose code to hunt down read-write resource fetch from GUI.
// Normally the code is not active. It is too brutal. Just for MID-3424.
// if (ResourceType.class == clazz && !GetOperationOptions.isRaw(rootOptions) && !GetOperationOptions.isReadOnly(rootOptions)) {
// LOGGER.info("READWRITE resource get: {} {}:\n{}", oid, options,
// LoggingUtils.dumpStackTrace());
// }

object = objectResolver.getObject(clazz, oid, options, task, result).asPrismObject();
object = (PrismObject<T>) objectResolver.getObject(clazz, oid, options, task, result).asPrismObject();

object = object.cloneIfImmutable();
schemaTransformer.applySchemasAndSecurity(object, rootOptions, null, task, result);
Expand Down
Expand Up @@ -798,7 +798,7 @@ public <O extends ObjectType> PrismObject<O> mergeObjectsPreviewObject(Class<O>
LOGGER.trace("Merge preview {} + {} deltas:\n{}", leftOid, rightOid, mergeDeltas.debugDump(1));
}

final PrismObject<O> objectLeft = objectResolver.getObjectSimple(type, leftOid, null, task, result).asPrismObject();
final PrismObject<O> objectLeft = (PrismObject<O>) objectResolver.getObjectSimple(type, leftOid, null, task, result).asPrismObject();

if (mergeDeltas == null) {
result.computeStatus();
Expand Down
Expand Up @@ -171,8 +171,8 @@ public <O extends ObjectType> MergeDeltas<O> computeMergeDeltas(Class<O> type, S
final String mergeConfigurationName, final Task task, final OperationResult result)
throws ObjectNotFoundException, SchemaException, ConfigurationException, ExpressionEvaluationException, CommunicationException, SecurityViolationException {

final PrismObject<O> objectLeft = objectResolver.getObjectSimple(type, leftOid, null, task, result).asPrismObject();
final PrismObject<O> objectRight = objectResolver.getObjectSimple(type, rightOid, null, task, result).asPrismObject();
final PrismObject<O> objectLeft = (PrismObject<O>) objectResolver.getObjectSimple(type, leftOid, null, task, result).asPrismObject();
final PrismObject<O> objectRight = (PrismObject<O>) objectResolver.getObjectSimple(type, rightOid, null, task, result).asPrismObject();

PrismObject<SystemConfigurationType> systemConfiguration = systemObjectCache.getSystemConfiguration(result);
MergeConfigurationType mergeConfiguration = selectConfiguration(systemConfiguration, mergeConfigurationName);
Expand Down
Expand Up @@ -96,7 +96,7 @@ public <T extends ObjectType> void applySchemasAndSecurityToObjectTypes(List<T>
GetOperationOptions options, AuthorizationPhaseType phase, Task task, OperationResult result)
throws SecurityViolationException, SchemaException, ConfigurationException, ObjectNotFoundException {
for (int i = 0; i < objectTypes.size(); i++) {
PrismObject<T> object = objectTypes.get(i).asPrismObject();
PrismObject<T> object = (PrismObject<T>) objectTypes.get(i).asPrismObject();
object = object.cloneIfImmutable();
objectTypes.set(i, object.asObjectable());
applySchemasAndSecurity(object, options, phase, task, result);
Expand Down
Expand Up @@ -261,7 +261,7 @@ private <O extends ObjectType> void evaluateAssignment(EvaluatedAssignmentImpl<F
List<PrismObject<O>> targets = null;
if (assignmentType.getTarget() != null) {
targets = new ArrayList<>(1);
targets.add(assignmentType.getTarget().asPrismObject());
targets.add((PrismObject<O>) assignmentType.getTarget().asPrismObject());
} else if (assignmentType.getTargetRef() != null) {
try {
targets = resolveTargets(assignmentType, assignmentPathSegment, source, sourceDescription, assignmentPath, task, result);
Expand Down
Expand Up @@ -560,11 +560,11 @@ public void storeIntoLensElementContextType(LensElementContextType lensElementCo
public void retrieveFromLensElementContextType(LensElementContextType lensElementContextType, OperationResult result) throws SchemaException, ConfigurationException, ObjectNotFoundException, CommunicationException {

ObjectType objectTypeOld = lensElementContextType.getObjectOld();
this.objectOld = objectTypeOld != null ? objectTypeOld.asPrismObject() : null;
this.objectOld = objectTypeOld != null ? (PrismObject) objectTypeOld.asPrismObject() : null;
fixProvisioningTypeInObject(this.objectOld, result);

ObjectType objectTypeNew = lensElementContextType.getObjectNew();
this.objectNew = objectTypeNew != null ? objectTypeNew.asPrismObject() : null;
this.objectNew = objectTypeNew != null ? (PrismObject) objectTypeNew.asPrismObject() : null;
fixProvisioningTypeInObject(this.objectNew, result);

ObjectType object = objectTypeNew != null ? objectTypeNew : objectTypeOld;
Expand Down
Expand Up @@ -82,7 +82,7 @@ public <FO extends FocusType, O extends ObjectType> PrismObject<FO> resolveOwner
if (ownerType == null) {
return null;
}
return ownerType.asPrismObject();
return (PrismObject<FO>) ownerType.asPrismObject();
} catch (ObjectNotFoundException | SchemaException e) {
LOGGER.error("Error resolving owner of {}: {}", object, e.getMessage(), e);
return null;
Expand Down
Expand Up @@ -1058,7 +1058,7 @@ public static AssignmentPathVariables computeAssignmentPathVariables(AssignmentP
vars.setThisAssignment(thisAssignment);

if (iterator.hasNext() && segmentSource instanceof AbstractRoleType) {
vars.setImmediateRole(segmentSource.asPrismObject());
vars.setImmediateRole((PrismObject<? extends AbstractRoleType>) segmentSource.asPrismObject());
}
}

Expand Down
Expand Up @@ -912,7 +912,7 @@ private <F extends FocusType> LensContext<F> createLensContext(Class<F> focusCla
if (situation.getCurrentOwner() != null) {
F focusType = situation.getCurrentOwner();
LensFocusContext<F> focusContext = context.createFocusContext();
PrismObject<F> focusOld = focusType.asPrismObject();
PrismObject<F> focusOld = (PrismObject<F>) focusType.asPrismObject();
focusContext.setLoadedObject(focusOld);
}

Expand Down
Expand Up @@ -43,7 +43,7 @@ public <F extends FocusType> void handle(LensContext<F> context, Synchronization

F focusType = situation.getCorrelatedOwner();
LensFocusContext<F> focusContext = context.createFocusContext();
PrismObject<F> focusOld = focusType.asPrismObject();
PrismObject<F> focusOld = (PrismObject<F>) focusType.asPrismObject();
focusContext.setLoadedObject(focusOld);

}
Expand Down
Expand Up @@ -25,6 +25,7 @@

import javax.xml.bind.JAXBException;

import com.evolveum.midpoint.prism.PrismObject;
import org.testng.Assert;
import org.apache.commons.lang.StringUtils;

Expand Down Expand Up @@ -57,7 +58,7 @@ public static <T extends ObjectType> T patchXml(ObjectModificationType changes,
Class<T> clazz) throws SchemaException {

ObjectDelta<T> objectDelta = DeltaConvertor.createObjectDelta(changes, clazz, PrismTestUtil.getPrismContext());
objectDelta.applyTo(object.asPrismObject());
objectDelta.applyTo((PrismObject<T>) object.asPrismObject());
return object;
}

Expand Down
Expand Up @@ -211,7 +211,7 @@ public <O extends ObjectType> List<PrismObject<O>> resolveAssignments(Collection
}

if (assignment.getTarget() != null) {
resolvedAssignments.add(assignment.getTarget().asPrismObject());
resolvedAssignments.add((PrismObject<O>) assignment.getTarget().asPrismObject());
continue;
}

Expand Down
Expand Up @@ -271,7 +271,7 @@ protected void removeAllAssignments(String oid, OperationResult result) throws E

public void createObject(final String TEST_NAME, ObjectType object, boolean immediate, boolean approve,
String assigneeOid) throws Exception {
ObjectDelta<RoleType> addObjectDelta = ObjectDelta.createAddDelta(object.asPrismObject());
ObjectDelta<RoleType> addObjectDelta = ObjectDelta.createAddDelta((PrismObject) object.asPrismObject());

executeTest(TEST_NAME, new TestDetails() {
@Override
Expand Down
Expand Up @@ -1180,7 +1180,7 @@ public boolean handle(ShadowType shadowType) {
+ ".searchObjectsIterative.handle");

if (shouldDoRepoSearch) {
return handleRepoObject(type, shadowType.asPrismObject(), options, handler, handleResult);
return handleRepoObject(type, (PrismObject<T>) shadowType.asPrismObject(), options, handler, handleResult);
}

if (shadowType == null) {
Expand Down
Expand Up @@ -23,6 +23,7 @@
import javax.xml.namespace.QName;

import com.evolveum.midpoint.common.refinery.RefinedResourceSchemaImpl;
import com.evolveum.midpoint.prism.*;
import com.evolveum.midpoint.prism.schema.PrismSchemaImpl;
import com.evolveum.midpoint.schema.processor.*;
import com.evolveum.prism.xml.ns._public.types_3.SchemaDefinitionType;
Expand All @@ -35,21 +36,6 @@
import org.w3c.dom.Document;
import org.w3c.dom.Element;

import com.evolveum.midpoint.common.refinery.RefinedResourceSchema;
import com.evolveum.midpoint.prism.ComplexTypeDefinition;
import com.evolveum.midpoint.prism.Definition;
import com.evolveum.midpoint.prism.Item;
import com.evolveum.midpoint.prism.ItemDefinition;
import com.evolveum.midpoint.prism.PrismContainer;
import com.evolveum.midpoint.prism.PrismContainerDefinition;
import com.evolveum.midpoint.prism.PrismContainerValue;
import com.evolveum.midpoint.prism.PrismContext;
import com.evolveum.midpoint.prism.PrismObject;
import com.evolveum.midpoint.prism.PrismObjectDefinition;
import com.evolveum.midpoint.prism.PrismProperty;
import com.evolveum.midpoint.prism.PrismReferenceDefinition;
import com.evolveum.midpoint.prism.PrismReferenceValue;
import com.evolveum.midpoint.prism.PrismValue;
import com.evolveum.midpoint.prism.delta.ContainerDelta;
import com.evolveum.midpoint.prism.delta.ItemDelta;
import com.evolveum.midpoint.prism.delta.ObjectDelta;
Expand Down Expand Up @@ -965,8 +951,9 @@ public void applyDefinition(ObjectDelta<ResourceType> delta, ResourceType resour
objectResult.recordFatalError("Configuration error in " + resource + ": "+e.getMessage(), e);
return;
}

resourceType.asPrismObject().findContainer(ResourceType.F_CONNECTOR_CONFIGURATION).applyDefinition(configContainerDef);

PrismContainer configContainer = resourceType.asPrismObject().findContainer(ResourceType.F_CONNECTOR_CONFIGURATION);
configContainer.applyDefinition(configContainerDef);

for (ItemDelta<?,?> itemDelta : delta.getModifications()){
applyItemDefinition(itemDelta, configContainerDef, objectResult);
Expand Down
Expand Up @@ -3169,7 +3169,7 @@ public boolean check() throws CommonException {
assertNoRepoCache();
// display("getObject result (wait loop)",resultHolder.value);
TestUtil.assertSuccess("getObject has failed", resultHolder.value);
Task task = taskManager.createTaskInstance(objectHolder.value.asPrismObject(), opResult);
Task task = taskManager.createTaskInstance((PrismObject<TaskType>) objectHolder.value.asPrismObject(), opResult);
System.out.println(new Date() + ": Import task status: " + task.getExecutionStatus() + ", progress: " + task.getProgress());
if (task.getExecutionStatus() == TaskExecutionStatus.CLOSED) {
// Task closed, wait finished
Expand Down Expand Up @@ -3200,7 +3200,7 @@ public void timeout() {

assertNoRepoCache();
TestUtil.assertSuccess("getObject has failed", resultHolder.value);
task = taskManager.createTaskInstance(objectHolder.value.asPrismObject(), result);
task = taskManager.createTaskInstance((PrismObject<TaskType>) objectHolder.value.asPrismObject(), result);

display("Import task after finish (fetched from model)", task);

Expand Down Expand Up @@ -3244,7 +3244,7 @@ public void timeout() {
}
}

Holder<ObjectListType> listHolder = new Holder<ObjectListType>();
Holder<ObjectListType> listHolder = new Holder<>();
assertNoRepoCache();

modelWeb.searchObjects(ObjectTypes.USER.getTypeQName(), null, null,
Expand Down

0 comments on commit 2536d73

Please sign in to comment.