![JAR search and dependency download from the Maven repository](/logo.png)
edu.internet2.middleware.grouper.grouperUi.beans.api.provisioning.GuiGrouperProvisioningAttributeValue Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of grouper-ui Show documentation
Show all versions of grouper-ui Show documentation
Internet2 Groups Management User Interface
package edu.internet2.middleware.grouper.grouperUi.beans.api.provisioning;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import edu.internet2.middleware.grouper.Stem;
import edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioner;
import edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningAttributeValue;
import edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningObjectMetadataItem;
import edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningService;
import edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningSettings;
import edu.internet2.middleware.grouper.app.provisioning.GrouperProvisioningType;
import edu.internet2.middleware.grouper.cfg.text.GrouperTextContainer;
import edu.internet2.middleware.grouper.grouperUi.beans.api.GuiStem;
import edu.internet2.middleware.grouper.grouperUi.beans.json.GuiResponseJs;
import edu.internet2.middleware.grouper.grouperUi.beans.json.GuiScreenAction;
import edu.internet2.middleware.grouper.grouperUi.beans.json.GuiScreenAction.GuiMessageType;
import edu.internet2.middleware.grouper.grouperUi.beans.ui.TextContainer;
import edu.internet2.middleware.grouper.misc.GrouperDAOFactory;
import edu.internet2.middleware.grouper.misc.GrouperObject;
import edu.internet2.middleware.grouper.util.GrouperUtil;
public class GuiGrouperProvisioningAttributeValue {
public GuiGrouperProvisioningAttributeValue(GrouperProvisioningAttributeValue grouperProvisioningAttributeValue) {
this.grouperProvisioningAttributeValue = grouperProvisioningAttributeValue;
}
private GrouperProvisioner grouperProvisioner;
public void setGrouperProvisioner(GrouperProvisioner provisioner) {
grouperProvisioner = provisioner;
}
public GrouperProvisioner getGrouperProvisioner() {
return grouperProvisioner;
}
private GrouperProvisioningAttributeValue grouperProvisioningAttributeValue;
private Timestamp lastTimeWorkWasDone;
private boolean inTarget;
private boolean provisionable;
private boolean hasDirectSettings;
private boolean canAssignProvisioning;
private List metadataItems = new ArrayList();
private Map metadataNameValuesExternalized = new HashMap<>();
private boolean parentWillMakeThisProvisionable;
public Timestamp getLastTimeWorkWasDone() {
return lastTimeWorkWasDone;
}
public boolean isInTarget() {
return inTarget;
}
public void setLastTimeWorkWasDone(Timestamp lastTimeWorkWasDone) {
this.lastTimeWorkWasDone = lastTimeWorkWasDone;
}
public void setInTarget(boolean inTarget) {
this.inTarget = inTarget;
}
public boolean isProvisionable() {
return provisionable;
}
public void setProvisionable(boolean provisionable) {
this.provisionable = provisionable;
}
public GrouperProvisioningAttributeValue getGrouperProvisioningAttributeValue() {
return grouperProvisioningAttributeValue;
}
/**
* return the gui folder with settings
* @return gui stem
*/
public GuiStem getGuiFolderWithSettings() {
if (this.grouperProvisioningAttributeValue == null) {
return null;
}
String stemId = this.grouperProvisioningAttributeValue.getOwnerStemId();
Stem stem = GrouperDAOFactory.getFactory().getStem().findByUuid(stemId, false);
if (stem == null) {
return null;
}
return new GuiStem(stem);
}
/**
* externalized name or the key
* @return the name
*/
public String getExternalizedName() {
String externalizedName = TextContainer.textOrNull("provisioningUiLabelForKey_" + this.getTargetKey());
externalizedName = StringUtils.defaultIfEmpty(externalizedName, this.getTargetKey());
return externalizedName;
}
/**
* get target key for current target
* @return target key
*/
public String getTargetKey() {
return GrouperProvisioningSettings.getTargets(true).get(this.grouperProvisioningAttributeValue.getTargetName()).getKey();
}
public static List convertFromGrouperProvisioningAttributeValues(List attributeValues, GrouperObject grouperObject) {
List guiGrouperProvisioningAttributeValues = new ArrayList();
final GuiResponseJs guiResponseJs = GuiResponseJs.retrieveGuiResponseJs();
for (GrouperProvisioningAttributeValue singleAttributeValue: attributeValues) {
GrouperProvisioner grouperProvisioner = null;
try {
grouperProvisioner = GrouperProvisioner.retrieveProvisioner(singleAttributeValue.getTargetName());
grouperProvisioner.initialize(GrouperProvisioningType.fullProvisionFull);
} catch (Exception e) {
guiResponseJs.addAction(GuiScreenAction.newMessageAppend(GuiMessageType.error, "Error with provisioner: " + singleAttributeValue.getTargetName() + ", " + e.getMessage()));
continue;
}
GuiGrouperProvisioningAttributeValue guiGrouperProvisioningAttributeValue = new GuiGrouperProvisioningAttributeValue(singleAttributeValue);
guiGrouperProvisioningAttributeValue.setProvisionable(singleAttributeValue.getDoProvision() != null);
GrouperProvisioningAttributeValue parentProvisioningAttributeValue = GrouperProvisioningService.getProvisioningAttributeValue(grouperObject, singleAttributeValue.getTargetName(), true);
if (parentProvisioningAttributeValue != null) {
guiGrouperProvisioningAttributeValue.setParentWillMakeThisProvisionable(true);
}
Map metadataNameValues = singleAttributeValue.getMetadataNameValues();
for (String metadataName: metadataNameValues.keySet()) {
//md_anotherMetadata_myTeamDynamixProvisioner_label
if (metadataName.equals("md_grouper_allowPolicyGroupOverride")) {
String labelOrNull = GrouperTextContainer.textOrNull("grouperProvisioningObjectMetadataProvisionOnlyPolicyGroupsLabel");
String stringValue = GrouperUtil.stringValue(metadataNameValues.get(metadataName));
stringValue = GrouperUtil.defaultIfBlank(stringValue, "");
stringValue = GrouperUtil.xmlEscape(stringValue);
guiGrouperProvisioningAttributeValue.metadataNameValuesExternalized.put(GrouperUtil.defaultString(labelOrNull, metadataName), stringValue);
continue;
} else if (metadataName.equals("md_grouper_allowProvisionableRegexOverride")) {
String labelOrNull = GrouperTextContainer.textOrNull("grouperProvisioningObjectMetadataProvisionableRegexLabel");
String stringValue = GrouperUtil.stringValue(metadataNameValues.get(metadataName));
stringValue = GrouperUtil.defaultIfBlank(stringValue, "");
stringValue = GrouperUtil.xmlEscape(stringValue);
guiGrouperProvisioningAttributeValue.metadataNameValuesExternalized.put(GrouperUtil.defaultString(labelOrNull, metadataName), stringValue);
continue;
}
String externalizedTextKey = metadataName+"_"+singleAttributeValue.getTargetName()+"_label";
GrouperProvisioningObjectMetadataItem grouperProvisioningObjectMetadataItem = grouperProvisioner.retrieveGrouperProvisioningObjectMetadata().getGrouperProvisioningObjectMetadataItemsByName().get(metadataName);
if (grouperProvisioningObjectMetadataItem != null && !StringUtils.isBlank(grouperProvisioningObjectMetadataItem.getLabelKey())) {
externalizedTextKey = grouperProvisioningObjectMetadataItem.getLabelKey();
}
String labelOrNull = GrouperTextContainer.textOrNull(externalizedTextKey);
String stringValue = GrouperUtil.stringValue(metadataNameValues.get(metadataName));
stringValue = GrouperUtil.defaultIfBlank(stringValue, "");
stringValue = GrouperUtil.xmlEscape(stringValue);
guiGrouperProvisioningAttributeValue.metadataNameValuesExternalized.put(GrouperUtil.defaultString(labelOrNull, metadataName), stringValue);
}
guiGrouperProvisioningAttributeValues.add(guiGrouperProvisioningAttributeValue);
}
return guiGrouperProvisioningAttributeValues;
}
private void setParentWillMakeThisProvisionable(boolean parentWillMakeThisProvisionable) {
this.parentWillMakeThisProvisionable = parentWillMakeThisProvisionable;
}
public boolean isParentWillMakeThisProvisionable() {
return parentWillMakeThisProvisionable;
}
public Map getMetadataNameValuesExternalized() {
return metadataNameValuesExternalized;
}
public List getMetadataItems() {
return metadataItems;
}
public void setMetadataItems(List metadataItems) {
this.metadataItems = metadataItems;
}
public boolean isHasDirectSettings() {
return hasDirectSettings;
}
public void setHasDirectSettings(boolean hasDirectSettings) {
this.hasDirectSettings = hasDirectSettings;
}
public boolean isCanAssignProvisioning() {
return canAssignProvisioning;
}
public void setCanAssignProvisioning(boolean canAssignProvisioning) {
this.canAssignProvisioning = canAssignProvisioning;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy