public ConnectorInstanceSpecificationType clone() { ConnectorInstanceSpecificationType object = new ConnectorInstanceSpecificationType(); PrismContainerValue value = asPrismContainerValue().clone(); object.setupContainerValue(value); return object; }
public ConnectorInstanceSpecificationType capabilities(CapabilitiesType value) { setCapabilities(value); return this; }
public ConnectorInstanceSpecificationType connectorRef(ObjectReferenceType value) { setConnectorRef(value); return this; }
@Override protected ConnectorInstanceSpecificationType createItem(PrismContainerValue value) { ConnectorInstanceSpecificationType additionalConnector = new ConnectorInstanceSpecificationType(); additionalConnector.setupContainerValue(value); return additionalConnector; }
private void completeCapabilities(PrismObject<ResourceType> resource, boolean forceRefresh, Map<String,Collection<Object>> capabilityMap, Collection<ItemDelta<?, ?>> modifications, OperationResult result) throws SchemaException, ObjectNotFoundException, CommunicationException, ConfigurationException { ResourceType resourceType = resource.asObjectable(); ConnectorSpec defaultConnectorSpec = getDefaultConnectorSpec(resource); CapabilitiesType resourceCapType = resourceType.getCapabilities(); if (resourceCapType == null) { resourceCapType = new CapabilitiesType(); resourceType.setCapabilities(resourceCapType); } completeConnectorCapabilities(defaultConnectorSpec, resourceCapType, ResourceType.F_CAPABILITIES, forceRefresh, capabilityMap==null?null:capabilityMap.get(null), modifications, result); for (ConnectorInstanceSpecificationType additionalConnectorType: resource.asObjectable().getAdditionalConnector()) { ConnectorSpec connectorSpec = getConnectorSpec(resource, additionalConnectorType); CapabilitiesType connectorCapType = additionalConnectorType.getCapabilities(); if (connectorCapType == null) { connectorCapType = new CapabilitiesType(); additionalConnectorType.setCapabilities(connectorCapType); } ItemPath itemPath = additionalConnectorType.asPrismContainerValue().getPath().append(ConnectorInstanceSpecificationType.F_CAPABILITIES); completeConnectorCapabilities(connectorSpec, connectorCapType, itemPath, forceRefresh, capabilityMap==null?null:capabilityMap.get(additionalConnectorType.getName()), modifications, result); } }
@Override protected PrismContainerValue getValueFrom(ConnectorInstanceSpecificationType value) { return value.asPrismContainerValue(); }
/** * Create an instance of {@link ConnectorInstanceSpecificationType } * */ public ConnectorInstanceSpecificationType createConnectorInstanceSpecificationType() { return new ConnectorInstanceSpecificationType(); }
private ConnectorSpec getConnectorSpec(PrismObject<ResourceType> resource, ConnectorInstanceSpecificationType additionalConnectorType) throws SchemaException { String connectorOid = additionalConnectorType.getConnectorRef().getOid(); if (StringUtils.isBlank(connectorOid)) { throw new SchemaException("No connector OID in additional connector in "+resource); } PrismContainer<ConnectorConfigurationType> connectorConfiguration = additionalConnectorType.asPrismContainerValue().findContainer(ConnectorInstanceSpecificationType.F_CONNECTOR_CONFIGURATION); String connectorName = additionalConnectorType.getName(); if (StringUtils.isBlank(connectorName)) { throw new SchemaException("No connector name in additional connector in "+resource); } return new ConnectorSpec(resource, connectorName, connectorOid, connectorConfiguration); }
protected void fillInAdditionalConnectorRef(PrismObject<ResourceType> resource, String connectorName, String connectorType, OperationResult result) throws SchemaException { ResourceType resourceType = resource.asObjectable(); PrismObject<ConnectorType> connectorPrism = findConnectorByType(connectorType, result); for (ConnectorInstanceSpecificationType additionalConnector: resourceType.getAdditionalConnector()) { if (connectorName.equals(additionalConnector.getName())) { ObjectReferenceType ref = new ObjectReferenceType().oid(connectorPrism.getOid()); additionalConnector.setConnectorRef(ref); } } }
private <T extends CapabilityType> boolean supportsCapability(ConnectorInstanceSpecificationType additionalConnectorType, Class<T> capabilityClass) { T cap = CapabilityUtil.getEffectiveCapability(additionalConnectorType.getCapabilities(), capabilityClass); if (cap == null) { return false; } return CapabilityUtil.isCapabilityEnabled(cap); }
private <T extends CapabilityType> ConnectorSpec selectConnectorSpec(PrismObject<ResourceType> resource, Map<String,Collection<Object>> capabilityMap, Class<T> capabilityClass) throws SchemaException { if (capabilityMap == null) { return selectConnectorSpec(resource, capabilityClass); } for (ConnectorInstanceSpecificationType additionalConnectorType: resource.asObjectable().getAdditionalConnector()) { if (supportsCapability(additionalConnectorType, capabilityMap.get(additionalConnectorType.getName()), capabilityClass)) { return getConnectorSpec(resource, additionalConnectorType); } } return getDefaultConnectorSpec(resource); }
public ObjectReferenceType beginConnectorRef() { ObjectReferenceType value = new ObjectReferenceType(); connectorRef(value); return value; }
public CapabilitiesType beginCapabilities() { CapabilitiesType value = new CapabilitiesType(); capabilities(value); return value; }
public ConnectorConfigurationType beginConnectorConfiguration() { ConnectorConfigurationType value = new ConnectorConfigurationType(); connectorConfiguration(value); return value; }
@Override public boolean equals(Object object) { if (!(object instanceof ConnectorInstanceSpecificationType)) { return false; } ConnectorInstanceSpecificationType other = ((ConnectorInstanceSpecificationType) object); return asPrismContainerValue().equivalent(other.asPrismContainerValue()); }
/** * Create an instance of {@link ConnectorInstanceSpecificationType } * */ public ConnectorInstanceSpecificationType createConnectorInstanceSpecificationType() { return new ConnectorInstanceSpecificationType(); }
public <T extends CapabilityType> CapabilitiesType getConnectorCapabilities(PrismObject<ResourceType> resource, Class<T> operationCapabilityClass) { for (ConnectorInstanceSpecificationType additionalConnectorType: resource.asObjectable().getAdditionalConnector()) { if (supportsCapability(additionalConnectorType, operationCapabilityClass)) { return additionalConnectorType.getCapabilities(); } } return resource.asObjectable().getCapabilities(); }
public ConnectorInstanceSpecificationType connectorRef(String oid, QName type) { PrismReferenceValue refVal = new PrismReferenceValueImpl(oid, type); ObjectReferenceType ort = new ObjectReferenceType(); ort.setupReferenceValue(refVal); return connectorRef(ort); }
@XmlElement(name = "capabilities") public CapabilitiesType getCapabilities() { return PrismForJAXBUtil.getFieldSingleContainerable(asPrismContainerValue(), F_CAPABILITIES, CapabilitiesType.class); }
/** * Create an instance of {@link ConnectorInstanceSpecificationType } * */ public ConnectorInstanceSpecificationType createConnectorInstanceSpecificationType() { return new ConnectorInstanceSpecificationType(); }